40 most popular programming languages 2023: When and how to use them - Part 1
Posted Jan 25, 2023 | 19 min. (3877 words)With the programming languages constantly evolving, it’s essential to keep track of which languages are leading the pack. In this 2-parter, we’ll dive into the top 40 programming languages of 2023 and analyze what makes them stand out. This is part one; stick around for part two at the end of this blog post.
There are many - maybe too many - programming languages to choose from. One of the most effective ways to assess their popularity is by the number of search queries for each language, across the web. The TIOBE Index is the definitive list of programming languages, ranked in order of search volume popularity as an indication of prominence and public interest. This article lists the top 40 languages on that list, with a brief overview and their pros, cons, and hiring prospects.
In this post:
- Python
- C
- C++
- Java
- C#
- Visual Basic .NET
- JavaScript
- SQL
- Assembly language
- PHP
- R
- Go
- Classic Visual Basic
- MATLAB
- Swift
- Delphi/Object Pascal
- Ruby
- Perl
- Objective-C
Here’s our list of the top 40 most in-demand programming languages.
40 top TIOBE programming languages
1. Python
- Popularity: Very High
- Salary expectations: Typically between USD$89,271 - $105,820 in the US
- Ease of Learning: Easy to Moderate
- Use Cases: General Use and Specialty
- Web Applications
- Artificial Intelligence
Python is a relatively new programming language, first introduced in 1989, that has surged in popularity with the emergence of new fields of application. It is an interpreted language that supports automatic memory management and object-oriented programming. It heavily prioritizes developer experience.
Python is very popular for general-purpose programming, including web applications. It has recently become known for specialty use in machine learning applications.
Python jobs are very plentiful, so it’s easy to find a job using Python, and there’s still plenty of room for growth.
Pros
- Readability and flexibility make Python suitable for a huge range of applications.
- Dynamic typing and asynchronous code help to speed up the development process.
- Can be learned very quickly by newbie developers.
Cons
- Python’s performance isn’t as good as some of its peers
- Executes a single thread at a time because of Python’s GIL.
- No native compatibility with iOS or Android is a big disadvantage for mobile developers.
2. C
- Popularity: Medium
- Salary expectations: Typically between USD$71,433 and $95,168
- Ease of Learning: Moderate
- Use Cases: General Use and Specialty
- Embedded systems
- Hardware drivers
- Local Applications
First introduced in 1972, C is well-established and enduring. Until Java was introduced, C was the dominant high-level language. The first versions of Unix, written in Assembly language, were ported to C. It was then used in the development of other early operating systems, including IBM System/370.
C has a long history of development on older systems with slower processors and little memory. Programs written in C had to be very efficient, so C has a reputation for high performance in cases where speed matters.
C is still very popular due to its use in systems development, including operating systems, embedded devices, and as firmware. The C standard library has been ported to many platforms, so it is viable in many use cases. However, the low-level systems programming it is typically used for is a more specialized skill than general application programming. This explains why C tends to have relatively few job openings as compared to other languages in the top 10.
There is likely to be some overlap in the jobs market with C++ (see the C++ listing below.)
Pros
- C is the basis for many other popular languages, so knowledge of C will serve you well
- Highly portable, readable and maintainable
- Fairly easy to learn
Cons
- Usually limited to “bedrock” code, like systems coding
- No safety nets, for example exception handling, to catch any errors as they are coded
3. C++
- Popularity: High
- Salary expectations: Typically between USD$70,077 and $82,457
- Ease of Learning: Difficult
- Use Cases: General Use, Specialty
- Local Applications
- Web Services
- Proprietary Services
C++ extends C with object-oriented features. The “double-plus” comes from the increment operator from C. C++ was developed to bring features from older languages to faster, more powerful platforms.
C++ occupies a similar area in the market to C, including systems programming and low-level hardware development. Over the years, the C++ standard libraries and specifications have been expanded considerably, leading to criticism that it has become overcomplicated and difficult to learn.
Pros
- Templating and inheritance make it easy to flexibly reuse design components
- A reputation for being very stable
Cons
- Often accused of being “bloated”
- C++’s complexity and abundance of features can compromise performance
4. Java
- Popularity: Very high
- Salary expectations: typically between USD$84,316 - $112,332/yr in the US
- Ease of Learning: Moderate to Difficult
- Use Cases: General Use and Specialty
- Web applications
- Mobile
- Embedded systems
Java is the leading general-purpose application development language and framework. It was introduced in 1991 by Sun Microsystems as a high-level, compiled, memory-managed language.
Java’s syntax is similar to C/C++, with curly braces for closures and semicolons to end statements. Automatic memory management is one of the features that made Java so popular after its initial release. Before Java was introduced, languages that required manual memory management, such as C and C++, were dominant. Manual memory allocation is tedious and error-prone, so Java was hailed as a major step forward for application developers.
The promise of Java, beyond memory management, was its cross-platform capability. This was marketed as “write once, run anywhere.” The Java Virtual Machine (JVM) runs Java bytecode, which is compiled from the Java language. JVMs are available for most major operating systems, including Linux, Mac, and Windows. It doesn’t always work perfectly, but when it does, a program written in Java can run on any platform with a compatible JVM.
Java is used for business, web, and mobile applications and is the native language for Google’s Android OS. Java also powers millions of set-top boxes and embedded devices. Java development skills are highly sought after.
If you’re considering a career in software development, you should strongly consider learning Java.
Pros
- Write Once, Run Anywhere: One version of Java code will run on any machine.
- Backwards compatibility: the newest versions of Java are still (mostly) compatible with even the oldest, making migrations painless.
- Because Java has been so big for so long, there’s a huge ecosystem of frameworks, libraries, and community support.
Cons
- The backwards compatibility principle is sometimes taken too far, extending the life of outdated and flawed features that should be retired.
- Greedy with memory and is a relatively verbose language, especially compared to the modern syntax of competitors like Python.
5. C#
- Popularity: High
- Salary expectations: typically falls between USD$97,446 and $120,439
- Ease of Learning: Moderate
- Use Cases: General Use
- Web Applications
- Local Applications
- Services/Microservices
C# was developed and introduced by Microsoft in 2000, along with the overall .NET framework. Syntactically, C# is very similar to Java and C/C++. It is a compiled, object-oriented language that compiles to .NET Intermediate Language. Originally, C# was used for Microsoft-focused development of Windows Forms and web development with ASP.NET. The .NET ecosystem has evolved recently with the introduction of the .NET Standard and .NET Core. These new frameworks and standards are cross-platform, running on Windows, Linux, and Mac.
C# is popular for local and web application programming, often (but not necessarily) in systems developed primarily based on Microsoft technology. Microsoft’s Xamarin framework allows developers to write Android and iOS applications in C#. It is suitable for systems programming in some cases, and has libraries available for embedded systems.
Pros
- Simple syntax makes C# more readable than predecessors
- Combined with .NET, powerful cross-platform flexibility
- Maintained by Microsoft, with strong documentation, updates, and community support
Cons
- Dependent on .NET for cross-platform and performance capabilities
- Slow and steep learning curve
6. Visual Basic .NET
- Popularity: Low
- Salary expectations: approx. USD$84,000 on average
- Ease of Learning: Easy
- Use Cases: General Use
- Web Applications
- Local Applications
Visual Basic.NET (VB.NET) is Microsoft’s implementation of the Visual Basic language that compiles to .NET Intermediate Language. This allows developers to write .NET applications using Visual Basic and is a favorite for beginners. Applications written in VB.NET are just as capable as any. However, VB.NET was never very popular for business applications, with serious application developers preferring C, C++, and C#. Most applications written in VB.NET tend to be older and written for specific purposes, and are likely to be considered to be “legacy” applications destined for decommission or redevelopment.
Pros
- Beginner-friendly
- Ideal for spinning up a quick prototype
Cons
- Bloated syntax
- Code written in VB .NET tends to have poor performance
7. JavaScript
- Popularity: Very High
- Salary expectations: typically between USD$97,858 and $120,182
- Ease of Learning: Moderate
- Use Cases: General Use
- Local Applications
- Web Applications
JavaScript is a high-level, dynamically typed, interpreted language. It uses Java-like syntax, hence the name JavaScript. JavaScript was first introduced in the early days of the public Internet, 1995. JavaScript is used to write code that runs in web browsers, on the client side. If you’ve been using the Web long enough to remember the introduction of Google Maps, you witnessed some of the first magic: the “infinite scrolling” in Maps is done using JavaScript.
Since its first introduction, JavaScript support has been added to all major web browsers. JavaScript frameworks including React, Angular, and Vue offer a Model-View-Controller application development paradigm, running entirely in the browser. JavaScript now supports the visual, browser-run elements of most modern web applications, which is why most Real User Monitoring tools cater for JavaScript.
JavaScript can also be combined with HTML to make cross-platform mobile applications. NodeJS is a web server that runs JavaScript on the server side. NodeJS applications are written entirely in JavaScript.
Given all these use cases and support, JavaScript is both popular and in high demand. It’s not very difficult to learn, though there are advanced programming techniques that take time to master. If you’re more comfortable with object-oriented languages, consider looking into TypeScript. TypeScript “overlays” object-oriented features and syntax, and transpiles to native JavaScript.
Pros
- Easy to learn and in wide demand
- Immense versatility (as evidenced by being so widespread)
- Rapid development and debugging
Cons
- JavaScript isn’t “strict” and won’t enforce good habits, leading to bad code from inexperienced developers
- Running client-side opens landmines in browser interpretation and security vulnerabilities
8. SQL
- Popularity: Very High
- Salary expectations: typically between USD$81,506 and $101,426
- Ease of Learning: Easy to Moderate
- Use Cases: Specialty
- Database Queries
SQL stands for Structured Query Language. SQL is used to query and modify data in a Relational Database Management System (RDBMS.) Vendor-specific implementations, such as PL/SQL (Oracle) and T-SQL (Microsoft) offer product-specific features.
SQL isn’t a general-purpose language that can be used to write applications. However, it is at least a useful, if not required skill of most developers. The term “full-stack developer” refers to a developer with a well-rounded skill set that includes all aspects of an application. This almost always includes accessing and saving data to a database. SQL is not hard to learn initially, though there are advanced use cases in Big Data and data analysis that require significant experience.
SQL is very popular with both developers and Database Administrators, so jobs that require SQL skills are plentiful. However, it is not a complete standalone skill set. SQL experience is a big plus on a resume, but it’s really only one of the skills required for any given job.
Pros
- Concise syntax and range of functions
- Invaluable for enterprise systems
- A valuable supplementary skill
Cons
- Reliant on a database engine to run
- Limited scope and capabilities
9. Assembly language
- Popularity: Low
- Salary expectations: typically between USD$70,000 - $98,000
- Ease of Learning: Difficult
- Use Cases: Specialty
- Systems Programming
- Hardware / Firmware development
“Assembly language” is a generic term for low-level code that closely represents the native machine instructions for a given microprocessor. Most of the languages on this list are “high-level” languages that are closer, syntactically, to English. High-level language code must be compiled down to an intermediate bytecode, or directly to machine instructions. Assembly code is assembled, (hence the name) not compiled.
The intent of a line of code written in C or Ruby is relatively easy to understand, just by reading it. Assembly, by contrast, is very difficult to understand without a careful reading of the entire program. Each operation, including math operations and moving data in and out of registers, is a complete statement. This means that it takes a lot more assembly code than C code to do the same amount of work.
Assembly code is most useful when performance is the most important goal. It is used for very low-level systems programming, or in some cases may be combined with application code for a performance boost. Jobs that require knowledge of assembly will include systems programming and hardware development, but it’s not a common core requirement.
Pros
- Minimal execution time and memory use
- Helps the developer to better understand machine-level computer architecture
Cons
- Very difficult to read and write
- A good supplementary skill, but not a first language
10. PHP
- Popularity: High
- Salary expectations: typically between USD$77,239 - $102, 413 in the USA
- Ease of Learning: Easy
- Use Cases: General Use
- Web Applications
PHP originally stood for “Personal Home Page” as part of its first name, PHP/FI (Forms Interpreter.) The official acronym is now PHP: Hypertext Processor. Its primary role is as a web application server-side scripting system. It was originally developed to extend a CGI program to support HTML forms and database access. The code of a PHP program is mixed in with the HTML, making it similar to Microsoft’s classic (pre-.NET) Active Server Pages. The interpreter reads the HTML and code, and executes the code portions of the page.
PHP is popular because it’s easy to learn. It is also the basis of popular web-based applications such as WordPress and Joomla. However, PHP also has a mixed reputation relating to software quality. Early versions lacked security controls and features that made it difficult to develop highly-secure applications. Recent developments in PHP frameworks and libraries have made improvements in security.
There are plenty of PHP jobs available for content-focused web applications like WordPress, and proprietary systems developed in PHP.
Pros
- A powerful backend language
- Stable and maintainable
- Excellent community support and mature ecosystem
Cons
- Better suited for web applications than desktop
- Some criticisms that PHP lacks security
11. R
- Popularity: Low
- Salary expectations: typically between USD$74,619 - $95,401
- Ease of Learning: Difficult
- Use Cases: Specialty
- Statistical Computation and Analysis
The programming language R is primarily used by statisticians and researchers to perform statistical analysis of datasets. Demographers, insurance actuaries, and other jobs focused on statistics use R. Because of these practical fields of application, its code mass is considerable. As with MATLAB, most of the knowledge needed to work with R relates to statistics. R programmers combine statistics knowledge with the essentials of programming and software development.
Not many programmers are proficient in R, and the number of jobs also isn’t huge due to the specialized nature of the work. However, R knowledge can be a big advantage for data analysts doing statistical work. If that work sounds like something you want to look into, you should strongly consider adding R to your toolbox.
Pros
- Powerful specialized tool for academia and industry
Cons
- Limited applications
12. Go
- Popularity: Low
- Salary expectations: approximately USD$102,329 on average
- Ease of Learning: Moderate
- Use Cases: General
- Web Applications
- Local Applications
Go (also known as Golang) is a relatively new kid on the block. It was introduced by two Google engineers in 2009. Go syntax borrows heavily from C and Java. The design goals for Go included cross-platform compatibility, simplicity, and support for modern processors.
Go is relatively easy to learn. It has some of the complexities of C/C++ (such as pointers) but its syntax and conventions are simpler. There’s a rapidly growing following in engineering and DevOps circles, and Go is a popular language in growing fields like machine learning. And because knowledge of Go is comparatively rare, roles that require proficiency in Go can be more lucrative.
Pros
- Growing in popularity driven by Google’s endorsement
- Fast and powerful
- Experienced programmers can learn relatively quickly
Cons
- Not yet as firmly established as its peers
13. Visual Basic
- Popularity: Low
- Salary expectations: typically between USD$62,403 and $78,169
- Ease of Learning: Easy
- Use Cases: General
- Local Applications
Visual Basic (VB) was introduced by Microsoft as a variant of the BASIC programming language. It is an event-driven language and Integrated Development Environment, primarily used to develop Windows applications. VB was designed to be easy to learn and to rapidly produce usable software. Visual Basic for Applications (VBA) is embedded in older versions of Microsoft Office applications, such as Access. VBA was used to provide programmatic manipulation of Office documents. Access databases used VBA to compose mini-applications.
Microsoft deprecated Visual Basic 6.0, the last version of Visual Basic, in 2008. While much code remains in the wild, it is no longer supported and jobs that require Visual Basic are dwindling. It is likely that any remaining jobs are focused on maintenance and/or porting to a modern platform.
Pros
- A good tool for beginners
- Extremely accessible and simple
Cons
- No longer relevant
- Microsoft-specific
14. MATLAB
- Popularity: Medium
- Salary expectations: approx. USD$83,000 on average
- Ease of Learning: Moderate to Difficult
- Use Cases: Specialty
- Mathematical Research
MATLAB is not a programming language per se. Strictly speaking, it’s an application used to calculate and model complex mathematical computations. It is used primarily in research settings, at universities and labs. MATLAB can handle complex matrix manipulations, and supports extensions to use complex mathematical notation. Functions written in C, C#, and FORTRAN can be called from MATLAB.
The knowledge needed to use MATLAB is more related to mathematical concepts and skills than knowledge of programming. If you’re already an advanced math student, for example working on a PhD in mathematics, MATLAB is relatively easy to learn. MATLAB is a valuable skill for those seeking a job in engineering or mathematics.
Pros
- Ideal for visualizing and manipulating technical data
- Many libraries and functions to sort common use cases
Cons
- Narrow specialty applications
- Requires mathematical background
15. Swift
- Popularity: Medium
- Salary expectations: Typically between USD$74,406 - $99,129
- Ease of Learning: Moderate to Difficult
- Use Cases: Apple Mobile and Desktop applications
- MacBook
- iPhone
- iPad
Apple introduced Swift in 2014 as a modern alternative to Objective-C. Its goals were to be easier to debug than Objective-C. Swift syntax is easier to read, and requires less code to do the same amount of work. However, poor version compatibility introduced with new versions may have stunted its adoption.
Despite a complicated history, there are a fair number of jobs available for Swift, and it is likely that it’s here to stay. As mentioned in the Objective-C listing below, if you want to develop for the Apple ecosystem, hedge your bets and learn both.
Pros
- Popularity is stabilizing after a rocky beginning
- Less verbose and more readable, fostering better developer experience
Cons
- Lingering backwards compatibility issues
16. Delphi/Object Pascal
- Popularity: Low
- Salary expectations: typically between USD $80,000 - $150,000
- Ease of Learning: Moderate
- Use Cases: General
- Local ppplications (mobile and desktop)
- Web applications (frontend: transpilation to JS, backend: REST middlewares)
Delphi is a programming language and Integrated Developer Environment (IDE) for the Object Pascal language. Modern Object Pascal is an object-oriented, multi-paradigm derivative of procedurally oriented Pascal. Pascal was originally intended as a teaching tool, appeared in 1970.
This remains on the TIOBE list despite its age because there’s a lot of software out there written in Object Pascal with Delphi. New code is still being written in the language to this day. If you want to write software as a profession, Delphi and the Modern Object Pascal language is worth considering adding to your toolbelt.
Pros
- Concepts like OOP and structuring maintainable code are transferable to other languages
- Supports multi platform development for mobile, desktop and the web.
- Efficient turnaround from idea to product.
- Modern, fast compilers.
Cons
- Job market fluctuates and isn’t as robust as distant cousin C#.
- The IDE and compilers are proprietary, which open-source advocates don’t like.
17. Ruby{ruby}
- Popularity: High
- Salary expectations: typically between USD$71,811- $89,431
- Ease of Learning: Easy to Moderate
- Use Cases: General
- Web Applications
- Scripting
Ruby is an interpreted, dynamically typed, object-oriented language first introduced in the mid-1990s. It was inspired by several other languages, including Lisp, Perl, and Ada. Ruby is very popular for web application development. The Ruby on Rails framework (now known simply as “Rails”) is a model-view-component server-side framework written in Ruby.
Ruby is fairly easy to learn. Its common use in web applications and steady growth makes job opportunities easy to find.
Pros
- Easy to learn
- Healthy job prospects
- A leader in the web dev world
Cons
- Not a high-performance language
- Difficulty of debugging
18. Perl
- Popularity: High
- Salary expectations: typically approx. USD$77,714 on average
- Ease of Learning: Easy to Moderate
- Use Cases: General
- Local Applications
- Web Applications
Perl was introduced in 1987 as a utilitarian scripting language, evolving from CGI scripting. Recent releases of Perl are quite different from early releases.
Perl is fairly easy to learn, but it has its detractors. The development of Perl was somewhat haphazard, leading to criticism that it is not well-organized. This has given Perl a reputation for being less than robust.
A lot of software has been written in Perl, and that continues to this day. Perl jobs are not hard to find. Having said that, it would be a stretch to say that Perl is a “modern” language. Perl may be a good language to learn early in a career as a way to get started, but it shouldn’t be the only one.
Pros
- Features like dynamic typing are designed to make development easier
- A practical and utilitarian language
Cons
- Use of special characters makes Perl an “ugly” language
- High CPU consumption
19. Objective-C
- Popularity: High
- Salary expectations: typically approx. USD$104,000/yr in the USA
- Ease of Learning: Difficult
- Use Cases: Mobile Applications
- Apple iOS devices: iPhone, iPad
Objective-C is a general purpose, compiled, object-oriented language. Its syntax is derived from Smalltalk. Until 2014, when Apple introduced Swift, it was the primary language used by Apple to develop applications for MacOS and iOS.
Objective-C is still relatively popular due to the large number of applications available that were written using it. Now that modern MacOS and iOS development is primarily in Swift, it’s likely that this popularity will eventually fall off as the number of supported applications tapers over time. Objective-C is not easy to learn. It uses syntax and language conventions that are not common to other languages, so experience with other languages does not apply well to Objective-C.
If you want to focus on software development for the Apple ecosystem, it’s a good idea to pick up both Objective-C and Swift. This will give you the ability to work on older applications written in Objective-C, and write new applications in Swift. Between the two, jobs are readily available.
Pros
- Still indispensable for iOS development
Cons
- Non-transferrable principles
- Will likely eventually be replaced
- Challenging to learn
Want to read on about the other programming languages? You can read Part 2 of 40 most popular programming languages 2023: When and how to use them them in our next blog post.