The annual Stack Overflow survey is one of the most comprehensive snapshots of how programmers work.
There's so much you can pull from the annual Stack Overflow survey but perhaps the most pertinent data for developers and aspiring programmers revolves around the tools of the trade.
The annual Stack Overflow survey is one of the most comprehensive snapshots of how programmers work, with this year's poll being taken by almost 90,000 developers across the globe.
This year's survey details which languages developers enjoy using, which are associated with the best paid jobs, which are most commonly used, as well as developers' preferred frameworks, databases, and integrated development environments.
Here are the programming languages and tools singled out for special mention in this year's Stack Overflow survey.
A language that's in-demand and enjoyable to use - Python
Python's versatility continues to fuel its rise through Stack Overflow's rankings for the "most popular" languages, which lists the languages most widely used by developers.
This year's survey finds Python to be the fastest-growing major programming language, with Python edging out Android and enterprise workhorse Java to become the fourth most commonly used language.
"We have not seen a technology that large grow so fast ever, in the history of Stack Overflow," says Julia Silge, data scientist at Stack Overflow.
"It's becoming a really dominant and important tool that's used across so many areas of software engineering."
Silge says Python's enduring popularity stems from the language being a jack-of-all-trades.
"Python is the second-best language for anything. That's a huge accomplishment, to be such a flexible, well-designed language, that's a great first language to learn and is also used by very skilled professionals," she says, giving the examples of Python's use in DevOps, web development and data science.
More importantly for developers, this popularity overlaps with demand for the language, with Silge saying that jobs data gathered by Stack Overflow also shows Python to be one of the most in-demand languages sought by employers.
Perhaps explaining its popularity, Python was also ranked as the second 'most-loved' language, the name given to those languages developers said they enjoyed working with and wanted to continue to use.
However, Silge says Python may have hit its ceiling in the popularity rankings, with it being difficult to see how Python could claim third place from the database language SQL.
"Do I think that more people will start using Python than SQL? That would be tough, SQL plays a role in huge swathes of the economy. I'd be surprised if next year Python overtakes SQL, just because SQL is so dominant."
Most enjoyable language to use and highly paid - Rust
For the fourth year running, the language tops Stack Overflow's list of "most-loved" languages, which means the proportion of Rust developers who want to continue working with it is larger than that of any other language.
Silge described Rust as being like "if you took C and designed it now, with everything we know about better practices for language design", adding "people who use Rust just love it".
Rust has been finding favor among programmers who want the high performance of C and C++ but without the overhead of manually managing memory — and all the potential for bugs that comes with that.
The team behind Rust have described it as "like a mix of Ruby, Haskell, and Scala. It has functional influences such as closures and iterators, and a rich type system similar to Haskell".
Not only is Rust prized by developers, it's also associated with highly paid roles, with the language being the eighth highest language overall in terms of salary, possibly because the pool of developers with skills in Rust is relatively small.
Rust's popularity is starting to build and today it is used to create software for the web, embedded computers, distributed services, and the command line.
"Rust is a niche language, it's not widely used, it's used by a very small percentage of the people who use Python," says Silge.
"I don't think Rust is going to have the impact that Python has had."
Highly paid language, in-demand, and with good job satisfaction - Go
Go stands out as a language that is well paid, while also being sought after and where developers report high levels of job satisfaction.
The language's high salary appears connected to its use automating the deployment and management of systems infrastructure by DevOps engineers.
"People who use Go are usually highly paid for the work they're doing," says Silge, adding it's also used back-end web programming.
Globally, respondents who use Go, Clojure, F#, earn the highest salaries, with median annual salaries above $80,000, while Elixir and Rust are associated with jobs topping $70,000 a year.
Silge attributes the high pay to skills in languages such as Clojure and F# to developers being relatively hard to source.
Reward for experience also differs between languages, with developers using languages such as Clojure, Scala, Go, Rust, and R, being paid more for the number of years they've been working with the language than is true for languages like PHP, Assembly, and VBA.
The language has grown beyond its roots as a simple scripting language for the web, and with the help of frameworks like React is today used to build graphical user interfaces for web and mobile apps, as well as to create server-side software running in a Node.js environment. It can even be found in software controlling IoT appliances thanks to the flow-based development tool Node-RED.
Languages developers dread - VBA and Objective-C
"Most dreaded" is the category of languages that developers told Stack Overflow they'd be happy to never use again.
Topping this inauspicious list were Visual Basic for Applications (VBA) and Apple's Swift predecessor Objective-C.
The best-paid programming related jobs - DevOps and SREs
While data scientists have made headlines in recent years for their generous pay packets, it is operations and systems engineers who earn the highest salaries, according to the survey.
There's some evidence as to why these roles are well paid, with jobs such as DevOps and site reliability engineers (SREs) tending to be held by experienced developers who are expected to work reasonably long hours, 43+ per week, in ensuring IT infrastructure is available when needed.
"This year we see DevOps engineers and site reliability engineers have quite remarkable characteristics when it comes to how highly paid they are for their levels of experience, also how happy they are, with high levels of job and career satisfaction," says Silge.
While the median salary of data scientists and machine-learning specialists grew $1,000 to $61,000, the role slipped from number three to five in the list of highest-paying roles. Silge said there has been a correction in salaries for data scientists to bring them more in line with the "norms of coding work in general".
"We have seen data-science work move more into the mainstream of software work in general, becoming less of an outlier."
Technologies associated with developer roles
This year's survey also clusters together the programming languages and the related tools, platforms and software frameworks that are typically used together, making it possible to compile a list of the languages and tools typically used for different roles.
Tools, platforms and frameworks: React.js, JQuery, MongoDB, Angular/AngularJS, SQL, MySQL.
Languages: Java, Kotlin, Objective-C, Swift.
Tools, platforms and frameworks: IntelliJ, Android, Firebase, Android Studio, SQLite, iOS, Xcode.
Tools, platforms and frameworks: Docker, Kubernetes, AWS, Redis, PostgreSQL, Linux, Bash/Shell/PowerShell, Elasticsearch.
You can see more of the tools and languages that cluster together in the Stack Overflow graph below.
Most popular frameworks, tools and platforms
Among web frameworks, React.js and Vue.js are both the most loved and most wanted web frameworks by developers, while Drupal and jQuery are most dreaded.
The code deployment platform Chef and the mobile application-development platform Cordova rank as the most dreaded in this category of frameworks, libraries, and tools.
Most and least liked databases
Redis is the most loved database for the third year in a row, while Couchbase and Oracle rank as the most dreaded databases, that is those that developers would prefer not to work with again.
Most widely used operating systems
Linux is once again the most loved platform for development, although developers' primary operating system continues to be Windows, used by 47.5%, followed by macOS, used by 26.8%, and Linux, used by 25.6%.
Most popular integrated developer environments (IDEs)
Among integrated developer environments (IDEs), the name given to the code editor and suite of tools used by developers to write software, Microsoft's cross-platform Visual Studio Code remains the top choice, followed by the more comprehensive Visual Studio IDE.
The choice of IDE varied by developer role, with mobile developers more likely to choose Android Studio and Xcode, DevOps choosing the venerable Vim, and data scientists likely to work in PyCharm and RStudio.
- How to become a software engineer: A cheat sheet (TechRepublic)
- Getting started with Julia: A list of resources (free PDF) (TechRepublic)
- How to launch a successful developer career (Tech Pro Research)
- Microsoft's TypeScript programming language rising fast, almost makes top 10 (ZDNet)
- Top programming languages to learn in 2019? Developers name their favorites (ZDNet)