Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I am / We are considering using Go, but I'm a bit reticent about its maturity compared to Erlang, which is a very, very solid system. The 32 garbage collection issue is a big question. Arm support is another. Also, all the extras Erlang gives you in terms of writing robust systems look pretty attractive.

That said, I'm about 99% that Erlang will always remain a niche player, along the lines of Smalltalk and Lisp, whereas Go has a shot at 'the big time'. That's something to keep in mind in terms of hiring people and getting other people up to speed on the language. Go is something that other people will look at and 'get' a bit quicker than Erlang.

BTW, interesting article on Go concurrency vs Erlang concurrency: http://www.informit.com/articles/article.aspx?p=1768317



You might want to watch this talk about using Erlang in production: http://www.youtube.com/watch?v=G0eBDWigORY

Go and Erlang have some differences, and I found particularly interesting that pretty much all the issues they have with Erlang don't apply to Go often because of how Go avoided what might seem superficially like a 'feature' in favor of "raw" simplicity.

That said, Erlang probably would be my second choice after Go if I had to build a highly concurrent distributed system, just realize that things are not as rosy as they seem.

BTW, to address your other comments: all the remaining 32bit GC issues should be solved in the upcoming Go 1.1 release (still you will always be much better off using the 64bit port), and the ARM port is in pretty good shape.


> Go and Erlang have some differences, and I found particularly interesting that pretty much all the issues they have with Erlang don't apply to Go often because of how Go avoided what might seem superficially like a 'feature' in favor of "raw" simplicity.

Some of what they discuss simply isn't available in Go, like OTP, so I wouldn't count that as a "win" for Go. Other things like 'heart' are things I want, given that it's going to be for a semi-embedded system.

That's a good video, but all languages have gotchas and things to watch out for, especially mature ones. Go has some advantages in a 'fresh start': some of the biggest Erlang warts are actually the language itself; the syntax, records, some things like that that are just kind of ugly.

For a product currently in development, "should be solved by a future release" is probably too far in the future to matter much. "pretty good shape" sounds a bit worrisome for a semi-embedded device where updates via the internet are not necessarily going to be an easy proposition. 64bit is going to eat more memory, something we'd prefer to avoid if at all possible.


You should really take a look at Scala too. It's actor implementation is inspired by Erlang and very elegant. Plus you've got the whole Java ecosystem so it doesn't really matter if Scala doesn't become (more) mainstream.


Memory usage is a concern, and my experience has been that Java isn't so good in that department. Perhaps there are exceptions like Dalvik?




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: