From what I read, Erlang is better at what Go tries to do.
Maybe it's just a 20% project that is being released into the wild...
From what I read, Erlang is better at what Go tries to do.
Maybe it's just a 20% project that is being released into the wild...
BTW, Erlang's syntax has some annoyances that go beyond just not being C. "Ant turd tokens", for instance. Nothing that's going to stop a competent developer, of course.
I've already posted http://news.ycombinator.com/item?id=837217 to express my opinion on that though, if you want to read it.
It also doesn't have first class records. A record is nothing but a tuple, with some compile-time sugar that reminds you what the fields are. If Employee records have a name field, then you access it by saying e#Employee.name.
I'd love to see what Joe would do if he could go off and make an Erlang 2.0 and ditch the backwards compatibility.
Rewrite in the past tense, and this is an epitaph for any number of "niche" languages. Sad but true. Computer programming would be much better off if it were not so. Cultural expectations are a major factor in initial impressions. Good initial impressions make for a large, vibrant user base.
Python probably "gets it right" in terms of having enough syntax to satisfy expectations, but little enough to make tool writing accessible. (Except for the indentation thing, of course.) Ruby has too much. Smalltalk drops the ball with no precedence rules for math operations. Lisp and Forth are also a bit too weird, especially if your field is not programming and all you want to do is crunch some engineering data.
Limbo is probably better, Erlang is not a systems/low level language, its aim isn't to come (anywhere) close to C performances, while Go seems to have performances in mind.
One could (and some are planning to) write a kernel in Go, doing the same in Erlang would be much harder, if possible at all.
Now Smalltalk and Lisp have both been used for "systems programming" -- years ago, on much older hardware. One can just live with the overhead. Go looks like it would have C-like memory overhead, so perhaps it is a much better choice in this regard?
For example (have to google for the document), a method dispatch on then comparable cpu's was 1000 microseconds vs 3.5 ms for Symbolics machine, due to the specialized instruction set.
Symbolics went so crazy, that it developed every HW piece being used - including monitors & printers :)
That to be said I love Common Lisp :)
It is not "just a 20% project" (the list of people involved is quite big), plus if it was ken's 20% project, 20% of ken is like 20000% of your average hacker.