5 ms·
I don’t know exactly why Go become successful but it is not because it’s a great language.
by noncoml 8y ago
I don’t know exactly why Go become successful but it is not because it’s a great language.
- hazz99 8y agoWhy do you think that? I like it's stripped-down feature set, and opinionated concurrency (although it's occasionally clunky). It's not perfect, and could have a lot more support for concurrency, but it's very workable and a joy to program in.
- umanwizard 8y agoMy personal problem with Go is that it doesn’t fit in any niche. If you want language optimized for productivity with a lot of high-level features, use Python. If you want maximum performance and low-level control, use C++ (or C, or Rust). If you need relatively high performance but can tolerate it not being 100% in exchange for nice things like GC, use Java. Where does Go fit?
- mbo 8y agoIf we're being serious here, I'm pretty sure Go is specifically for very very large orgs and almost no-one else. Go optimises for low GC pause time, fast compile times and in-your-face concurrency at the expense of almost everything else. The fact that CSP is formalised and well studied, and the lang itself is sufficiently C-like and stripped down makes it amenable to large scale static analysis as well.
- jazoom 8y agoIf you need relatively high performance but can tolerate it not being 100% in exchange for nice things like GC, use Go. Where does Java fit in?
- umanwizard 8y agoJava has existed for dramatically longer than Go and is extremely well-supported, both in terms of the core language and the tooling ecosystem. You need a good reason to get rid of the incumbent, it's not just arbitrary.
- jazoom 8y agoIMO there are plenty of reasons for me not to use Java. I could write an essay on it, but the only one that really matters is that for the 4 years that I coded in Java, I didn't enjoy it. And to suggest Go doesn't offer anything different to Java is just silly.
- noncoml 8y agoCurious, what does it offer other than the goroutines and the native compilation?
- vmchale 8y ago> I like it's stripped-down feature set How could the absence of sum types possibly be a good thing?
- jazoom 8y agoI'm looking for a new language to write server code in. I have been using Node for years but I want something that compiles to machine code and is statically typed. I've been looking at Go and I like that it is simple, has opinionated, official tooling, compiles very quickly for multiple platforms, is popular enough to have a decent library ecosystem, and I really like the idea of goroutines. What language would you suggest would be better? Nim sounds cool but it's too new. It's not stable and has a small ecosystem.
- dom96 8y agoYou should give Nim a go. The ecosystem is growing fast :)
- jazoom 8y agoThat's a good thing, but it means I might use Nim in 3-5 years, not right now. As a single dude without a team I need to spend time on getting things done, not building custom clients to databases etc.
- mbo 8y ago> [Nim] is too new It's actually a year older than Go (2008 rather than 2009). If you don't want to use Nim because it's not stable enough or has too small an ecosystem (I disagree), you could try out Scala Native or Kotlin Native. A large portion of their ecosystem successfully compile to native code (although you may have issues with Scala Native compile times). You can also check out OCaml.
- jazoom 8y agoI guess I mean "new" as in still not stable (pre-1.0 and still sees breaking changes). The fact it's been around so long and still hasn't matured is not reassuring at all. I have checked out OCaml but it's not mainstream enough to have libraries for... anything really. Here's the first thing I checked just now: https://www.elastic.co/guide/en/elasticsearch/client/community/current/index.html#ocaml https://www.elastic.co/guide/en/elasticsearch/client/communi... The OCaml client was abandoned 5 years ago. Nim doesn't even appear on the page! This page says Kotlin Native is still in preview: https://kotlinlang.org/docs/reference/native-overview.html https://kotlinlang.org/docs/reference/native-overview.html Also, I am not seeing a reason why Go is not a good choice.