A few notes on choosing between Go and D for a quick project

Russel Winder via Digitalmars-d digitalmars-d at puremagic.com
Sat Mar 14 02:12:17 PDT 2015

On Fri, 2015-03-13 at 20:12 -0700, Andrei Alexandrescu via Digitalmars-d
> On 3/13/15 5:54 PM, deadalnix wrote:
> > On Saturday, 14 March 2015 at 00:34:35 UTC, Ziad Hatahet wrote:
> >> On Fri, Mar 13, 2015 at 6:45 AM, Russel Winder via Digitalmars-d <
> >> digitalmars-d at puremagic.com> wrote:
> >>
> >>> The removal of shared memory multi-threading in favour of using
> >>> processes and channels should never be underestimated as a Really Good
> >>> Thing™ that other native code languages (*) have failed to do anything
> >>> about. Thus Go wins, others lose.
> >>>
> >>
> >> Except that Go does not really remove shared memory multithreading; it is
> >> still possible to get data races (which is why they have a race
> >> detector).
> >> They provide channels, but nothing is preventing races other than
> >> convention. On the other hand, Rust (a native code language) offers a
> >> much
> >> superior solution, with compile-time enforcement of data sharing.

Rust may indeed be superior to Go on this. It will be interesting to see
if Rust, once formally released to world, makes an impression on the
rise of Go. I certainly hope so, since writing Rust code is nicer than
writing Go code.

I suspect not. Go marketed itself as a "better C" (as C++ did
originally), and got some Python folk and a lot of PHP folk to switch:
Go's main traction is in the Internet, networking, Web applications
arena despite claiming to be a systems programming language. Rust is
pitching against C++ as D does. C++ folk appear to be locked-in in a way
that means Rust and D need to rethink the pitch.

> >
> > How very true, but, by the time you run into data races, you are pretty
> > much commited to go.
> >
> > Sad.

Why? In any CSP-like system, it is possible to get deadlock, livelock
and races. However "debugging" them is nigh on trivial compared to the
effort required with shared-memory multi threading.

PyCSP and Python-CSP as well as Go show this.

> I'm surprised Russel fell for it. -- Andrei

Fell for what? 

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: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20150314/f0778fa1/attachment.sig>

More information about the Digitalmars-d mailing list