September 25, 2019
On Wednesday, 25 September 2019 at 14:58:43 UTC, Dennis wrote:
> On Wednesday, 25 September 2019 at 10:01:40 UTC, Rel wrote:
>> What do you think about it?
>
> I like how they are going to maintain a stable 1.0 branch and continue developing on a 1.1 branch. I wonder if something like that could work for D.

I believe this is the intent behind the `-preview` and `-revert` compiler options, though they work on a feature-by-feature basis rather than affecting the entire language at once.
September 26, 2019
On Wednesday, 25 September 2019 at 14:29:19 UTC, Chris wrote:
> On Wednesday, 25 September 2019 at 11:02:57 UTC, IGotD- wrote:
>>
>> In my opinion Nim is one of the closest competitors of D because they are both runner up languages and they try to focus on productivity. Right now Rust seems to be influencing D a lot but I think if you want to look other languages, you should definitely also look at Nim.
>
> The problem of D has always been that it constantly follows the fashion of the day. First it was trying to "beat" C++, then it was competing with Go, now it's Rust. What's next? I find it refreshing to see languages like Nim and Zig that try to base their decisions on what works and what doesn't, what makes sense and what doesn't, not on Reddit threads about the latest CS fashion. Given that D has introduced a nice set of promising features of its own, I don't understand why D is constantly trying to emulate other languages, before it's even clear whether feature X will work or not. I think languages like Nim and Zig do have a chance, if they avoid D's mistakes and focus on their strengths. Usefulness and consistency are of utmost importance.

Definitely, on my case what D offered me, not available in either in Java or .NET, has in the mean time been sorted out.

C# 7.x low level features, .NET Native and CoreRT, having F# and C++/CLI as additional companion, and while annotations + expression trees and F# computations aren't as straightforward as D's metaprogramming, they get the job done.

Likewise Java is getting value types and a JNI replacement, GraalVM is an wonderful piece of technology, battle tested by Twitter, with NVidia now adding CUDA support, and annotation processors and reflection also offer good enough metaprogramming, even if like on .NET's case they aren't as developer friendly as D's.

C++20, regardless of the backwards compatibility baggage it brings along, also offers many of the features that made D noteworthy and keeps being the tool to go when Java, .NET need an extra help.

Then on Apple's platform I am an happy Swift user.

While I still advocate D for safe systems programming, its story needs to be more coherent.

And regarding the latest DIP discussions, if D veterans have issues trying to make sense how they are supposed to work, what hopes have newly D adopters?

The broken features should be sorted out, and be proud of being a GC systems language.

That is what I appreciate in Go and Nim, they have their story, with GC, and stand by it, even if that alienates some crowds.

So even if Go is not supposed to be a systems language, there are Google projects using it like that (gVisor, Android GPGPU debugger, Fuchsia TCP/IP stack).

The language should be stabilized, GC improved (I know it has gotten much better), replace deprecated Phobos packages (xml, JSON, stream), focus on vi/Emacs/VSCode and maybe people will come and stay around.

Trying to cater to the crowds that flock to the systems language of the month is damaging for D's future, at the end the only thing left is patting each other in the back while asserting "language X might have won, but D had it first".

September 26, 2019
On Thursday, 26 September 2019 at 06:14:24 UTC, Paulo Pinto wrote:

> And regarding the latest DIP discussions, if D veterans have issues trying to make sense how they are supposed to work, what hopes have newly D adopters?

See also the latest threads on DIP 1000 semantic, +1000!

> The broken features should be sorted out, and be proud of being a GC systems language.
>
> That is what I appreciate in Go and Nim, they have their story, with GC, and stand by it, even if that alienates some crowds.
>
> So even if Go is not supposed to be a systems language, there are Google projects using it like that (gVisor, Android GPGPU debugger, Fuchsia TCP/IP stack).
>
> The language should be stabilized, GC improved (I know it has gotten much better), replace deprecated Phobos packages (xml, JSON, stream), focus on vi/Emacs/VSCode and maybe people will come and stay around.
>
> Trying to cater to the crowds that flock to the systems language of the month is damaging for D's future, at the end the only thing left is patting each other in the back while asserting "language X might have won, but D had it first".

What to say more than that? Thanks Paulo!

/P


September 26, 2019
On Wednesday, 25 September 2019 at 20:56:49 UTC, JN wrote:
>
> I guess it's just a matter of preference. Personally, "forced indentation" is one of my favourite features of Python. I indent all my code blocks in C/C++/D/Java/C# anyway, so braces are mostly unnecessary noise to me. Also, I think you underestimate how hard it is to find a missing brace in code sometimes. For example if you forget a closing brace on a method, and then the compiler thinks next methods are inner methods and it breaks on a "class Foo" declaration 200 lines of code later.

I know, I've had my fair share of both (missing braces and missing indentation), but I find missing braces easier to fix and they don't happen nearly as often as missing / wrong indentation. If you have to move lines and blocks around for testing / debugging / refactoring purposes, forced indentation can be a real PIA, and you have to spend time fixing things that shouldn't be broke in the first place. Worst of all: you don't just have to look for the missing brace, but check the optical alignment on the screen, now, what will you do if the statement opening the block is (50-100 lines) out of sight? A waste of time, or "diminishing returns" [1].

[1] https://en.wikipedia.org/wiki/Diminishing_returns
September 26, 2019
On Thursday, 26 September 2019 at 06:14:24 UTC, Paulo Pinto wrote:

> Definitely, on my case what D offered me, not available in either in Java or .NET, has in the mean time been sorted out.

[...]

> Trying to cater to the crowds that flock to the systems language of the month is damaging for D's future, at the end the only thing left is patting each other in the back while asserting "language X might have won, but D had it first".

Thanks for this brief summary. My experience is similar (more along the lines of Java/Kotlin and now with the addition of GraalVM). Your last paragraph sums it all up. D doesn't know which path to take, yet randomness and whimsicality are exactly what you don't want when you develop software.
September 26, 2019
On Thursday, 26 September 2019 at 06:14:24 UTC, Paulo Pinto wrote:

> The language should be stabilized, GC improved (I know it has gotten much better), replace deprecated Phobos packages (xml, JSON, stream), focus on vi/Emacs/VSCode and maybe people will come and stay around.

There's a chicken-and-egg problem, though. D doesn't have the type of community that languages like Rust, Go, or Python have. I remember in the 90s when Python was insignificant to the programming world, they had their community of true believers promoting the language and making it more usable. In 2005, when I made my move to R for my computing, I looked at Python and it had little to offer. They had a community that made a lot of stuff happen in a hurry, and they promoted the language well. It's not even a particularly good choice for scientific computing, yet it is now a giant in that area.

D has its mailing list and a few people doing their own projects (I'm in that group) but not a lot of blog posts or podcasts or tutorials, and can't even put together documentation for Dub. You read the mailing list and about two out of every three posts is negative. Until some people step up to be leaders of the community, nothing else will matter as far as D adoption goes. For all the years I've been involved, it's always been people looking to Walter and Andrei to make things happen, and I haven't seen anything like that with any other language.
September 26, 2019
On Thursday, 26 September 2019 at 13:26:13 UTC, bachmeier wrote:
> 
> It's [Python] not even a particularly good choice for scientific computing, yet it is now a giant in that area.

You're right. Sigh.

> D has its mailing list and a few people doing their own projects (I'm in that group) but not a lot of blog posts or podcasts or tutorials, and can't even put together documentation for Dub. You read the mailing list and about two out of every three posts is negative. Until some people step up to be leaders of the community, nothing else will matter as far as D adoption goes. For all the years I've been involved, it's always been people looking to Walter and Andrei to make things happen, and I haven't seen anything like that with any other language.

There's a huge difference between Python and D, though. Python (and its proponents) were targeting amateurs. It will be hard to find a (natural science / tech) student nowadays who hasn't dabbled in Python. So the audience is huge. But D is targeting hard core programmers, and they are naturally much harder to convince, because they know exactly what they want, and what they want it for. If you don't have a convincing "story" (as Paulo said), you're out. (Python on the other hand doesn't need a convincing story, it's used for throw-away scripts and it gives millions of people the feeling that they are "programmers".) What D needs is focus and consistency. Simple as.
September 26, 2019
On Thursday, 26 September 2019 at 13:42:47 UTC, Chris wrote:

> There's a huge difference between Python and D, though. Python (and its proponents) were targeting amateurs. It will be hard to find a (natural science / tech) student nowadays who hasn't dabbled in Python. So the audience is huge. But D is targeting hard core programmers, and they are naturally much harder to convince, because they know exactly what they want, and what they want it for. If you don't have a convincing "story" (as Paulo said), you're out. (Python on the other hand doesn't need a convincing story, it's used for throw-away scripts and it gives millions of people the feeling that they are "programmers".) What D needs is focus and consistency. Simple as.

Programmers are obsolete. AI is coming for them.

September 26, 2019
On Thursday, 26 September 2019 at 13:42:47 UTC, Chris wrote:


> (Python on the other hand doesn't need a convincing story, it's used for throw-away scripts and it gives millions of people the feeling that they are "programmers".) What D needs is focus and consistency. Simple as.

Python is also used for a lot of "real" programming tasks these days. D is perfectly suited for scripts of 200 lines. Moderate-sized programs typically start as small scripts and grow over time. You don't have to convince anyone to switch languages if they start out with D. Neither Walter or Andrei has a scripting background, rather they are from the large-scale enterprise software world, and that led to the current emphasis on that segment. There's no reason the community can't pick up the ball and carry it into other arenas.
September 27, 2019
On Thursday, 26 September 2019 at 16:04:18 UTC, bachmeier wrote:
> On Thursday, 26 September 2019 at 13:42:47 UTC, Chris wrote:
>
>
>> (Python on the other hand doesn't need a convincing story, it's used for throw-away scripts and it gives millions of people the feeling that they are "programmers".) What D needs is focus and consistency. Simple as.
>
> Python is also used for a lot of "real" programming tasks these days. D is perfectly suited for scripts of 200 lines. Moderate-sized programs typically start as small scripts and grow over time. You don't have to convince anyone to switch languages if they start out with D. Neither Walter or Andrei has a scripting background, rather they are from the large-scale enterprise software world, and that led to the current emphasis on that segment. There's no reason the community can't pick up the ball and carry it into other arenas.

Just to add to this, IMO D is far better than Python for scripting type tasks. At work, I write all my scripts in D unless it's prohibitively difficult to do so.