8 ms·
Does the next decade belong to Go?
- tejinderss 13y agoNo. I don't see any benefit of using it over java or JVM languages like clojure/Scala which have huge ecosystem attached to them and now even clojure supports Go like concurrency too.
- thescrewdriver 13y agoI've actually seen more Scala adoption than Go. In my experience Scala is getting used in production whereas Go is something people play around with from time to time.
- ixmatus 13y agoBecause there are multiple mature web frameworks for Scala, I think. Go has yet to produce one (Revel? I think is coming close). I think web frameworks help drive adoption. I see that happening with Haskell too (as web frameworks mature more people get into it through that).
- MetaCosm 13y agoCompare Go in early 2014 to Scala early 2006, that is when they were about the same age.
- thescrewdriver 13y agoIf it really is set to "take over the world" it will need to be growing subtantially faster than 2006's Scala.
- enneff 13y agoOne major obvious benefit Go has over Clojure or Scala is simplicity.
- thescrewdriver 13y agoOne major obvious benefit Clojure and Scala have over Go is having features developers need and want.
- frou_dh 13y agoThat's dangerous territory, given Clojure creator Rich Hickey has been staking a compelling claim to exactly that for years: http://www.infoq.com/presentations/Simple-Made-Easy http://www.infoq.com/presentations/Simple-Made-Easy
- ixmatus 13y agoHaskell has been getting a lot of attention in the last two years too... I think Go will boom but will take the stage with multiple other languages.
- camus2 13y agoGo is nice but not great(lack of generics). Haskell is great but FP is not for everybody. I'm still waiting for a C like alternative with garbage collection and "leaner" syntax. If anybody knows such a language, i'm opened to suggestions.
- ixmatus 13y agoI agree, I'm not a Go lover but I'm learning it though because it will be prominent - like Javascript, no matter how much I hate that language. Haskell on the other hand is incredible but the learning curve is pretty rough. I haven't played with Rust much but I think that looks promising; also what about D? I played with it a bit and it's a wonderful language I think; none of these languages meet my desire for Haskell's type system though so I've mostly been writing software in that.
- pjmlp 13y agoAs much as web development belongs to Rails outside SV.
- thibaut_barrere 13y agoFwiw, I work outside SV (France) and plenty of startups rely on Rails for web dev here...
- pjmlp 13y agoI do enterprise consulting across Europe. The only Rails applications I saw so far, on the projects I am part of, was to report build status information. It was written by an external startup company that disliked using the existing Java infrastructure.
- thibaut_barrere 13y agoThen we just happen to work for different customers, I think :-) But these companies definitely exist out of SV (your previous point): apart from working for startups, I also do enterprise data integration consulting using Ruby alone or together with Rails. I also use JRuby in that setup, to interface with existing Java apps etc.
- NigelTufnel 13y agoIt's always a safe bet that any new language will fail spectacularly. Also everybody is not Google and have massive speed/concurrency needs.
- gallamine 13y agoThe author is providing evidence why the "safe bet" may not be so safe as you say. You'd need to provide counter arguments to his to refute him.
- kasey_junk 13y agoPeople keep saying that Go can be used for systems programming, but not backing that up. It has a non-optional garbage collector and it's garbage collector isn't nearly as good as the state of the art. Why do we expect it to be able to handle systems programming tasks?
- ixmatus 13y agoI think that's what Rust is coming on to the stage for, no? It's going to be a while before it's ecosystem is mature enough but I think that's a promising language.
- pjmlp 13y agoBecause it has been done before at Swiss Federal Institute of Technology in the early 90's http://www.inf.ethz.ch/personal/wirth/ProjectOberon/PO.System.pdf http://www.inf.ethz.ch/personal/wirth/ProjectOberon/PO.Syste... Or at Xerox PARC in the early 80's http://bitsavers.trailing-edge.com/pdf/xerox/parc/techReports/CSL-83-11_The_Cedar_Programming_Environment_A_Midterm_Report_and_Examination.pdf http://bitsavers.trailing-edge.com/pdf/xerox/parc/techReport...
- enneff 13y agoSugu Sougoumarane from YouTube discussed his Go-based "Vitess" MySQL scaling system (https://github.com/youtube/vitess https://github.com/youtube/vitess) at FOSDEM over the weekend. The system powers every single youtube.com page load with sub-2ms latency and each instance serves ~50kqps (with more than 500kqps globally). That's serious systems programming in Go, and it works great for them.
- zaph0d 13y agoThe next decade could belong to Julia.
- norswap 13y agoThe next decade could belong to Fortran. It just could. Because of time travel and stuff.
- thescrewdriver 13y agoOr Brainfuck perhaps?
- jenandre 13y agoIt's missing some key features (Generics anyone?) that put it somewhere in terms of usability between C and Java, and it has nowhere near the same tooling or performance characteristics as the JVM. So, it has a while to go yet I think but would love to see a serious JVM competitor here.
- pjmlp 13y agoIn terms of ecosystem and performance only .NET.
- themightykevdog 13y agoOnce you write a decent amount of Go code, you won't miss generics.
- Hearty 13y agoBetteridge's law of healines tells me "Any headline which ends in a question mark can be answered by the word no" https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines
- norswap 13y agoBy Betterige's law of headlines [1], I can safely answer this question by "No". [1] http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines
- thescrewdriver 13y agoGo can't compete on performance with C and has a fairly primitive GC. It also isn't nearly as expressive as python or ruby. It seems like Go fans hope that if they repeat it often enough that Go will somehow "own the next decade".
- enneff 13y agoBut Go does compete with C on performance for many tasks. If you're going to make a negative assertion, please back it up.
- thescrewdriver 13y agoI have yet to encounter such a task, and "competing" is not the same thing as matching or beating.
- dsymonds 13y agoYou said "Go can't compete on performance with C". It sounds like you are now moving the goalposts.
- thescrewdriver 13y agoI also said that I had yet to encounter a task where Go competed with C, which is completely consistent with "Go can't compete on performance with C". I also went on to point out that since Go can't even compete with C it then clearly cannot match or beat it either :)
- dsymonds 13y agoPerhaps if you had added a qualifier like "... for the tasks I encounter" in your original message then you would have been more accurate. There are plenty of tasks that other people do where Go is competitive with C. You were making a generalisation that is not true in general.
- Silhouette 13y agoGo is the most exciting new mainstream language to appear in at least 15 years I'm not sure Go even counts as a mainstream language, as I see no evidence of significant penetration in the industry. It has a couple of interesting features (goroutines might be an example), but it's missing other useful features that numerous modern languages provide (generics probably the most obvious example), it has a not-quite-C syntax that seems to be different but without really improving very much, its GC strategy doesn't seem to fit with positioning it as a systems programming language, it has limited facilities for robust error handling... I'm not sure many people would even have noticed it if Google hadn't been behind it.
- MetaCosm 13y agoWhat is "significant penetration" from your perspective? It is very young (as a 1.0, not even 2 years old). What language would you compare it to, and where was that language at 2 years old? What was Java adoption in 1998? What was Scala adoption in 2006? What was Python adoption in 1996. Unless the trend lines shift, Go is a IMHO something of a phenomenon. It seems to hit a lot of sweet spots in deployment, tooling and simplicity that is making a lot of groups happy. It is already being used to build tools people depend on (docker [just raised 15M], packer, nsq, juju, heka, coreOS), it is fast (http://www.techempower.com/benchmarks/ http://www.techempower.com/benchmarks/) ... additionally, it seems to have decent penetration on both ends of the spectrum, large enterprises and tiny start-ups are choosing it (http://code.google.com/p/go-wiki/wiki/GoUsers http://code.google.com/p/go-wiki/wiki/GoUsers), DevOps and Software Engineers are living together in rare harmony due to painless deploys and handoffs. If you want to use GitHub as a barometer of language popularity ... http://adambard.com/blog/top-github-languages-for-2013-so-far/ http://adambard.com/blog/top-github-languages-for-2013-so-fa... --- Go is tracking darn close to Scala, despite being 8 years younger.
- Silhouette 13y agoWhat is "significant penetration" from your perspective? I don't know exactly how I'd quantify it, but seeing evidence that a broad range of substantial projects are using it in production and/or a substantial proportion of practising software developers were at least aware of its existence would be a good start. What language would you compare it to, and where was that language at 2 years old? What was Java adoption in 1998? What was Scala adoption in 2006? What was Python adoption in 1996. Hardly anyone uses languages that immature for real work. None of the languages you mentioned could reasonably have been called mainstream at the times you mentioned. Scala still can't today. it seems to have decent penetration on both ends of the spectrum, large enterprises and tiny start-ups are choosing it (http://code.google.com/p/go-wiki/wiki/GoUsers http://code.google.com/p/go-wiki/wiki/GoUsers) That's an impressive list for a language so young, but when you start reading the supporting links, it turns out that quite a few of the "Go users" are minor supporting projects. For example, the gov.uk project is vast, but it appears Go was only used to write a routing tool; the main sub-sites are written using languages like Ruby and Python. Another popular project I noticed is GitHub, but it turns out that the cited blog post is about "a really simple, low traffic service to dip our toes in the Go waters." There's nothing wrong with these early experiments, of course, but if you want to claim mainstream status, get back to me when all of a site like GitHub or gov.uk is written in Go, or when the big G themselves are using it for something like the back-end of Google Mail or Google Search rather than the Santa Tracker. If you want to use GitHub as a barometer of language popularity Well, I don't think GitHub is a particularly useful barometer, but OK... Go is tracking darn close to Scala, despite being 8 years younger. Enough said. Sorry if this post comes across as a bit snooty, but it's hard to reply entirely seriously when almost everything I'm replying to is making my point for me. I have absolutely nothing against putting new languages out there or even just new language features that might be interesting to explore. But the idea that a language that is mostly an incremental development of what we already have in abundance and that is barely out of prototype stage will somehow take over the world for the next decade is just silly, and it's still silly even if the language happens to be promoted by Google.
- cies 13y agoGo, Java, C#, ... => controlled by a large corp. C/C++, Python, Ruby, D, Haskell, (Rust,) ... => controlled by a community. I think this "large corp" control is not beneficent in the long run.
- enneff 13y agoGo is not "controlled by a large corp". Sure, its development is led by a small core team employed by Google, but there are hundreds of contributors from outside Google and more non-Google committers than Google committers. Go has a BSD-style license (http://golang.org/LICENSE http://golang.org/LICENSE) and includes a patent grant (http://golang.org/PATENTS http://golang.org/PATENTS) meaning that it is truly owned by the community. This is very different to C# (which is more or less entirely a commercial venture) and Java (of which Oracle aggressively defends its ownership).
- pjmlp 13y agoYour list is a bit skewed. C and C++ were created by a large corporation (AT&T). Have their features driven by standards bodies composed by employees of compiler vendors. The official version of the standards are only available for a fee. Haskell and OCaml enjoy the sponsorships of Microsoft Research, Facebook, Galois among others. Guido has been on the payroll of many corporations.
- gatestone 13y agoPeople don't know the skill, experience and the wisdom of the designers. Every freaking detail in Go has been thought out over decades deeper than most people ever can...go ;-). And it is a language of Pike, Thompson, Griesemer & al. not Google. It is more Bell Labs than Google.