D vs Go in real life

Russel Winder russel at winder.org.uk
Wed Nov 6 05:18:31 PST 2013


On Tue, 2013-11-05 at 21:38 -0800, Jonathan M Davis wrote:
[…]
> Go is on the list of languages that I'd like to spend more time becoming 
> familiar with, because I think that it's good to know lots of programming 
> languages, but the more I learn about it, the less I like it. Its design 
> philosophies are just too different from my preferences.

I would suggest that this is the core of the point: programming language
is about personal preference as much as it is about language features.
There are many dimensions to the scale including language complexity,
ability to easily express algorithms, ease of handling errors and
exceptions, context of use, problems being addressed, composition of
team programming, individual preference, etc., etc.

Go is a very small language, with great data communication mechanisms, a
simple build and deploy strategy, a view that DVCS (Git, Mercurial and
Bazaar) is all the version management you need, all pivoting around
static compilation of executables. I really like it, except for the
obsession with error codes and no exceptions (except one which is the
"terminate now" exception.

Go is being pushed by Google and now Canonical, so its market
penetration and traction in the programming community is assured.

Rust is an interesting language, not least because it is taking many,
many lessons from the functional programming community and transporting
them into the imperative native code world. cf. the influence of ML and
especially OCaml. Like C++ and D, Rust is actually a big language and
aimed at the same sort of context and problem. And, of course, Rust has
Mozilla pushing it.

Go and Rust are, of course, new languages, C++ and D are old language.
For D this is a bad thing. D is always playing "catch up" and has no big
influential organization saying "this is the language we use for our
developments (in such and such an area)".

Given the current situation, I would advocate creating a new language,
call it Brite say, which is an evolution of D2 (where the difference is
in reality zero), and push the LDC2 realization of it as the primary
implementation, with the GCC version a proud second. This way you get
"new", "llvm", and a high quality statically typed native code language
out there for people to go "wow" to. 





-- 
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



More information about the Digitalmars-d mailing list