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

I'm not interested in C++, not using it, do not care about it. So, I am neither visiting HN links that are about C++ nor taking part in discussions related to C++.

And I'm really curious what drives people in this thread that are coming to say they do not want to use Go, do not like it, and stuff like that?



Go's surge in popularity — and with it, the surge of evangelism — compels people to take a stand, for better or worse. (If Go weren't popular, nobody would bother.)

I suspect it's also partly due to Go's curious mix of maturity and immaturity, in an overall promising package with lots of momentum. Here's a young language that on the one hand is productive to work with and simple to understand, yet so obstinately awkward and inelegant in several other respects, and represented by a team of designers who aren't always saying what many want to hear.

It's clear that Go was, first and foremost, designed for Google and their need for a natively-compiled, concurrent language that steers the user to a very specific path, largely defined by limitations. Its approach prevents language-theoretic cleverness that can complicate a codebase (think Boost or the STL), and it prevents a lot of foot-shooting and optimistic overdesign that newbies are prone to.

But while that's wonderful for Google, that's also a frustrating to developers who don't need this invisible hand hobbling them, and sees Go's potential subverted by the stringent design principles. I admit I'm one of those frustrated by Go's type system, for example, or its heavy-handed approach to error handling.

Part of the frustration is the lack of a clear alternative: Nimrod doesn't have the mindshare, Rust is overly complex and slow to compile, Elixir doesn't have the performance, C++ is, well, C++. Go, for better or worse, fills a kind of sweet spot that, unfortunately, also has a dash of sour. And that kind of frustration easily leads to debate whenever Go comes up.


Lack of alternative++. Python is too dynamic and slow, gradual typing will help but it's still slooooow. For web work, PHP and Hack are popular but often very amateur, node.js works best with microservices and can quickly become difficult to manage. Clojure, Scala, and Java suffer from idiosyncrasies around the JVM. Clojure's lispy syntax can be a drag, Scala gets very complex very quickly, and Java is oh-so-verbose.

C# is about as close as it gets to the sweet spot in the middle, IMO. But .net not being a first class citizen on all platforms kills that option. Yikes.


Agreed on all points. C# does indeed look like it hits the sweet spot, at least in terms of feature set, but I wish it were wholly independent of .NET. Also, certain ugly Windowsisms have snuck into the language, such as CapitalizedMethodNames (but snakeCaseVariableNames, for some reason).

A whittled-down, cleaned up Scala without the JVM might also have hit that sweet spot.

I'm hoping Swift will be a contender once it's open-sourced and becomes multiplatform.


> Rust is overly complex and slow to compile

The compilation speed will be improved, and Rust does more checks during compilation than Go. Regarding Rust's complexity. Go is must easier to start with, but I heard (anecdotally) that when your honeymoon with Go is over you may find yourself bored with repeating, copy-paste and the lack of abstractions in Go. That's the price you pay for simplicity.

> Elixir doesn't have the performance

it depends what kind of application you write.


Rust will improve, of course, but as far as I'm concerned, it's not there yet (type system seems unfinished, lifetime management introduces some really crufty syntax, etc.).

More importantly, its "advanced" nature automatically relegates it to the same land as Haskell, Ocaml or even Lisp, where it's harder to hire.

Elixir/Erlang scales better, but it's a language where you will struggle the moment you need a bit of single-core performance — which you sometimes do, even in a nicely distributed app.


>And I'm really curious what drives people in this thread that are coming to say they do not want to use Go, do not like it, and stuff like that?

Last year I wrote this article about why I didn't like Go very much. It was pretty well received here on HN, which is hopefully indicative of it being a good explanation.

http://yager.io/programming/go.html


Probably because of the relative evangelism levels. I don't see many threads on hacker news talking up the virtues of C++.




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

Search: