4 ms·
The question I have about Go is: why? 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
by shin_lao 17y ago
The question I have about Go is: why?
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...
- davidw 17y agoErlang does some stuff very, very well, and other things... perhaps not so well. Also, the syntax for most people is a bit of an initial stumbling block. In other words, I don't think Go is really aimed at Erlang's sweet spot, although perhaps it could be used to build Erlang-like systems, given some time and effort.
- legooolas 17y agoWe need to encourage people to get over their fear of syntax which is not C-like. I find much more pain in C-like syntax being jammed onto new languages than new languages daring to be different (and possibly coming up trumps, or being a disaster, but it's more interesting if they're different and perhaps better in some ways, IMHO).
- davidw 17y agoSure, but perhaps that is not a battle this particular group wants to fight. 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.
- legooolas 17y agoPerhaps the "competent developer" is not what they are aiming at, but the masses. In fact, this would explain a lot of languages using C-like syntax if it were true (not to say that those which do are any worse/better than those which do not, he said back-pedalling :).
- mononcqc 17y agoI've never got the "And turd tokens" thing after using the language for a few days. It pretty much all makes sense to me. I've already posted http://news.ycombinator.com/item?id=837217 http://news.ycombinator.com/item?id=837217 to express my opinion on that though, if you want to read it.
- davidw 17y agohttp://news.ycombinator.com/item?id=837462 http://news.ycombinator.com/item?id=837462 - the answer to your post - sums up nicely why they are annoying: they make it so that one line of code is often not interchangeable with the next, so when you refactor or cut and paste, you have to go fiddle with line endings.
- yummyfajitas 17y agoFor an example of the broken stuff, consider string handling: [98, 114, 111, 107, 101, 110] == "broken". 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.
- davidw 17y agoYeah, the records are ugly. 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.
- stcredzero 17y agothe syntax for most people is a bit of an initial stumbling block 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.
- rick_2047 17y agoBTW, even if its an 20% project thrown out in the wild it would be interesting to see how it fairs.the people used email before gmail came along, which was also a 20% project.And look at it now, its real big.May be same can happen with Go, or maybe not.Well, I don't care either way :)
- uriel 17y agoWhile Erlang is great, it is certainly not a systems programming language, it requires a really complex runtime/vm, and it is not related to C in any way (and many of us still love C, and are happy to see a language to fixes its shortcomings). 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.
- stcredzero 17y agoOne thing a lot of people forget, is how much memory overhead is involved with modern languages like Erlang. (Python and Ruby are bad in this regard as well.) Smalltalk was heavily criticized in its day for this, yet "modern" languages are just as bad or several times worse. 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?
- malkia 17y agoLisp was used (Symbolics), but the machine had specialized instructions dealing better with gc, and object dispatching (was it Flavors, Symbolics pre-CLOS OO system). 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 :)
- stcredzero 17y agoA friend of mine has a Lisp machine sitting in his living room. It (the hardware) runs about half the time. He occasionally has to go in and fix the thing. Software looks old, but can still impress!
- masklinn 17y ago> From what I read, Erlang is better at what Go tries to do. 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.
- jrockway 17y agoBy "Erlang", I assume you mean Haskell.
- uriel 17y ago> Maybe it's just a 20% project that is being released into the wild... 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.