June 09, 2020
On Monday, 8 June 2020 at 11:35:16 UTC, exo1 wrote:
> Hello,
> I am the OP (I thought I saved my credentials to my password manager, but apparently not, so I do not have access to that account anymore).
>
> Anyways, after spending more time with D, unfortunately, I have decided to move on to other languages. Apart from this issue, even after being in development for so many years, the editor support is worse than in many newer (or more or less same age) languages like Nim, Haxe etc. It does not support UFCs and many other language features, go to def does not work properly with overloads even though the stdlib is heavily based on overloading etc. The user experience is very poor. :(

Hmm, I am also a D beginner but VS Code D plugins have been pretty good for me. There is decent autocompletion and awesome documentation lookup that just works without the need of installing any external doc packages like for Scala in IntelliJ IDEA. Yeah, UFC and overloads could be a nuisance but what prevents you from "ctrl+shift+search" for definition?

All these things can hardly stop you from using the language. C++ doesn't have a proper IDE on Linux, does it stop ppl from learning it? Python autocompletion is a mess in any IDE, even PyCharm does not work well especially with various huge ML/DL libraries. Does it make people stop?
June 09, 2020
On Tuesday, 9 June 2020 at 19:20:35 UTC, tsbockman wrote:
> On Monday, 8 June 2020 at 11:35:16 UTC, exo1 wrote:
>> Anyways, after spending more time with D, unfortunately, I have decided to move on to other languages. Apart from this issue, even after being in development for so many years, the editor support is worse than in many newer (or more or less same age) languages like Nim, Haxe etc. It does not support UFCs and many other language features, go to def does not work properly with overloads even though the stdlib is heavily based on overloading etc. The user experience is very poor. :(
>
> Yeah, sadly this may be the weakest part of the D ecosystem. The lack of a up-to-date containers in the standard library usually isn't a real problem, for all the reasons others mentioned above (built in array slices and associative arrays cover most needs, and third-party container libraries are available). However, the IDE support really is quite poor - partly because D is an unusually difficult language to get something like auto-complete working properly for, and partly because most people who really care about IDE support just leave when they see how bad things are on that front, leaving few people who care enough to maintain and improve what we do have.
>
> (For example, I keep meaning to get involved with the IntelliJ-DLanguage project, but I've just been too busy lately to do much beyond submit a few bug reports. The deficiencies are annoying to me, but not critical because the only thing I really *need* from the IDE is the debugger, occasionally.)

To a degree yes. But I would stress that the weakest D part is the lack of libraries. Concretely, the lack of a few top-notch libraries that many other languages have.
Lua has Torch, which was discontinued in favor of PyTorch couple of years ago but ppl keep coming to Torch github asking questions even now. How many of them wouldn't even know about Lua if not for Torch? Scala has Akka, Spark and some other solid libs although the language is so much dense and harder to learn/use than D. Should I mention Python vs Ruby where the former had the momentum of batteries-included together with the right scientific focus to win over a superior and neat language like Ruby? It's all about the batteries included and unfortunately D is not there and probably will never be just because there is not enough people.
June 09, 2020
On Tuesday, 9 June 2020 at 22:26:34 UTC, tastyminerals wrote:
> To a degree yes. But I would stress that the weakest D part is the lack of libraries. Concretely, the lack of a few top-notch libraries that many other languages have.

Lacking libraries for certain tasks only affects projects that involve those tasks. However, lacking good IDE support affects every project, unless you just don't care about the benefits of an IDE versus a text editor + terminal work flow.

I think that most (though certainly not all) programmers strongly prefer to use a good IDE, if it's available.
June 10, 2020
On Tuesday, 9 June 2020 at 22:46:27 UTC, tsbockman wrote:
> On Tuesday, 9 June 2020 at 22:26:34 UTC, tastyminerals wrote:
>> To a degree yes. But I would stress that the weakest D part is the lack of libraries. Concretely, the lack of a few top-notch libraries that many other languages have.
>
> Lacking libraries for certain tasks only affects projects that involve those tasks. However, lacking good IDE support affects every project, unless you just don't care about the benefits of an IDE versus a text editor + terminal work flow.
>
> I think that most (though certainly not all) programmers strongly prefer to use a good IDE, if it's available.

Not arguing that. Every workflow is affected by IDE and its lack thereof. My initial idea was that before the potential future D user even gets there, he needs something to reach for. It could be the web framework which is so good that no other framework is better. It could be the library that is a faster and easier to work with than alternative. D has neither of those and this is discouraging. So, the only new ppl who come, do so because of the language and the amount of such ppl is very small in general. I knew nothing of D libraries but expected such powerful and fast language to have scientific libraries. I found only Mir which is just array manipulation lib. Great, but what about actual beefy stuff like CRF, SVM, k-means? Scattered around personal github repos without single dedicated lib. Does it encourage me to proceed with the language? Definitely no. I would rather continue using Python ecosystem or C/C++ or Java, Scala. I bet even Rust has this by now.

June 10, 2020
On Tue, 2020-06-09 at 22:26 +0000, tastyminerals via Digitalmars-d wrote:
> On Tuesday, 9 June 2020 at 19:20:35 UTC, tsbockman wrote:
[…]
> > because most people who really care about IDE support just leave when they see how bad things are on that front, leaving few people who care enough to maintain and improve what we do have.

True that.

> > (For example, I keep meaning to get involved with the IntelliJ-DLanguage project, but I've just been too busy lately to do much beyond submit a few bug reports. The deficiencies are annoying to me, but not critical because the only thing I really *need* from the IDE is the debugger, occasionally.)

I am sure Samael will take any and all the help he can get. I have promised to get stuck in and keep failing. :-(

> To a degree yes. But I would stress that the weakest D part is
> the lack of libraries. Concretely, the lack of a few top-notch
> libraries that many other languages have.
> Lua has Torch, which was discontinued in favor of PyTorch couple
> of years ago but ppl keep coming to Torch github asking questions
> even now. How many of them wouldn't even know about Lua if not
> for Torch? Scala has Akka, Spark and some other solid libs
> although the language is so much dense and harder to learn/use
> than D. Should I mention Python vs Ruby where the former had the
> momentum of batteries-included together with the right scientific
> focus to win over a superior and neat language like Ruby? It's
> all about the batteries included and unfortunately D is not there
> and probably will never be just because there is not enough
> people.

I think the notion of "batteries included" has changed dramatically over the last few years. Go's use of DVCS source repositories, Rust/Cargo use of crates.io and DVCS repositories, D/Dub use of central repository means that the old Python idea of the standard library containing everything needed has changed. The question is findability and trustworthiness of source libraries. Rust has it, D sort of, Go less so.

"Batteries included is not about the standard library having everything, it is about the infrastructure more widely having everything. This change is good. In D's case it means breaking up Phobos in the way that Rust broke up it's library and Python has not yet done the same.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



June 10, 2020
On Wed, 2020-06-10 at 05:49 +0000, tastyminerals via Digitalmars-d wrote: […]
> Not arguing that. Every workflow is affected by IDE and its lack thereof. My initial idea was that before the potential future D user even gets there, he needs something to reach for. It could be the web framework which is so good that no other framework is better. It could be the library that is a faster and easier to work with than alternative. D has neither of those and this is discouraging. So, the only new ppl who come, do so because of the language and the amount of such ppl is very small in general. I knew nothing of D libraries but expected such powerful and fast language to have scientific libraries. I found only Mir which is just array manipulation lib. Great, but what about actual beefy stuff like CRF, SVM, k-means? Scattered around personal github repos without single dedicated lib. Does it encourage me to proceed with the language? Definitely no. I would rather continue using Python ecosystem or C/C++ or Java, Scala. I bet even Rust has this by now.

Go has this problem of no findability of all the good libraries due to no
central repository of source libraries. C and C++ have nothing at all unless
you count Conan. Python has PyPI, Rust has crates.io, D has Dub, Java/Scala
has Maven and JCenter. Of course Go and Rust allow you to use DVCS to get at
libraries and this is a wonderful feature – when added to a central repository
as with Rust.

So Phobos not having stuff is probably just D being modern. Is it in Dub, no
idea but at least D has a central repository. Dub working with DVCS as well as
the central repository would be a good thing.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



June 10, 2020
On Wednesday, 10 June 2020 at 07:38:09 UTC, Russel Winder wrote:
> On Wed, 2020-06-10 at 05:49 +0000, tastyminerals via Digitalmars-d wrote: […]
>> Not arguing that. Every workflow is affected by IDE and its lack thereof. My initial idea was that before the potential future D user even gets there, he needs something to reach for. It could be the web framework which is so good that no other framework is better. It could be the library that is a faster and easier to work with than alternative. D has neither of those and this is discouraging. So, the only new ppl who come, do so because of the language and the amount of such ppl is very small in general. I knew nothing of D libraries but expected such powerful and fast language to have scientific libraries. I found only Mir which is just array manipulation lib. Great, but what about actual beefy stuff like CRF, SVM, k-means? Scattered around personal github repos without single dedicated lib. Does it encourage me to proceed with the language? Definitely no. I would rather continue using Python ecosystem or C/C++ or Java, Scala. I bet even Rust has this by now.
>
> Go has this problem of no findability of all the good libraries due to no
> central repository of source libraries. C and C++ have nothing at all unless
> you count Conan. Python has PyPI, Rust has crates.io, D has Dub, Java/Scala
> has Maven and JCenter. Of course Go and Rust allow you to use DVCS to get at
> libraries and this is a wonderful feature – when added to a central repository
> as with Rust.
>
> So Phobos not having stuff is probably just D being modern. Is it in Dub, no
> idea but at least D has a central repository. Dub working with DVCS as well as
> the central repository would be a good thing.

Not sure if you are answering to the op or just add on top of mine. I think having DVCS is really nice and enjoy browsing through dub packages. I also agree than batteries-included notion the way I described it is outdated today.

What I tried to pinpoint is that what brings in new people and keeps the newcomers is a dependency on a particular lib. This happened to many niche languages out there and Lua in my eyes a perfect example of making the language popular among researchers / students (who are the principal target audience as new adopters). I have been a student several years ago when deep learning was going mainstream and saw how many PhD / Master / Bachelor students were messing with Lua just because it had that one hot library. The majority was writing stuff in Python, yes but Lua had its share too. I did my thesis work in Lua myself and that was only because of Torch. After graduating and starting to work, I continued using Lua to do research at work because I already had a lot of code written. Eventually we moved to Python because Tensorflow had Java API and our backend was written in Java/Scala mix. But this is how the language popularity grows for establish languages, outside the "here-is-shiny-new-thing" mindset that emerging languages spread these days.
June 10, 2020
On Sunday, 7 June 2020 at 19:49:48 UTC, Seb wrote:
> On Sunday, 7 June 2020 at 18:39:22 UTC, Rahul Gupta wrote:
>> Hello,
>>
>> (Sorry, if i posted to wrong forum)
>>
>> I am new to D, just started learning a few days back. I have been writing small programs to learn D, some of which require use of containers.
>>
>> Looking at std.containers I see that it is very barebones and generally requires a lot of efforts to use. Googling around brings me to stuff posted around 2015-16 that says that std.container is pending a rewrite. However it is 2020 now and std.container has still not improved.
>>
>> Has any progress made towards the rewrite? Is it at design stage or being developed or has it been forgotten? Is there any timeline for the std.containers rewrite?
>
> The latest effort was https://github.com/dlang/druntime/pull/2760, but it stalled as no consensus was reached on how the reference-counting should be done.

The fact that no one looked into this nor stated his opinion is exactly the reason why no consensus has been reached!

Apparently, it's a lot easier and comfortable to go off-topic and discuss the merits of different languages and their IDEs :/

I understand that it's easier to understand and more visible if your IDE doesn't provide good auto-completion, but I don't understand why threads like this get repeatedly hijacked and don't even prepend to discuss the actual question asked by the OP.

June 10, 2020
On Wednesday, 10 June 2020 at 07:38:09 UTC, Russel Winder wrote:
> So Phobos not having stuff is probably just D being modern. Is it in Dub, no
> idea but at least D has a central repository. Dub working with DVCS as well as
> the central repository would be a good thing.

I've heard this argument before, it is a rather weak one. Even C++ and Rust have containers in their standard library, and that's in two languages that have a relatively small and modest standard library, though C++'s std lib continues to grow. Python's standard library is also rather huge, and of course also includes containers. D's standard library includes libcurl and some other's that is questionable whether it should have been included in the first place.

Part of the problem is that parts of Phobos aren't maintained anymore by anyone. Regex comes to mind. In other languages if something is in the standard library then it is going to be maintained by the core development team, that isn't exactly the case with D. If D wanted to try and attract scientific researches for example, then it would be a good idea to include and maintain those elements into the standard library to make it easier for them.
June 10, 2020
On Wednesday, 10 June 2020 at 13:06:44 UTC, Seb wrote:
> The fact that no one looked into this nor stated his opinion is exactly the reason why no consensus has been reached!
>
> Apparently, it's a lot easier and comfortable to go off-topic and discuss the merits of different languages and their IDEs :/
>
> I understand that it's easier to understand and more visible if your IDE doesn't provide good auto-completion, but I don't understand why threads like this get repeatedly hijacked and don't even prepend to discuss the actual question asked by the OP.

It really shouldn't be up to us, as part of the "community" to build core principles of D. Currently in D there's no way to create @safe containers that doesn't use the GC. I don't care if my containers are @safe, but I don't see @unsafe containers being merged into phobos. This is just the result of a larger problem that no community discussion is going to solve.