Future directions for D [was Re: Java binaries]

Russel Winder russel at winder.org.uk
Sun Feb 17 23:30:44 PST 2013


On Mon, 2013-02-18 at 03:37 +0100, js.mdnq wrote:
[…]
> Everything started out as minor and if D's language features are 
> truly good and D is as well designed as some think then people 
> will migrate to it. Essentially "If you build it they will come" 
> type of scenario.

D is out there, but not widely enough known, people are sticking with C
and C++ or heading to Go. And then there is Rust.

> Those that would use a D for java type of language can't so there 
> is no way to measure how successful it would be.

Very true. You can only get a feel for a reaction when the capability is
there. However look at the JVM-based milieu. Despite Groovy, Clojure,
Ceylon, Kotlin, JRuby, Jython, Scala, the vast majority of organizations
are Java fixated. Worse they are worrying about migration from Java 5 or
6 or 7, some even from Java 1.4. It is all to easy to forget from the
excitement of the bleeding edge how far behind most of the world is.

> Virtual machine programming has many benefits but we definitely 
> do not need another one. Hence, it would be nice to leverage 
> java, which already has build up it's user base to further the D 
> language paradigm. I like D but so far it doesn't seem to be 
> going anywhere. Why? Because one already has all these other 
> languages and tools to do the job.

I cannot see C, C++, D, Go, Rust, etc. ever working on the JVM enough to
compete with Java, Scala, Groovy, Ceylon, Kotlin which are designed for
the JVM. Creating a backend for D to sit on the JVM would be an
interesting academic project that might eventually lead to a product,
more likely it would make a great PhD.

D's lack of traction is mostly to do with it not making headway against
C and C++ in the C and C++ communities. Go is pitched against C, C++ and
Python and is beginning to make headway. It has two features that allow
this: use of CSP ( at least Rob Pike's variant developed in parallel)
for concurrency and parallelism, and the support of Google. D has actors
and data parallelism and a huge void for the number of big companies
standing up saying they are happily using D.

A couple of international banks have ditched large centralized Java
mindset for a combination of small Scala install for centralized and
Python out in the business units. This has been a huge fillip to both
Scala and Python. Not least that I am currently making  most of my
living from Python training for these organizations.

Who are the organizations using D as their strategic programming
language? Who are the companies offering D training? Where is the
plethora of books on the D language?

Getting high scores for posts on StackOverflow and Reddit actually mean
very little. A good rating on TIOBE matters more than it should. Having
training companies with stock training courses and big, high profile
users, is what really matters.

> Imagine this:
> 
> Suppose with a snap of your fingers you could have the following 
> products:
> 
> High stable and performant D compiler for all the major 
> platforms(including many embedded) with a large collection of 
> support tools.
> 
> A D virtual machine that runs on many platforms. A D for java 
> compiler that compiles almost any D program into java bytecode 
> and use java libraries.
> 
> etc...
> 
> Now, if you had all this stuff magically out there do you think 
> that the userbase for D would explode? I do... In fact, it would 
> happen for most decent languages. (of course, we could argue 
> about the exact details but D would become a major player within 
> a few years)
> 
> Hence, having this stuff is important for D's success. Of course, 
> it may not be possible in some cases or sacrifices have to be 
> made. In any case I'm not convinced that a D for java can't be 
> implemented and I do feel it would further D's popularity.

Mapping D to Java and then using a Java compiler is feasible but a huge
undertaking, more than trying to compile D to JVM bytecodes. But as soon
as anyone mentions JNI as an integral part of a language's
implementation, they are on to a loser. JNI needs to be treated with a
distributed systems mindset, not a code execution one.

> Of course, D is still in it's infancy but it would be cool it 
> someone was interested in trying to make a D for java and see 
> where it goes. I think something useful would come out of it. 
> (Please don't say I should do it either...)

D is not in it's infancy, it is 10 years old and in language terms
should be mature and entering mainstream use. Java and C are weird
special cases, but C++, Groovy, Python, JRuby, most other languages take
5 years to develop, 5 years to settle and if they are not major players
by then will disappear. Of course most language don't get that far.

D is superior to C++ in almost every way except that it has no traction.

I am thinking that C++ is no longer the thing that D is able to compete
with, just let that community be. C is also shrinking as people realize
it is a niche language for operating systems and runtime systems. The
action is native vs. JVM vs. PVM.

The native+PVM has massive traction in computational arenas. JVM remains
the major player other than .NET in almost all Internet life. Go is
having a good go (!) at challenging this on behalf of native.

Marketingwise D is at a crossroads: continue to see itself as a C++
beater, or a native language for the Internet world. This is about
mindset and attitude of people here in this mailing list and the way
they present D to the world.

vibe.d could be the making of D if pushed appropriately. But it needs a
client as well as server activity. GtkD, QtD, wxD, OSXD, WindowsD, i.e.
connection into the standard graphics systems, are needed. SQLD,
MongoDBD, NeoD, are needed. The effort should be on embedding D in a
flexible context.

Go has motored a long way down this road already and is beginning to get
mind share as the native code system for the Internet. It has a huge
distance to travel to challenge Java and ASP.NET, but it is way ahead of
D.
  
-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130218/dc49f491/attachment.pgp>


More information about the Digitalmars-d mailing list