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