4 ms·
I agree Go and D really can't find its niche. They both are very interesting languages, but is there any really impressive application where those languages wou
by pkolaczk 14y ago
I agree Go and D really can't find its niche. They both are very interesting languages, but is there any really impressive application where those languages would rock? Something that when asked for, the only obvious answer would be "use Go"? Being a better C or a better C++ is IMHO not enough.
Want high performance and full control? Use C (or C++).
Want your code to be easy to maintain by an average Joe? Use Java or C#.
Want your code to be concise? Use Clojure.
Want extreme typesafety? Use Haskell.
Need to use both OOP and FP? Use Scala.
What question to ask so the obvious answer would be "Use Go?"
- kyrias 14y ago"easy to maintain by an average Joe" and "Java" don't belong together
- coldtea 14y agoSeen any other language used and maintained by more average Joes? Because that's exactly one of the niches of Java -- enterprise programming by average Joes. It was even a stated design goal of the language back in the day.
- pjmlp 14y agoGo is C programming for the average Joe.
- polshaw 14y agoI kind of agree with you (being an 'average Joe'?), but surely Go offers some advantages over C even for a C programmer; faster to write and compile, more readable code, concurrency, memory safety.
- pjmlp 14y agoExcept those advantages were already possible back in 1978 with Modula-2, nothing new.
- RickHull 14y agoWhat's the Modula-2 equivalent of the goroutine concurrency primitive?
- pjmlp 14y agoCo-routines, Modula-2 was one of the first languages to have native support for such constructs. The only things that Go has over Modula-2 are interfaces, single declaration modules and GC. Single declaration modules and GC were part of Modula-2 successor, Oberon in 1986, while Active Oberon in 2001 added Tasks and Interfaces to the Oberon language family. All of these languages were used to built operating systems used for real work at Zurich's Technical University.
- jksmith 14y agoYep, I miss me some M2. That's the most satisfying programming I've experienced so far.
- bishop_mandible 14y agoIf it helps bringing these advantages to modern day programmers then I'm all for it. A lot has been lost during the 90's with the rise of C++ and Java.
- pjmlp 14y agoI agree, but I see Rust, D or even C# better suited for that purpose as Go, since it throws too much away.
- polshaw 14y ago>What question to ask so the obvious answer would be "Use Go?" I basically see it as a midpoint between C and python, that offers most advantages of both. From C: Low memory use, fast execution, type safety/ compiled. From python: Easy/fast to learn/read/write, no slow compile, GC, memory safety, good standard libraries It also does concurrency better than python (/anything else?). What would you say better fits these criteria? Certainly not the JVM languages (memory) or Haskell (accessibility).
- dons 14y agoGo is a low level language compared to Haskell though. It's like walking back to 1982.
- ansible 14y agoGo is a low level language compared to Haskell though. It's like walking back to 1982. I was immediately dismissive of Go when I first heard of it a few years ago. I only started looking at it again a couple months ago when I ran across the 'splash' article. [1] The attention to detail with regards to the language, the standard library and the tooling really impressed me. Yes, in many ways Go is low level. It doesn't break much new ground from a programming language design perspective. It doesn't provide a lot of features, but what it does have is well integrated. At every turn, language features were added or left out based on the larger software engineering perspective, rather than what can produce the most succinct or elegant code. [1] http://talks.golang.org/2012/splash.article http://talks.golang.org/2012/splash.article
- redbad 14y agoWhat question to ask so the obvious answer would be "Use Go?" Writing services in a SOA tech stack.