Ask HN: Go. Flavor of the month or here to stay?
In recent weeks I've noticed that Go seems to have become something of a trend in the stories shared here on HN. I do not have much experience with the language myself (beyond completing the tutorial and a few small experiments), but I am curious to hear what other people think of the language in terms of its potential to become a major web/general development language.
So, is Go just the flavor of the month or is it here to stay? Here to stay, but may not end up in the software population that you expect it to. I predict that Go is going to be the new Java: after entrancing a bunch of early adopters, it's going to see strong uptake in enterprise IT departments that need a language that isn't too complicated and leads to consistent code that interchangeable programmers can pick up without much trouble. A bunch of enterprise server frameworks will be built that handle the stuff enterprise developers generally need to do: integrations, RDBMS access, message queues, CRUDscreens, simple webapps. The boilerplate and levels of abstraction needed by these frameworks will drive off the initial Go early-adopters, who will find something newer and cooler like Rust or Julia. It's already started to happen: one of my college classmates runs the IT department for a major school district. He's steeped in IBM mainframes, DB2, Cobol, Novell, all these ancient technologies. He's been looking for something to help modernize the whole mess, and last I talked to him, had settled on Go. I agree Go is thankfully here to stay, and has a ton to offer. I am already using it and learning more and more of it everyday to expand my skills. I differ though in that I think with Microsoft's recent announcements many enterprises will focus their efforts on C#/.NET for their cross platform development over the next few years. Given .NET (along with mono) has already solved the UI and a ton of the integration level issues that Go is either lacking or still maturing on, but either way it will be interesting to see the outcome. I would also be surprised to see too many large enterprises or government controlled departments like your friends actually using Go as their primary toolset anytime soon. Only because Government's and large businesses usually still "play it safe". I have seen it before someone like your buddy makes a good decision at the director or manager level and goes to get the funding and then suddenly the County govt, School Board or other moron pulls your funding because you are not "playing it safe" with the tax payers money. Then they "what if" you to death and delay projects until you go the "proven" route, if you even get to stay. I don't think he is wrong, just that the outcome is usually outside of one persons control. In those types of environments, for Go to have a majority presence on even new projects it will need recognized training classes, certifications and a bunch of BS that really doesn't matter but makes large businesses and Governments feel all warm inside. I am sure there are examples showing the opposite, but when measured against the total they are likely just anomalies for now. Is Go FotM? I'd be lying if I said no. However that being as it may, Go is see legitimately strong growth in China and reasonable growth in the US. It also fills a market gap: A native machine compiler which isn't insecure by design (e.g. C/C++). Rust is also competing in that space and has a very strong design (even if Go appears to have gained more market share at the moment). If you listen to TIOBE then Golang isn't doing very well, if you read almost any other popularity metric it is looking a lot better e.g.
http://redmonk.com/sogrady/2014/06/13/language-rankings-6-14... Plus most of these ignore China which is dumb. FYI, i asked HN a couple of months ago a similar question:
https://news.ycombinator.com/item?id=8349678 My personal impression is that Go slowly tilts over the hype peak and becomes just another tool in the box (that is a good thing, IMHO). The golang-codereview mailing list is very active, so I do not see any indication that Go crawls in a corner and dies any soon.
For non-typical web backend development and network programming I find the included libraries excellent. Probably I would not use it for a straightforward CRUD server. What do you mean by general development? Depends on what you mean by "major". And for most meanings it probably won't. Partially because languages are like startups, only a very few get massive, most die quickly, and some turn into lifestyle businesses. Partially because Go is just another alternative for many web and general programming tasks and what differentiates it as a language is often not a high priority and what differentiates its tradebase of experienced programmers, smaller size, often is. If the JVM, .NET, Browsers, Rails, or heaven forbid Python are options the business case for Go is hard to make. Their tooling is mature and robust across platforms because the technologies are mainstream. The programmer tradedebase is large for the same reason. Go lacks attractive tooling for mobile ecosystems. In 2015 that would not appear to bode well for general use, all levels of the stack matter. There has to be a compelling reason to trade that away for Go. Those reasons exist, but only sometimes. Seems to be here to stay, but I can't quite figure out why. The only thing I liked about it when I tried it out was the gotool, but it was hardly a reason for me to switch, given that I find the language itself kinda poor. Sure, it has cute syntax, but doesn't seem to provide much else that I couldn't do in another language, especially with contenders like Rust and Nim, or just plain old C, which is well-supported almost everywhere. It's basically an unremarkable C-ish language with an advanced green threading library built in. Channels and green threads aren't that difficult to replicate, but select is. I'd say it's still in FOTM stage. But that's only because I've been traveling outside of the bay area recently. Here, it seems well on it's way to becoming a standard tool in the toolbox. But outside of this bubble (and the other bubbles like it), it actually seems pretty obscure. I wouldn't say it's a recent trend. I joined hn about 2 years ago and notice popular Go posts frequently. Before joining hn I heard about go from classmates around 2010. I doubt it will be a flavor of the month. Go has a really strong community. I think a better and harder question would be about its longterm popularity and adoption. Having spent over 2 years using Go professionally at both Google and Hailo, I can confidently say it's here to stay. Why? I've only been playing around with it for a few weeks but my experience has been entirely positive thus far (usually when picking up a new language there's at least a few "ugh, I hate how..." moments). I feel it's a very well designed language and that should give it some staying power.