Gary Willoughby: "Why Go's design is a disservice to intelligent programmers"

Russel Winder via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Mar 27 02:57:23 PDT 2015


On Thu, 2015-03-26 at 18:47 -0700, Walter Bright via
Digitalmars-d-announce wrote:
> On 3/26/2015 12:40 PM, Russel Winder via Digitalmars-d-announce wrote:
> > (Almost) All publicity is good publicity.
> 
> 
> I attended a presentation at NWCPP on Go last week. I have never written a Go 
> program, so filter my opinion on that.
> 
> It seems to me that every significant but one feature of Go has a pretty much 
> direct analog in D, i.e. you can write "Go" code in D much like you can write 
> "C" code in D.

That is almost certainly true. I suspect you can write Go in C++ as
well. D and C++ are definitely supersets of Go.

> The one difference was Go's support for green threads. There's no technical 
> reason why D can't have green threads, it's just that nobody has written the 
> library code to do it.


I think the way go handles interfaces and their composition would
require a few tricks in D and C++, but I am sure it can be done.


Aren't "green threads" now given the label fibres? And I think Vibe.d
has an implementation for these – but I do not know for certain.

The dataflow way of working and the special case CSP, also actors are
clearly the right abstraction for most parallel computation, using as we
all agree, a kernel thread pool animating tasks. std.parallelism has
something along these lines but focussed on data parallelism.

Given the existence of C++CSP2 (http://www.cs.kent.ac.uk/projects/ofa/c
++csp/) D can get a CSP implementation for free, especially if the
recent innovation on C++ working come to fruition.

As work on GPars and Quasar in the JVM arena, and Erlang and Go since
they were created, show, lightweight processes with communication
channels is the next step in providing good abstractions for CPU and IO
bound processing.

Anthony Williams (Just Software,
https://www.justsoftwaresolutions.co.uk/)) has been at work trying to
put actors and dataflow on top of C++11 threads, with some success.

D needs to corral all the bits, which I think are there, to create a
good offering. However, I cannot see this happening purely on volunteer,
hobbyist resource. We need to find an organization or three willing to
resource this activity.
 

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


More information about the Digitalmars-d-announce mailing list