[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: The new Google "Go" language - with n=0..N buffered blocking channels

Hi Oyvind, and all

I'm not surprised that "the message" is finally getting through BUT ? only a small part of it, I think.  occam was many things.

Why oh why do we have to retain such obscure syntax and so many complications of such little utility.
I suppose letting 'go' of inheritance is some progress.
Many more complications could be removed from view.

To me, the most essential point about programming is the model for abstraction a language represents.
This has to be as simple as possible, and transparent in the language, as it was in occam.
The model must encompass all the behaviour we really need but no more.
We need simple abstraction of concurrency, prioritized alternation ('event-driven' behaviour), and objects mobile between processes.
We can live without channels of channels, or channels down channels, IMHO.

The acid test is in teaching. 
A language simple enough for 90% of students will afford reliable programs as well as a reliable supply of programmers.
In my experience, only 40% (truly) made it past pointers.  Only about 1% would have made it past concurrency in Java.  95% did so with occam.

'Programmability' is going to matter more and more, even in the simplest products.  We need a PL everyone can use.
For me, the breakthrough here was Bill Atkinson's Hypercard, which combined power of _expression_ with 'readability'.
It showed how raising the level of abstraction could bring you closer to natural language.

The truly sad thing is that, while the need for better tools continues to grow exponentially, the only voices that will be heard are those with a big name.
It's a kind of celebrity culture, rather than a technical one.


On 11 Nov 2009, at 09:05, Teig, Oyvind UTCFS wrote:



From their site:

Robert Griesemer, Rob Pike and Ken Thompson started sketching the goals for a new language on the white board on September 21, 2007. Within a few days the goals had settled into a plan to do something and a fair idea of what it would be. Design continued part-time in parallel with unrelated work. By January 2008, Ken had started work on a compiler with which to explore ideas; it generated C code as its output. By mid-year the language had become a full-time project and had settled enough to attempt a production compiler. In May 2008, Ian Taylor independently started on a GCC front end for Go using the draft specification. Russ Cox joined in late 2008 and helped move the language and libraries from prototype to reality.

Go is mostly in the C family (basic syntax), with significant input from the Pascal/Modula/Oberon family (declarations, packages), plus some ideas from languages inspired by Tony Hoare's CSP, such as Newsqueak and Limbo (concurrency). However, it is a new language across the board. In every respect the language was designed by thinking about what programmers do and how to make programming, at least the kind of programming we do, more effective, which means more fun.

Med vennlig hilsen / sincerely
Øyvind Teig

Øyvind Teig
Senior dev.eng./utviklingsingeniør, M.Sc.
Autronica Fire and Security AS
, A UTC Fire & Security Company
Tlf: +47 7358 2468 Fax: +47 7358 2502 Mob: +47 9596 1506
www.teigfam.net/oyvind/pub - Publications