Stack Overflow Developer Survey 2020
There's a lot in it and we could question some of the methodology, but here's some thoughts.
Ruby is now in consistent decline, I have read people linking this to Twitter moving away from Ruby on Rails but can't cite that claim. My observation is that RoR seems to have gone out of fashion in favor of lightweight server frameworks and I would suggest that Kubernetes has sidelined Puppet, so organizations aren't bringing in Ruby via apps/frameworks they want to use.
I am curious that the Hack language (from Facebook) might be splitting the PHP community whilst PHP's killer apps are being eroded. Wordpress is still hugely popular, but in generally I observe that blogs have been replaced by social media (Facebook, Medium, etc), rather than running Wikimedia organizations seem in love with Confluence, and that SMB company websites are being captured by WIX, Shopify et al. Wikimedia was using HHVM but is not following it to Hack and Box had success with HHVM but I can't find any update.
I think that Go is taking share from Python and somewhat Java. Google itself is using Go internally which radiates outwards in terms of mindshare of their alumni. A range of software written in Go is currently vogue (Kubernetes, Docker etc - Although Docker seem to have stumbled with Docker Swarm and Redhat is shipping their own) which means it will be in organizations via that software. So it will be interesting to see if my theory is correct.
Rust and Go are also threats to C and C++. Rust especially seems to be making people very happy.
Kotlin will almost certainly heavily erode Java because Google now recommends it as the language of choice developing on Android - which is now by far the most popular platform for mobile phones. The fate of Objective-C seems linked entirely to the popularity of iDevice's. If Apple can gain market share in India and China (where Android reigns supreme) then Objective-C will likely enjoy an uptick.
Edit: Gitlab is hugely popular and is a fusion of Go and Ruby. Notwithstanding it's utility I think people are just running it via Docker and aren't concerned too much with what's under the hood. It seems that Shopify is a Ruby shop but I don't think that will be enough push.
My view is that the popularity of languages is less about technical merits and almost entirely linked to their serving the interests of big companies. And it's no secret that decisions made in C-suites are based on a range of factors that engineers may not give much weight too (and/or they aren't great decisions).
It's fascinating to me that Google and Facebook have made their own languages in Go and Hack.
Think about that. Two internet giants felt it worth their money to make their own languages.
At the same time, Perl as a community has been poor at bringing in new people and engaging with companies.
So, what are the opportunities for Perl?
- There are lots of very experienced programmers which a company can trust have been around the block.
- The Spaghetti-Perl programmers from the 90's are all gone. First time Perl programmers will enjoy the wonders of Modern Perl.
- New Perl programmers can have excellent mentors
- Strong salaries are very alluring. Providing an excellent reason to join or rejoin the ranks of professional Perl programmers
- Companies are willing to adopt and even create new languages that better suit their business (if they have the features)
- Perl and the CPAN already have many of those features and functions
- Killer apps cause companies to adopt languages accidentally
- Languages can move up in the various indexes by doing things other languages are not
- ... or by providing a more favorable mix of compromises
What are companies looking for?
Being able to hire people easily is absolutely going to be a factor especially for smaller companies.
Being multi-platform, as far as I can tell, is no longer a factor. Everything now runs in production on 64bit Linux and usually on someones rented infrastructure. It's a bonus if you can run code on developers Mac or Windows desktops but its hardly a show stopper.
As mentioned though, internet giants are happy to create their own languages, something that used to be more the domain of military and government. Performance is a selling point for Go, similarly Hack was born out of Facebook's efforts to make PHP go faster. Typing is one of the key additions Hack has made that has diverged it from PHP, which is also something Python 3 has added (Facebook being a principle sponsor to the Python Foundation). Whilst almost certainly aiding performance, typing's impact on static analysis shouldn't be overlooked.
Which leads me to Continuous Integration and Continuous Deployment, both of which have become the norm. Travis CI provided, I think, a model for much more flexible testing compared to Jenkins et. al. which empowered developers to configure tests for themselves rather than waiting for admins to update locked-off configuration. This model has been replicated in Gitlab and others.
Perl's testing frameworks and culture is fabulous. CPAN testers have been doing Continuous Integration (aka Smoking) since long before it was cool. Perl::Critic is also baked in to the culture of Perl, as are concepts like Kwalitee to help module authors improve their game.
Observability also is becoming vogue with code being Continuously Deployed. Companies need tooling to debug quickly and effectively (maybe even automatically) in staging & dog food environments as well as in live production. Perl doesn't really seem to have this fully fleshed out, but building it out would provide a compelling argument to give Perl another look.
Please put your comments below or join us on The Facebook.