Top programming languages: Python reigns supreme and COBOL sees a pandemic boost


IEEE Spectrum just released its 2020 ranking. Python sits atop once again, but the list features a few surprises.


Image: iStock/monsitj

IEEE Spectrum recently announced its the top programming language of 2020, as it has for the fast few years. 

This year’s roundup features no changes in the top three spots with Python coming in on top. After that, Java places second with C coming in close behind in third. Rounding out the field, C++ makes the list ranking fourth; the same position it held in the 2019 IEEE Spectrum list.

To determine the rankings, IEEE Spectrum uses a combination of nearly a dozen metrics across online sources “we think are good proxies for the popularity of 55 languages,” according to the company. These sources include GitHub, CareerBuilder, Hacker News, Google, Reddit, Twitter, the IEEE, and Stack Overflow.

SEE: Quick Glossary: DevOps (TechRepublic Premium)

Compared to previous rankings, there are no changes until the fifth spot with JavaScript. In 2019, JavaScript was ranked sixth overall behind R, but leapfrogs the latter programming language in the latest list. 

Interestingly, Arduino holds the seventh spot on a list of programming languages. (It’s important to note that the 2019 report also included Arduino, ranking it 11th overall.) The author of the report, Stephen Cass, addresses the inclusion head-on.

“Purists may argue that Arduino is not a language but rather a hardware platform that is programmed using a derivative of Wiring, which itself is derived from C/C++,” wrote Cass. “But we have always taken a very pragmatic approach to our definition of “programming language,” and the reality is that when people are looking to use an Arduino-compatible microcontroller, they typically search for “Arduino code” or buy books about “Arduino programming,” not “Wiring code” or “C programming.”

In order, Go, Swift, and Matlab round out the top 10. It’s important to note that the IEEE Spectrum rankings are interactive. This allows those so-inclined to manipulate the metric weight. As Cass explained, “Think one measure is way more valuable than the others? Max it out. Disagree with us about the worth of another? Turn it off.”

SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)

The coronavirus pandemic has also left an indelible mark on the latest rankings; namely with the surge in COBOL inquiries in some platforms. For example, if Twitter metrics were solely used to determine these rankings, COBOL would have placed seventh overall, per the report.

Cass notes that this is “likely due to the fact that in April, when we were gathering the Twitter data, COBOL was in the news because unemployment benefit systems in US states were crashing under the load as workers were laid off due to lockdowns.”

Last but not least, Racket is the last programming language to make the cut at 55.

Also see

Top 5 programming languages for network admins to learn


Network admins can find themselves spread a bit thin during these times of remote work while trying to provide support for all users. Leveraging programming to automate common tasks may help.

Image: monstArrr_, Getty Images/iStockphoto

In the first article in this series focusing on the top 5 languages for systems admins, I wrote about not being too fond of programming. To recap, it’s not because I don’t see the value behind it, because I whole-heartedly do. I mean, creating your own apps to manage client devices and make them do exactly what you want them to do is incredible as far as I’m concerned. My hesitation stems partly from frustration as it’s not a natural talent for me and can—at times—take me some time to develop the solution I need.

SEE: Programming languages: Which was most popular each year? (free PDF) (TechRepublic)

But it’s very cool when you get that script refined, tested, and put into production to handle redundant tasks that might otherwise saddle your workload. Now more than ever, I’ve personally been leaning much more heavily on automation since I find myself wearing more than one hat while working remotely and supporting any number of departments, users, and stakeholders in new and varied ways.

It’s with this spirit I present this article with the focus on network administrators and engineers. The tasks and projects that net admins encounter will benefit from any of these programming languages below. But if you’re looking to transition into another role, these languages will also serve you well, perhaps even presenting opportunities you weren’t aware of moving forward.


The Perl programming language has been around for more than 30 years, and it has continued to be in development, finding itself at home and fully capable of managing systems, networks, and web servers concisely and effortlessly. As a matter of fact, Common Gateway Interface (CGI) scripting led to its rise in popularity as more services found their way to the internet, with Perl’s ability to execute programs on web servers to dynamically generate web sites.

SEE: Report: Perl developers command 54% more money globally (TechRepublic)

But there’s a lot more to Perl, such as how the language naturally lends itself to network administration and systems management through open source support coupled with system-agnostic design. Perl is colloquially referred to as, “the duct tape of the Internet,” due to its flexible nature when handling data (particularly large data sets) and allowing programmers to quickly develop fixes to problems. Adding to its robust nature, the development of Perl applications is often faster than other, more popular languages. But that creates an issue as the variety of syntax sometimes makes resolving Perl-related coding issues arduous for the inexperienced.

Roles best suited for Perl users are Unix and Linux administrators, database administrators, web administrators, and developers. 


The native shell of Unix-based systems, including Linux and macOS, is the command-line interface (CLI) that allows admins to execute commands using highly intricate syntax to create scripts to automate system processes, whether they be commonly performed tasks, maintenance cycles such as upgrades and automating system setup tasks to ensure systems are all configured and managed in the same fashion.

SEE: The best programming languages to learn in 2020 (TechRepublic)

For networking equipment, a number of products run on some form of Linux-based OS, which allows for a great deal of flexibility to manage devices in a structured, secure manner. Furthermore, by learning to leverage terminal commands to automate processes, net admins can also use the very same commands to run tests on the network itself to determine connectivity and data routes in addition to log creation for monitoring devices and their connections.

Roles best suited for Bash (Bourne Again SHell) programmers include Linux and macOS-based systems administrators, and automation and application development.


Pronounced ‘tickle,’ Tool Command Language (TCL) is among the more mature of the programming languages and was born out of frustration, according to its creator, John Ousterhout, due to practices by developers embedding their own languages into applications. Having gained worldwide acceptance, Tcl is nothing to laugh at with its aim of being a general-purpose language that is as powerful as it is simple. What makes it great are its native extensibility with C/C++, Java, and Python, its speed and power to create anything from scripted applications to GUIs, and embedding its code into C-based apps. In terms of flexibility, extension packages can provide additional functionality, such as hooking into libraries that control an OS’s theme, User Datagram Protocol sockets support, and OpenSSL for securing connections, just to name a few. 

SEE: Programming languages: Developers reveal most loved, most loathed, what pays best (ZDNet)

That said, you might be asking yourself why you may not have heard of Tcl before. Well, it is estimated that Tcl has about a 0.1% usage rate across all the websites worldwide. With such limited implementation, why pick this language over a competitor that’s more popular? There’s an answer for that, too: Cisco, that’s why. As a network administrator, you’ve no doubt at least heard of Cisco and chances are that you worked on their equipment, or they may be partners with your organization, providing networking equipment. Cisco’s IOS (Internetwork Operating System), or the OS used on many of Cisco’s switches and routers, has Tcl baked into it and uses it to program and automate changes to its equipment en masse. Cisco provides extensive configuration guides that document the process of managing their wares through Tcl.

Roles best suited for Tcl use are software engineer, developer, automation developer, systems integration, and prototype/hardware architect.


Created in 2007 by Google programmers frustrated with the limitations of commonly used languages, the trio decided to build upon Go, as they called it, by sharing the strengths of other languages but none of the criticisms of C++, Python, or JavaScript. Two years later, it was announced to the public. And while Go is a relative newcomer compared with the other languages listed here, even if you have not heard of it before, you are no doubt familiar with what it can do with applications and services having been built partially, or completely, based on its code: Docker, Kubernetes, Cloud Flare, Google, Netflix, and Uber being some of the major services powered by Go.

SEE: How to install the Go language on Linux (TechRepublic)

With Go, the learning curve is lower than, say C, for example, and the language is more forgiving, given its lightweight, usability-focused approach to coding. Better still, it was designed with multiprocessing, networking, and for handling high-volume data in mind. This makes it ideal for not only speeding up your network administration tasks but also modernizing it, relying on extensive libraries and community support to create platform-independent applications, similar to Java.

Roles best suited for Go use are systems administration, DevOps, software engineer, data center engineer.


Again, Python finds itself on top as the language’s open-source structure lends itself to being supported by the majority of operating systems. Combined with its relatively low learning curve, robust support community, and interoperability with many facets of information technology, chances are great that learning Python will help just about any admin transition from one role to another without even having to leave the console.

SEE: Learn Python: Online training courses for beginning developers and coding experts (TechRepublic)

While Python is commonly used for automating system administration tasks, by design, it can be leveraged through the use of plug-ins and scripts to integrate nicely into a variety of workflows, whether they focus on coding, administration, or management. Additionally, Python can utilize existing libraries to further enhance the functionality of scripts you design or to cut development time down significantly.

Roles best suited for Python programmers include penetration testers, security administrators, web developers, DevOps teams, and automation developer.

Developer Essentials Newsletter

From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know.

Sign up today

Also see

Top 5 programming languages for systems admins to learn


Depending on the organization, systems admins may find themselves as participants in other IT tasks. A little automation may help to free up valuable time to get it all done. These languages can help.

Image: RossHelen, Getty Images/iStockphoto

Full disclosure: I am not a programmer. I just began my 24th year in the IT industry, and let it be known that I am not a fan of programming. It’s not because I don’t see the utility of it or how awesome it is to develop your own solutions and applications. It’s far simpler than that—it just does not come naturally to me and takes significant effort to really piece it together to create solutions and such that help make my job easier.

SEE: Hiring Kit: Application engineer (TechRepublic Premium)

You may be asking yourself, why write an article about something you don’t like? There’s a simple answer for that, too. It makes the systems admin portion of my job responsibilities significantly easier. That’s the main reason I work so hard at figuring it out, making sense of it, taking courses, and ultimately putting it to good use. There aren’t enough hours in the day to give everything that personal touch or to repeat the same task over and over across tens of thousands of clients, servers, and mobile devices on- and off-site.

As a hands-on IT professional, I can be found working on many jobs at once, attending meetings, and providing support to colleagues at any given time. So, that’s why learning at least one programming language is so important: The flexibility of automating tasks (particularly the repetitive ones) frees up time that is better spent addressing matters that require the personal touch.

SEE: 11 DevOps trends that will matter most in 2020 (TechRepublic)

The languages listed below were specifically chosen for not only the benefit that they provide to admins in their current roles but allow for them to pivot into any number of other roles across departments, such as security and penetration testing, DevOps, and web development. 


The top of the list among many different IT platforms is Python. Some of the language’s strengths are that it’s open source, supported across most operating systems, easy to use due to its relatively low learning curve, and interoperable with any number of industries, like social media, web, administration, automation, and security.

SEE: Learn Python: Online training courses for beginning developers and coding experts (TechRepublic) 

In fact, many of the tools commonly used by penetration testers often include plug-ins to import Python scripts into their workflow when assessing the security posture of systems on networks specifically due to its agnostic approach to hardware and software and the facility by which the scripts can be modified on the fly, as needed. Also, it is extensively supported by a large community and offers a breadth of libraries to shorten code development time.

Roles best suited for Python programmers include penetration testing, web developers, automation, and DevOps.


Bourne Again Shell, or BASH for short, is the shell native to Unix/Linux-based systems by default. It is known for combining its use of commands and applications on systems to construct scripts used to automate just about anything on a system, including the retrieval of output data, or manipulating said output and channeling (known as piping) data from one command to another to execute multiple commands against one set of data for added efficiency.

SEE: The best programming languages to learn in 2020 (TechRepublic)

One of the common cons about BASH is that it isn’t supported natively across all OSes. Particularly Windows systems, though Microsoft has made strides to incorporate a BASH interpreter, which is available as an optional install on Windows-based systems. Pros for BASH include its speed and efficiency, as well its unified support across *nix-based platforms and will serve as a great skillset for sysadmins that wish to remain in their roles but expand their knowledge base further.

Roles best suited for BASH programmers include Linux-based systems administrators, automation, and application development.


Microsoft’s PowerShell (PWSH) has undergone a change in recent years, including limited support for Unix-based systems, becoming open source, and most recently adding more support for a large swath of OSes, including popular Linux distributions and macOS, among others. PWSH was originally developed as a successor to the CLI interface found in Windows systems with support for systems management and role-based services on servers. 

SEE: How to use PowerShell to manage Microsoft updates on Windows (TechRepublic)

While the crux of that hasn’t changed, it has developed into a programming language in itself, used by admins to support and manage devices (one to many) with the flexibility to manipulate data in any number of ways, including automating virtually all aspects of a system. And through the use of modules, similar to libraries, additional functionality may be introduced to expand its capabilities for both first- and third-party services, including the Azure platform, which allows for typically locally run services like Active Directory, Exchange, and Intune to migrate to the cloud.

Roles best suited for PowerShell programmers include Windows and Linux-based systems administrators, automation, and cloud engineer.


Compared with most of the items on this list, Ruby (and Ruby on Rails by extension) is among the newer programming languages and arguably the least popular. But that doesn’t mean that Ruby should be discounted by any means, given its strengths as being easy to learn and ideally suited for web-based development and e-commerce, due in no small part to its focus on clean code and security.

SEE: 16 most in-demand coding languages worldwide (TechRepublic)

Ruby has a substantial following among the security community given its facility in aiding infosec pros to fuzz code, reverse engineer files and applications, and perform a whole host of other popular penetration testing tasks. For anyone who may doubt Ruby’s security prowess, Metasploit, the powerful framework used to develop and execute exploits on systems worldwide, was written in Ruby.

Roles best suited for Ruby programmers include web development, pentesting, application development, and e-commerce.


Unlike the relative newness of Ruby, JavaScript is among the older of the programming languages listed here, and there’s a reason it has stood the test of time. JS was developed almost 25 years ago and has on its side speed, compatibility, versatility, and simplicity. It can be found almost everywhere to some degree, but most often on a website when communicating between clients and servers.

SEE: JavaScript: The #1 programming language skill hiring managers want in job candidates (TechRepublic)

JS is updated frequently, with many of these updates bringing new functions that allow for greater usage of resources for web-based applications, mobile development (like smartwatches, for example), and games. Though it’s superior in many ways to other languages, it isn’t without its share of limitations. There are dependencies based on the browser installed, because not all browsers support the same functions and could “break” apps. Also, it’s not very well-suited for managing systems and is plagued by a number of commonly exploited vulnerabilities due to the way in which JavaScript conceals (or rather, does not conceal) code.

Roles best suited for JavaScript programmers include web development, application development, mobile device development, and games development.

Developer Essentials Newsletter

From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know.

Sign up today

Also see