Interesting Observation from JAXLondon

Joakim dlang at joakim.fea.st
Fri Oct 12 07:55:19 UTC 2018


On Friday, 12 October 2018 at 07:13:33 UTC, Russel Winder wrote:
> On Thu, 2018-10-11 at 13:00 +0000, bachmeier via Digitalmars-d 
> wrote: […]
>> Suggestions?
>> 
>> My guess is that the reason they've heard of those languages 
>> is because their developers were writing small projects using 
>> Go and Rust, but not D.
>
> I fear it may already be too late. Go, and now Rust, got 
> marketing hype from an organisation putting considerable 
> resources into the projects. This turned into effort from the 
> community that increased rapidly, turning the hype into 
> frameworks and libraries, and word of mouth marketing. It is 
> the libraries and frameworks that make for traction. Now the 
> hype is gone, Go and Rust, and their libraries and frameworks, 
> are well positioned and with significant penetration into the 
> minds of developers.
>
> Talk to Java developers and they have heard of Go and Rust, but 
> not D. Go is
> more likely to them because of Docker and the context of The 
> Web, for which Go
> has a strong pitch. They have heard of Rust but usually see it 
> as not relevant
> to them, despite Firefox.
>
> Talk to Python developers and they know of Go, many of them of 
> Rust, but
> almost never D. C and C++ are seen as the languages of 
> performance extensions,
> though Rust increasingly has a play there.
>
> D has vibe.d, PyD, GtkD, and lots of other bits, but they've 
> never quite had the resources of the equivalents in Go and Rust.
>
> Also the D community as a whole is effectively introvert, 
> whereas Go and Rust communities have been quite extrovert. 
> "Build it and they will come" just doesn't work, you have to be 
> pushy and market stuff, often using guerilla marketing, to get 
> mindshare.
>
> D has an excellent position against Python (for speed of 
> development but without the performance hit) but no chance of 
> penetrating the places where Python is strong due to lack of 
> libraries and frameworks that people use – cf. Pandas, 
> SciKit.Learn, etc.
>
> D has an excellent position against Go as a language except 
> that Go has goroutines and channels. The single threaded event 
> loop and callback approach is losing favour. Kotlin is 
> introducing Kotlin Coroutines which is a step on from the 
> observables system of Rx. Structured concurrency abstracting 
> away from fibres and threadpools. Java may well get this via 
> Project Loom which is Quasar being inserted into the JVM 
> directly. Whatever D has it doesn't seem to be going to compete 
> in this space.
>
> D without the GC has a sort of position against Rust, but I 
> think that battle has been lost. Rust has won in the "the new C 
> that isn't Go and doesn't have a garbage collector, and isn't 
> C++, but does have all the nice monads stuff, oh and memory 
> safety mostly".
>
> When it comes down to it D will carry on as a niche language 
> loved by a few unknown to most.

There is truth in much of what you say, but D has to pick its 
battles. Given the design of the language, I see two primary 
use-cases right now:

1. apps that need some level of performance, ie Tilix
2. Low-level tools that need a lot of performance, ie Weka or 
Sociomantic

Going after some established tool like Pandas and its mix of 
Python and C is likely to fail right now, as D is never going to 
be as easy as Python, and presumably Pandas has already sped up 
whatever it needs to in C. Maybe you could create a better tool 
in D some day when the D ecosystem is larger, but I don't think 
it would be the best approach today.

We need to think about what markets D would be best suited for 
and aim for those, while at the same time resisting the 
temptation to make D too specialized for those initial markets, 
which is a trap many other languages fall into.


More information about the Digitalmars-d mailing list