20 Computer Languages for 2020

A breakdown of the top languages to learn in 2020 and beyond

Ken Reilly
May 22, 2020 · 9 min read
Image for post
Image for post

Introduction

oftware development has come a long way since the early days, when large mainframes were often programmed in assembler, and languages such as COBOL and Fortran were brand new and state of the art.

Today, there are hundreds of languages to choose from. This list was compiled from the TIOBE index, Google Trends, and StackOverflow Trends. The items are in alphabetical order to allow the reader to decide what looks good, rather than attempting to put them into any specific rank. (Go was added by request, bringing the total to 21).

Common uses for each language are provided, along with the present and future potential relevance of each to the industry.

Bash

Unix shell scripting has been around for a long time, developed by Ken Thompson in the early 1970’s, and is closely tied to the development of C. Bash is an updated Unix shell first released in the late 80’s and is still under active development today. Server config scripts are routinely written in Bash, making it a good choice for working in modern cloud environments with containers and microservices. Shell scripting is rooted in the internet, so it’s always a great skill to pick up.

Also check out zsh, which is now the default shell on macOS.

Good for: server admin tasks, CLI tools, DevOps, virtualization

COBOL

One of the oldest languages still in use today is COBOL, created largely by Grace Hopper in the late 1950’s to standardize development of large-scale business applications across machines, a brilliant concept we still utilize today with cross-platform SDKs. An incredible 95% of ATM transactions pass through COBOL systems, with many of these running 24/7/365 for decades. Mainframe vendors such as IBM continue to develop more powerful machines designed to run COBOL, while banks work to maintain and upgrade their existing systems due to the cost and risk associated with replacing them. Therefore, COBOL isn’t going away anytime soon and is a good choice if you want clients who store and manage large amounts of cash for a living.

Good for: banking / finance, international corporations, governments

C/C++

These languages frequently rank at the very top across numerous curated lists and trend data queries, and are widely known and appreciated for speed and raw power. Beginning with the development of C in the early 1970’s by Dennis Ritchie and later C++ by Bjarnee Srousroup in 1985, these two languages have served as the backbone for everything from OS and game development to modern scientific computing and machine learning. Known for having a steep learning curve, C and C++ are well-suited for demanding applications that require low-level hardware access and performance.

Good for: OS / SDK development, embedded devices, game engines, science

C#

Released by Microsoft in 2000 and designed by Anders Hejlsberg to be a general-purpose cross-platform OOP language, C# has become a popular choice for developing business applications, APIs, games, and more. The extensive set of features available within this language make it for graphics and other asynchronous programming tasks.

Good for: Enterprise applications, API/UI development, games, graphics

Dart

Dart is a modern language developed at Google by Lars Bak, also the creator of the V8 JavaSript Engine, for building mobile, desktop, web, and server applications. As a result, Dart is similar to other modern OOP languages such as C#, TypeScript, and Java, and provides an extensive feature set useful for defining complex interactions, asynchronous operations, animations, and other tasks that these modern tools were purpose-built for.

Good for: Cross-platform apps, cloud/enterprise, games, graphics

Fortran

Developed at IBM in the 1950’s by John Backus, Fortran is a general-purpose language designed for scientific and engineering work, and remains in widespread use today for that purpose, including to write benchmark tests for the world’s fastest supercomputers. Fortran has been used extensively in fields such as space exploration, physics research, and weather modeling.

Good for: Aerospace / defense, scientific computing, numeric analysis

Go

Known informally as golang from the domain golang.org, Go was designed at Google in 2007 as a modern language for systems and high performance computing and is used by Google and other large organizations to build efficient services across very complex and highly-distributed networks.

Good for: Distributed services, communication, virtualization, tooling

Java

Java is a general-purpose OOP language developed in the 1990’s by James Gosling at Sun (now owned by Oracle), and was designed to compile to bytecode for running on the Java virtual machine on any target for which a Java VM exists. As of 2020, that would include nearly every kind of device in existence, from TV’s and game consoles to servers, phones, and even kitchen appliances. Java has a moderate learning curve, and widespread adoption by corporations and universities have made it a popular choice for both new programmers and seasoned developers alike.

Good for: Enterprise apps, embedded devices, web services, games

JavaScript

JavaScript was designed at Netscape in the 1990's by Brandon Eich to add scripting to websites, and remains the universal web front-end language today, with powerful, standardized features enjoying full support from all major web browsers. JavaScript conforms to the EcmaScript standard, which is updated every few years or so with new language feature specifications. JavaScript is also frequently used for developing back-end services and APIs, mobile apps, games, and other software, and will remain a solid choice to learn and continue to brush up on in the future.

Good for: Full-stack web, cloud services / containers, games, utilities

Julia

Julia is a modern, high-level language designed for high-performance numerical processing and statistical analysis. Developed initially in 2009 by Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman, the Julia language has since gained popularity among universities, governments, and financial institutions. Julia is one of four languages to achieve petaFLOPS level performance on supercomputers (with C, C++, and Fortran).

Good for: financial analysis, mathematics research, scientific computing

Kotlin

Kotlin was designed to be interoperable with Java, with added functional programming and OOP features such as lambda expressions, properties, operator overloading, and more. Google announced in 2019 that Kotlin is now the preferred language for Android development, making it a good choice to learn for building Android apps and plugins for popular SDKs.

Good for: Android apps, server-side development, anywhere Java is used

Lisp

Lisp is a group of languages that stem from the historic implementation originally called LISP, developed at MIT in the 1950’s to allow describing programs in a mathematical way. The s-expression syntax of Lisp is different from most languages, many of which descend from, or are influenced by, the C family. Lisp was popular in early AI research and has been widely adopted as a scripting language for CAD and other engineering applications, since it treats code as data and allows for language customization with macros and other powerful features that set it apart from more static languages. Notable applications include AutoLisp (AutoCad scripting) and the Roomba. One variant of the language family, Clojure, is especially useful for building large-scale applications for enterprise and web.

Good for: AI, robotics, scripting, language extension, research, engineering

Lua

Designed in 1993 by Roberto Ierusalimschy to be embedded within other applications for customization, Lua is widely used as a scripting language to extend software with new features, such as describing game logic in video game development or adding custom features to graphics tools.

Good for: software extension, game logic, automation, electronics / IoT

PowerShell

PowerShell was released by Microsoft in 2006 to bring Unix-like CLI features to Windows, and has since been released as open-source and has been ported to macOS, CentOS, and Ubuntu. PowerShell is used extensively within systems utilizing Windows Server and other Microsoft technologies to simplify admin tasks and reduce maintenance costs.

Good for: Windows system administration, CLI tools, scripting, maintenance

Python

First released in 1991 by Guido van Rossum, Python was intended to be a highly-readable language with features for OOP, functional, and other paradigms for building clean and well-organized programs. Python enjoys large-scale platform support and is widely used within academia, data science, artificial intelligence, feature-film CGI, web servers, cloud computing, game development, and much more. Python is well-established and will remain one of the top programming skills for many years to come.

Good for: AI / ML, data science, cloud/web, media production, scripting

R

R was initially released in 1995 for computing statistics and performing other heavy math operations, such as data analysis and graphics. R is often used by Fortune 500 corporations for performing complex analysis of risk, customer behavior trends, and other numerically-intensive tasks. R is unique from many languages in statistics, having an s-expression syntax similar to Lisp. While not used much for other things, R is a go-to standard for intensive data analytics, especially to forecast markets or analyze user trends.

Good for: data science, predictive analytics, computational graphics

Ruby

Initially released in 1995, Ruby was developed by Yukihiro Matsumoto as an object-oriented scripting language, to make up for the lack of true OOP features in other scripting languages available at the time. Features such as dynamic typing, inheritance, reflection, and operator overloading make it great for complex scripting and web server applications.

Good for: Advanced scripting, package management, utilities, web servers

Rust

Rust is a multi-paradigm language designed for building large-scale concurrent systems with high performance and reliability. Rust has been voted as the most loved programming language in a StackOverflow survey every year since 2016. Being a systems-level language similar to C++ and not requiring a runtime or VM, Rust provides low-level access to hardware, making it ideal for developing operating systems, microcontroller programs, and other software in which bare-metal performance is critical.

Good for: OS development, embedded applications, servers, tools, games

SQL

While not a general-purpose programming language, SQL is a powerful domain-specific language for managing relational databases, with applications ranging from Fortune 500 data warehouses to embedded SQLite used extensively in desktop and mobile software. Many software and other IT jobs require at least working knowledge of SQL, while advanced skills enable a developer to build extremely safe and reliable business rules agnostic of any particular programming language or SDK used. High-profile implementations include Microsoft SQL Server, Oracle Database, and PostgreSQL, each with a unique extension of the SQL language offering new features beyond the core SQL specification. Learning SQL is a no-brainer for anyone looking to enter (or advance within) numerous fields from analytics and data science to IT management and software engineering.

Good for: Working with relational data, embedding data in applications

Swift

Swift was released by Apple in 2014 to replace the use of Objective-C in their products (similar to Kotlin replacing Java for Android). Swift retains several features of Objective-C (such as dynamic dispatch) utilized to software for Apple products, but with increased safety and a syntax more familiar to those coming from other OOP languages such as C# or Java.

Good for: Building applications for macOS, iOS, watchOS, etc

TypeScript

TypeScript is an open-source language from Microsoft designed to add OOP features to JavaScript, for improving the readability and maintainability of complex applications. Introduced in 2012, TypeScript is commonly used to build durable, scalable web applications, frameworks, and other software, such as the popular VS Code editor. (As a note, I have been been using TypeScript since 2013 and VS Code since 2016, both of which I highly recommend for building nearly any kind of web app imaginable).

Good for: Web front-end, APIs, games, scaling any JavaScript software

Conclusion

Anyone interested in starting or advancing within a career in software development will need to be familiar with at least a few of the languages on this list. Individual pros and cons were omitted, as every developer’s experience will vary greatly depending on specific versions, use cases, management, project timelines, and infinite other variables. Every language has strengths and weaknesses, and a good strategy is to focus on strengths, searching for better tools when a roadblock is encountered instead of complaining about the existing tools being used.

If it’s not working for the job, find something that will. There are many styles of programming, including dozens of best practices and known design patterns for each of these languages (and many that are less popular today than in the past but are still employed widely across the industry, and others which are relatively new and still gaining momentum).

Thanks for reading and good luck with your next project!

Data Sources: The TIOBE Index, Google Trends, StackOverflow Trends

The Startup

Medium's largest active publication, followed by +771K people. Follow to join our community.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store