â–² 9 â–¼ Show: Results of the Gopher language poll
Golang News ran a poll on twitter in the first week of 2017, with some interesting results. The question was: Which programming language did you use most before learning Go? The results are as follows:
443 Votes cast (including comments)
- 39.5% Ruby/Python
- 24% Java/Scala
- 20% Javascript
- 13.5% C/C++
- 3% PHP
This was limited only to those devs on twitter who saw the poll, and the polls there are a bit limited, with only 4 options. So some were combined, (Ruby/Python), and some required write-in replies (like PHP/Scala), which will have skewed results somewhat, however the results are interesting nonetheless and show some clear trends.
While Go was initially conceived to replace languages like C and C++ at Google, perhaps while waiting for a C++ program to compile 😂, it has seen far greater adoption amongst programmers who previously used more dynamic languages like Ruby, Javascript or Python, along with a fair number of people using Java. One surprise here for me was the number of people previously using Javascript - given the recent resurgence in popularity of JS and the still inchoate state of the ecosystem, I didn't expect to see people looking at static compiled languages coming from js.
So this poll indicates the Go community is a polyglot mix of developers coming from a range of languages, but definitely skewed towards users of dynamic languages like Ruby and Python, and with far fewer C or C++ programmers than you might expect (who have probably tended to pick up Rust instead). You can see a similar preponderance of dynamic languages on the X to Go page of the Go wiki. The exception to this is of course Java, where Go has picked up some developers.
Add another to PHP. A note I will make is that when I try to explain Go to other devs I say "It does for static languages what Python did for dynamic ones"
Prior to Python I would have to say Perl was a top dog in dynamic languages, doesn't mean that people went from Perl to Python it just means that Python simplified things in dynamic programming that were otherwise very cumbersome.
Maybe this captured the hearts of C programmers and users of other like languages that would have liked dynamic languages but either thought the current solutions weren't good enough or were too complex and it might be quicker to implement in their native language.
Similarly Go does the inverse, people that thought static languages were too cumbersome for a lot of use cases, now flock to Go because it writes as fast as Python but runs like C.
Overall interesting article and I would like to see more data on this, could help shift the education of go resulting in better propagation.
I've adjusted the totals, probably should add a little poll facility here as the twitter ones are quite limited. I do think this is quite interesting data though, even though limited, as it points to a difference between the usage at google and usage outside as well, and gives some hints as to why one of the most frequent questions coming up is about web frameworks (if they're building similar sorts of web apps to those built with python or ruby), even if the orthodoxy on places like reddit is against it.
It's interesting because when I first came to Go it definitely felt like a better C rather than a better Ruby/Python say, but as times goes on it feels like I enjoy it in the way I did working with Ruby, and never did with C or other C-derivatives (which felt too clumsy in things like string handling), but it certainly has its own distinct flavour. In spite of not being very complex or cutting-edge Go keeps many of the most interesting features of other languages for me and jettisons the rest (inheritance in particular), and like Ruby has a great stdlib which covers a lot of what you need (though I know the maintainers now regret making it so big : ). So I agree it feels closer kinship to something like Ruby/Python than say C or Rust.
Coming from java I do miss generics, wish they would consider them.
They definitely have considered it, though not so much recently; this is an interesting read if you haven't seen it before:
https://github.com/golang/proposal/blob/master/design/15292-generics.md
I missed the Vote, but add +1 to PHP
Ok will do.
I thought there would be more PHP developers than this, I've come from PHP. So many JS devs these days.