Switching from Java to D: Beginner questions, multiplatform issues, etc.

Bienlein jeti789 at web.de
Fri Feb 28 04:10:16 PST 2014


This topic mentions IMHO an important point: D is not only 
interesting for C++ people, but also for Java developers. 
Companies that are happy with Java may have little incentive to 
change to D or maybe Go. But when starting something new D can be 
an alternative to Java as it also can be used for application 
development to some extend (has a GC, fast build times and other 
things that result in good productivity). Someone like me who has 
spent his career with Smalltalk and Java and doesn't know a thing 
about systems programming can get along with D quite easily. 
Something like a "D for Java developers" user guide would make 
sense IMHO.

D has better performance than Java and better productivity than 
C++. Java is starting to get polluted with several things like 
dependency on XML which really degrades productivity. I don't 
spend my time looking for bugs in source code, but in XML 
definition files (every framework has XML, some even allow you to 
define logic in XML like Apache Camel). And this takes much more 
time than when looking into code.

Then Java suffers from its threading model which is suitable for 
general purpose programming, but not for web applications. For 
WhatsApp a single machine holds over a million network 
connections (see 
https://www.erlang-solutions.com/about/news/erlang-powered-whatsapp-exceeds-200-million-monthly-users) 
due to Erlang's threading model being able to get this 
accomplished. In Go more than 100k network connections is also 
not a problem (according to some tweet by Rob Pike). What seems 
to attract people to Go is Go's threading model that is very well 
suited for network programming and server-side web development. 
But Go's language is simplistic and that probable won't change. 
My impression is that this is on purpose. They want a modernized 
C and that's it. So there is room for D here for server-side 
development à la Go but with a high-level language. There is 
really hell going on in Go's user forum. Multi-threading and 
concurrency through goroutines as well as good libraries for 
network programming seem to be the driving factors for Go.

D is really modelling power as well. That's the big win over Go. 
No Java/EE architect will accept a language without inheritance 
nor method overriding. I think there is no feature in Scala that 
D doesn't have (except implicits, which is a good thing not to 
have). On the contrary D has immutable types and pure functions. 
Things that aren't possible in Scala due to limitations of the 
JVM or need for interoperability.

-- Bienlein


More information about the Digitalmars-d-learn mailing list