October 01, 2019
It is kinda strange to see, how discussion went from "Nim hitting 1.0" to "what I dislike about D" in a matter of few posts. Obviously programming languages are tools and there is no ideal programming language. D is opinionated like many other languages, the design and most of the compiler work is mainly done by few core members of the team. While I think it would be nice to have Rust's automatic memory management at compile time or Go's awesome standard library or Zig's error handling enforcement in D, in reality core members won't be available to keep up with all new trends in programming languages. You don't have to use D for everything, use D for stuff that D fits nicely. Or go make D3 with all the features you like (you can use D2 to bootstrap the compiler, use LLVM as a backend and etc).
October 02, 2019
On Tuesday, 1 October 2019 at 22:18:05 UTC, Rel wrote:
> It is kinda strange to see, how discussion went from "Nim hitting 1.0" to "what I dislike about D" in a matter of few posts. Obviously programming languages are tools and there is no ideal programming language. D is opinionated like many other languages, the design and most of the compiler work is mainly done by few core members of the team. While I think it would be nice to have Rust's automatic memory management at compile time or Go's awesome standard library or Zig's error handling enforcement in D, in reality core members won't be available to keep up with all new trends in programming languages. You don't have to use D for everything, use D for stuff that D fits nicely. Or go make D3 with all the features you like (you can use D2 to bootstrap the compiler, use LLVM as a backend and etc).

This thread in general, and some earlier posts in particular, inspired me to document why I have been using D lately.  I wrote it up here:
http://samirparikh.com/blog/adventures-in-dlang.html

From a beginner's perspective, it's the active community on these lists that have helped me out the most.
October 02, 2019
On Tuesday, 1 October 2019 at 22:18:05 UTC, Rel wrote:
> It is kinda strange to see, how discussion went from "Nim hitting 1.0" to "what I dislike about D" in a matter of few posts. Obviously programming languages are tools and there is no ideal programming language. D is opinionated like many other languages, the design and most of the compiler work is mainly done by few core members of the team. While I think it would be nice to have Rust's automatic memory management at compile time or Go's awesome standard library or Zig's error handling enforcement in D, in reality core members won't be available to keep up with all new trends in programming languages. You don't have to use D for everything, use D for stuff that D fits nicely. Or go make D3 with all the features you like (you can use D2 to bootstrap the compiler, use LLVM as a backend and etc).

No one claims that. The general idea expressed in this thread is that D isn't opinionated enough. Would it be nice to have those features? Depends on the person. Personally I don't care much about Rust's memory management or Zig's error handling. I don't mind GC. But there are people here who do, and for them it could be appealing.

As for D3 with all the features you like, I'd rather see D3 with half the features :)
October 02, 2019
On Wednesday, 2 October 2019 at 07:20:00 UTC, JN wrote:
> On Tuesday, 1 October 2019 at 22:18:05 UTC, Rel wrote:
> As for D3 with all the features you like, I'd rather see D3 with half the features :)

Yup - lets go back to D1 sort of and I am serious aout that.
October 02, 2019
On Tuesday, 1 October 2019 at 10:05:31 UTC, Ola Fosheim Grøstad wrote:
> On Tuesday, 1 October 2019 at 08:47:19 UTC, Chris wrote:
>> 1. Walter admits that D only caters for a few users with very specific use cases (niches).
>
> Which niches are these?
>
> My impression is that D primarily caters for users that want the feature-set of C++, but find C++ to be too inconvenient or complicated.

See what I've found, a very wise man:

"[managed languages] will have their share, but native languages will also get a part of the cake. Here most developers seem to be satisfied with the available choices: Go, Rust, C++, C, X (place your favorite one in here).

So why should D now (suddenly) get the attention (which it would certainly deserve)? My guess is that it won't be about making D more attractive to new developers. I feel that the mission will be to make D more powerful for a variety of very special scenarios, which will give the language a piece of the cake that [is] not in the mainstream area." (8/29/2015)
https://florian-rappl.de/News/Page/310/is-it-d-comeback

Funnily enough, it wasn't too long after that, in 2017, that I was getting increasingly frustrated with D and started to look for alternatives to D as I was beginning to realize that D had become a language for "special scenarios" and that other use cases (e.g. mobile) would never happen.
October 02, 2019
On Wednesday, 2 October 2019 at 09:57:40 UTC, tester wrote:
> On Wednesday, 2 October 2019 at 07:20:00 UTC, JN wrote:
>> On Tuesday, 1 October 2019 at 22:18:05 UTC, Rel wrote:
>> As for D3 with all the features you like, I'd rather see D3 with half the features :)
>
> Yup - lets go back to D1 sort of and I am serious aout that.

Yes, something like that, but now D2 has too many features that are being used by the organizations that use D. I think some of the (half-baked) features were actually introduced to cater for their needs. I suppose that the organizations that are using D2 now will not accept a trimmed down version of D by now. I'd say it's too late.
October 02, 2019
On Wednesday, 2 October 2019 at 10:04:44 UTC, Chris wrote:
> Yes, something like that, but now D2 has too many features that are being used by the organizations that use D. I think some of the (half-baked) features were actually introduced to cater for their needs. I suppose that the organizations that are using D2 now will not accept a trimmed down version of D by now. I'd say it's too late.

Well, I guess then it is too late for me to start using D.
Best of luck for all of you.
October 02, 2019
On Tuesday, 1 October 2019 at 10:43:24 UTC, Chris wrote:
> On Tuesday, 1 October 2019 at 10:05:31 UTC, Ola Fosheim Grøstad wrote:
>> Which niches are these?
[...]
> Look at the companies listed here:
>
> https://dlang.org/orgs-using-d.html
>
> and the posters who say "everything's great" often work for one of those companies. Weka.io and Symmetry come to mind. It's mostly real time (e.g. Funkwerk, sociomantic) and high throughput stuff (Weka.io etc.). It's mostly cloud / server based (that's why mobile is regarded unimportant). This is perfectly fine, if that's what D wants, but please be clear about it.

That list is a bit difficult to assess as some of the companies have not moved forward with the language, but doesn't some of the those that have gone with D wholesale use their own runtimes?

But yes, real time seems to be a niche with some adoption. Batch-dataprocessing seems to be a niche (I assume this accounts for situations where developers have failed to bring Python or other high level language up to the performance they wanted).

But there isn't really many features in the language that makes it particularly well suited for real time or dataprocessing. It is mostly on the library/runtime level.

So my current impression, from that list, is that there is no particular niche where it is the best option. There is not enough adoption in any particular niche IMO. (Compared to other "new" languages that have significant growth.)

> It calls my attention, though, that at Mercedes-Benz R&D "D is used for software development tools." Apparently, they're not yet convinced, and if you look at the other organizations above, they can afford to use a highly specialized, exotic language like D, because they're not too big and use it for very specific tasks. But once things get bigger, e.g. Mercedes-Benz, the company starts to tread more carefully.

Right, what it suggests is that  Mercedes-Benz R&D  don't see any obvious solution for what they want to do, so they look at smaller languages. Then they will try it for some task, but the acid test is if they expand as they go forward.

Although, I do suspect that many people/managers tend to be inclined to try out languages that looks (syntax and feature wise) like something they already know. So if they look for something C-like it doesn't really tell us much about whether a more esoteric language like Rust would be "better" or "worse" for the task they try to solve. So that Rust is expanding in some niches despite having a syntax that is alien to many makes me more confident that they are carving a niche of their own. It is more difficult to make this argument for languages like Nim and D.


October 02, 2019
Or to phrase it differently:

In  which niche can Nim or D hope to obtain 1% market share of within 10 years?

Which niches are out of reach?

Clearly, web, iOS, Android are all out of reach. But maybe there are some other niches where a focused effort could lead to market-capturing progress.

What would have to change (in terms of technology) to increase the probability of capturing one such market?


October 02, 2019
On Wednesday, 2 October 2019 at 10:10:56 UTC, Ola Fosheim Grøstad wrote:

>
> That list is a bit difficult to assess as some of the companies have not moved forward with the language, but doesn't some of the those that have gone with D wholesale use their own runtimes?

I don't know, but I'm sure they have carefully crafted special purpose tooling around their D code (else you cannot work with D anyway).

> But yes, real time seems to be a niche with some adoption. Batch-dataprocessing seems to be a niche (I assume this accounts for situations where developers have failed to bring Python or other high level language up to the performance they wanted).

> But there isn't really many features in the language that makes it particularly well suited for real time or dataprocessing. It is mostly on the library/runtime level.

I suppose it's because it's easier to write in D than C/C++ (productivity) and the native performance gave them an edge over companies that use(d) Python for data analysis. D, like Python, is good for fast prototyping and, unlike Python, it is quite fast. But does it really scale?

[...]

>
> Right, what it suggests is that  Mercedes-Benz R&D  don't see any obvious solution for what they want to do, so they look at smaller languages. Then they will try it for some task, but the acid test is if they expand as they go forward.

Apparently, Facebook has dropped active D development. I'm always skeptical when I hear "X is using D now." People often say that D needs a big player behind it, but the big players actually have to be very careful with exotic languages. If it doesn't scale, they cannot use it. It's not that they're all knobs adopting the latest hipster fashion or sticking to old technologies. They simply cannot risk to be stuck with an exotic language. Smaller organizations that operate within very special scenarios can afford to use D and it might give them an edge over their competitors. But that doesn't mean D is a good choice per se, and keep in mind that for standard technologies like XML parsing and the like they might still rely on battle-tested libraries written in C/C++.