By Ryan Williams
For people learning to code and for experienced software developers alike, change is constant. There is always something new to learn. This includes programming languages, web frameworks, DevOps automation, mobile devices, front-end and back-end development, SQL and NoSQL databases, and so on.
I’ve been developing for 18 years. Even as I write this, I am learning about natural language processing, engineering management, Elixir, Docker and more. It never ends.
But then again, maybe that’s one of the things that interested you about coding in the first place. It’s the rush of that initial “Hello World” that makes you feel creative and powerful at the same time. It’s exciting to feel that again and again when we work with new technologies.
As a self-taught web developer who loves to learn new technologies, this aspect of software development has always fascinated me.
A few years ago, I became curious about identifying emerging technologies and predicting them. So I created Hacker News Hiring Trends, or HN Hiring Trends for short. Hacker News is one of the most popular discussion boards for programmers. It is also one of the best places to discover new technologies. Every month Hacker News hosts a thread called “Ask HN: Who is Hiring?” Users also post jobs opportunities from their companies on this thread.
The fact that these job opportunities are posted monthly and that most are from start-ups (new technologies are usually created or used in start-ups) makes this the ideal environment to capture data. Data which can be used to discover trends.
While there already existed projects which track of programming language trends, such as TIOBE’s programming language index and RedMonk’s Programming Language Rankings, something was missing. The focus was purely on programming languages. With so much involved in creating software today, programming languages is only one of many choices. Google Trends serves as another source of inspiration. But it’s scope is the entire Internet. Again, the HN postings present a focused dataset every month.
Now, let’s dig into the latest trends.
React’s rapid rise
July 2017 top 5 terms
It’s a React world at the moment. It claims top spot in the rankings for both June and July 2017. React, the popular JavaScript library created by Facebook, and one that probably needs no introduction to the freeCodeCamp community, was only open sourced four years ago. Already it has climbed to the top of the chart. While this has been the most striking for the last couple of months, it’s also a trend that has been evident for some time. In June 2016 React reached the #2 spot in the rankings, and it was only getting hotter. It placed #1 for the first time in November 2016.
The plight of a JavaScript developer
JavaScript developers embracing change
The speed at which React is rising is fascinating. This also speaks to the larger trend in the JavaScript community. JavaScript developers embrace change more so than developers in other areas in software development. When we started tracking data, the adoption of AngularJS was skyrocketing up the chart like nothing else before it. But AngularJS has not been able to maintain its pace. It has been dropping over the last three years. Also dropping is the once red-hot JavaScript frameworks and libraries. This also includes Backbone.js, jQuery, and CoffeeScript. CoffeeScript disappeared altogether in the July 2017 postings.
Goodbye CoffeeScript, hello Vue.js?
History has not been kind to JavaScript frameworks and libraries. But where there is constant change, there is also opportunity for developers. We see that continue with relative newcomer Vue.js, which is beginning its climb up the chart.
Additionally, as front-end development becomes more specialized and complicated, a whole new set of tools has emerged to glue together the different pieces of a modern JavaScript application. Examples of these emerging in the trends are webpack, Gulp and Bower.
Battle for the server side
Latest trends for server-side frameworks
While the JavaScript community provides the most fireworks, many other trends are interesting to keep an eye too. In the server-side battle, Node.js and Ruby on Rails have been at it for years. Their back-and-forth competition is intense. In July 2017, we saw a significant victory for Node.js, while Rails had a strong showing in June 2017. So this one is long from over.
PostgreSQL a clear database winner
Latest trends of database systems
Choosing a database technology is the safest selection in the stack. There are plenty of mature choices available. Databases, particularly relational databases like MySQL and PostgreSQL, have been around forever. They often outlast the other layers in an application. Nonetheless, one clear winner in these rankings has been PostgreSQL. Not only is it dominating MySQL now, but it is also beating MongoDB. And by the same margin. I was surprised that Heroku launched its PaaS with PostgreSQL as the primary database engine.
Speaking of MongoDB, its popularity appears to be numbered. I question if PostgreSQL saved the relational database from the NoSQL revolution. Or did the concept burn itself out because developers went back to safer choices?
Mobile’s evolution
Native to hybrid mobile development
It wasn’t too long ago, November 2016 to be exact, that iOS was a top 10 hiring term. Consistently in the top 20, iOS along with Android are still important development skills that hiring managers look for. But, there is a strong shift from native mobile development to hybrid, led by React Native. React Native has, in recent months, overtaken Swift, the primary programming language for native iOS development.
Container adoption within DevOps
DevOps is another area that’s been hot in recent years. It is a top 10 term in job posting as well, with containers driving a lot of that growth. By containers, most think of the Docker, which is gaining ground fast and nearing the top 10. But, there’s also Kubernetes. It has been out for two years and is already approaching the top 20. With the rise of containers, which makes managing configuration and deployment easier, virtual machines are taking a hit. This can be seen in Vagrant’s declining popularity as a development environment tool.
Frameworks come and go, but languages never die
Of course, programming languages drive much of what we do as developers. But out of the top 20 terms in July 2017, only 5 are programming languages:
· Python (#2)
· JavaScript (#3)
· Java (#8)
· Ruby (#13)
· C++ (#20)
But these languages have been at the top of the chart since the beginning. The first report, released in June 2013, shows JavaScript, Python, Java and Ruby in the top 10. Now, because there is a handful of languages remaining at the top, that doesn’t mean nothing is happening. Several languages that were introduced in the last few years are picking up steam, for example Go, Elixir, Rust, and Kotlin.
Next big thing
What would a trends analysis today be without including artificial intelligence and machine learning? Over the last few years, we’ve seen most of the big tech companies embark on major AI initiatives. From self-driving cars to home assistants, these applications are making their way into our lives. But as developers, what does it mean?
Let’s take a look. Machine learning hit the #6 spot in July 2017 and is now mentioned in 12% of all postings. From the trends, you can see that machine learning and AI both experienced a significant upward spike. It means I need to open some new tabs.
Hacker News Hiring Trends publishes every month. Subscribe and you will receive the latest trends. Have a language, framework, or library that you think is missing? Leave a comment below or on Twitter. Also, check out ScoutZen to track trends and analyze tech communities.