The annual Stack Overflow survey is one of the most comprehensive snapshots of how programmers work.

The best programming languages to learn in 2019: Top coding skills that pay you the most Watch Now

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."

SEE: Python is eating the world: How one developer's side project became the hottest programming language on the planet (cover story PDF) (TechRepublic)

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."

Image: Stack Overflow

Most enjoyable language to use and highly paid - Rust

Rust may not have as many users as Python or JavaScript but it has earned a lot of affection from those who use it.

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.

However, Silge says Rust is unlikely to become as popular as languages like Python and JavaScript.

"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."

Image: Stack Overflow

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.

"There's a number of functional programming languages that tend to be hard to hire for, they certainly are not as widely used in as many roles as something like Java or JavaScript or Python, but they tend to be loved by the people who use them."

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.

Image: Stack Overflow

Most widely used language - JavaScript

The most widely used programming language is, unsurprisingly, the venerable web language JavaScript.

JavaScript has topped the list of the "most popular" programming languages in the Stack Overflow survey for the past seven years.

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.

However, the language isn't typically associated with high-paying roles, with a median salary of $56,000 globally putting it 19th in Stack Overflow's language wage list. While experienced full stack web developers can be well-paid, entry-level web developers can be particularly poorly compensated relative to other programmers, perhaps explaining JavaScript's low placement overall.

Some way above JavaScript in the pay rankings, with a median salary of $60,000, is TypeScript. TypeScript adds features such as static type checking to JS, helping developers build large and complex applications more easily. As reflected in other surveys, use of TypeScript continues to grow, with the language moving up to 10th place in Stack Overflow's list of "most popular" programming languages.

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.

Interestingly JavaScript is 17th in the "most dreaded" list, with about one third of developers saying they'd no interest in continuing to use it, demonstrating that the most widely used programming languages are not always the most favored.

Image: Stack Overflow

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."

Image: Stack Overflow

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.

Web development:

Languages: JavaScript, TypeScript, HTML/CSS, PHP

Tools, platforms and frameworks: React.js, JQuery, MongoDB, Angular/AngularJS, SQL, MySQL.

Mobile development:

Languages: Java, Kotlin, Objective-C, Swift.

Tools, platforms and frameworks: IntelliJ, Android, Firebase, Android Studio, SQLite, iOS, Xcode.

DevOps:

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.

Image: Stack Overflow

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.

Across all frameworks, libraries and tools the JavaScript runtime Node.js was the most widely used, while within the Microsoft ecosystem .NET is more popular than .NET Core, and in machine learning the deep learning framework TensorFlow is far more widely used than Facebook's PyTorch framework.

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.

Innovation Newsletter Be in the know about smart cities, AI, Internet of Things, VR, AR, robotics, drones, autonomous driving, and more of the coolest tech innovations. Delivered Wednesdays and Fridays Sign up today

Also see