Top 6 Programming Languages 2020 (It is worth the attention)

First, modern programming languages are developed to take the full advantages of modern computer hardware (Multi-Core CPU, GPU, TPU), mobile devices, large-set of data, fast networking, Container, and Cloud. Also, most of the modern programming languages offer much higher developer Ergonomics as given below:

  • Concise and terse code (less boilerplate coding)
  • Built-in support for concurrency
  • Null pointer safety
  • Type Inference
  • The much simpler feature set
  • Lower cognitive load
  • Blending the best features of all programming paradigms

Second, many programming languages of the list are disruptive and will change the software industry forever. Some of them are already mainstream programming languages, while others are poised to make the breakthrough. It is wise to learn those languages at least as a second programming language.

With several programming languages that are available to software programmers, picking an ideal one for a job can be quite tricky. In this post, we’ll learn and discuss Top 6 Programming Languages 2020

1. Rust

The System programming language landscape is dominated by near-Metal languages like C, C++. Although they give full control over programs and hardware, they lack memory safety. Even if they support concurrency, it is challenging to write Concurrent programs using C/C++ as there is no Concurrency safety. The other popular programming languages are interpreted languages like Java, Python, Haskell. They offer safety but need a bulky runtime or Virtual Machine. Because of their large runtime, languages like Java are not suitable for System programming.

There were many attempts to combine the power of C/C++ and the safety of Haskell, Java. It looks like Rust is the first production-grade programming language that did the trick.

Graydon Hoare first developed Rust as a side project. He was inspired by the research programming language Cyclone. Rust is open source and Mozilla is leading the language development along with many other companies and communities. Rust is first released in 2015 and has soon caught the eye of the community. In a previous post, I have taken a deeper look into Rust and argued why it is a better choice to use Rust over C++, Java in Big Data domain:

Key Features:

  • Offers Memory Safety and Concurrency safety with the concept of Ownership and Borrowing.
  • Compile-time guarantee of memory safety and concurrency safety i.e. if a program code compiles, then it is both memory safe and data-race free. This is the most appealing feature of Rust.
  • It also offers the expressiveness of ML, Haskell. With Immutable Data Structures and functional programming features, Rust offers functional Concurrency and Data Concurrency.
  • Rust is Blazingly fast. Idiomatic Rust gives better performance than Idiomatic C++ as per Benchmark Game.
  • With no Runtime, Rust offers full control of modern Hardware (TPU, GPU, Multi-Core CPU).
  • Rust has LLVM support. As a result, Rust offers first-class interoperability with WebAssembly and allows the Blazingly fast Web Code.

Popularity:

Since its debut in 2015, Rust is well accepted by the Developers and voted as the Most beloved language for four consecutive years (2016, 2017, 2018, 2019) in StackOverflow developers survey:

According to GitHub Octoverse, Rust is the second-fastest-growing language just behind Dart:

Also, programming language Popularity website PyPl has ranked Rust in 18th position with an upward trend:

Comparing the feature set it offers, it is no wonder that giant Tech companies like Microsoft, Amazon, Google finally announced their investment on Rust as a long term System programming language.

In the last 5 years, Rust has been getting increasing traction every year, as shown by Google trends:

Main Use Cases:

  • System Programming
  • Serverless Computing
  • Business Applications

Main competitor Languages:

  • C
  • C++
  • Go
  • Swift

2. Go

Google is one of the biggest Web Scale companies. At the beginning of this century, Google has faced two scaling problems: Development Scaling and Application Scaling. Development scaling means that they could not add more features by throwing more developers. Application scaling means that they could not easily develop an application that can scale to the “Google” scale machine cluster. Around 2007, Google started to create a new “pragmatic” programming language that can solve these two scaling problems. In Rob Pike (UTF-8) and Ken Thompson (UNIX OS), they had two most talented Software Engineer in the world to create a new language.

In 2012, Google has released the first official version of the Go programming language. Go is a system programming language but different from Rust. It also has a Runtime and Garbage collector (a few Megabytes). But unlike Java or Python, this runtime is packed with the generated code. In the end, Go generates a single native binary code that can run in a machine without additional dependency or Runtime.

Key Features:

  • Go has first-class support of Concurrency. It does not offer the ‘Shared Memory’ concurrency via Thread and Lock as it is much more difficult to program. Instead, it offers a CSP based message-passing concurrency (based on Tony Hoare paper). Go uses “Goroutine” (lightweight Green thread) and “Channel” for message passing.
  • The most killer feature of Go is its simplicity. It is the most simple system programming language. A new Software Developer can write productive code in a matter of days like Python. Some of the biggest Cloud Native projects (Kubernetes, Docker) is written in Go.
  • Go also has embedded Garbage Collector which means developers do not need to worry about Memory management like C/C++.
  • Google has invested heavily in Go. As a result, Go has massive Tooling support. For new Go developers, there is a large ecosystem of tools.
  • Usually, developers spent 20% of their time writing new code and 80% time they maintain existing code. Because of its simplicity, Go excels in the language maintenance field. Nowadays, Go used heavily in Business Applications.

Popularity:

Since Go first appears, the Software Development community has accepted it with arms. In 2009 (right after its debut) and 2018, Go has entered the Programming Language Hall of Fame list by the TIOBE index. It is no wonder that the success of Go has paved the way for a new generation of programming languages like Rust.

Go is already a mainstream programming language. Recently, Go team has announced the work on “Go 2” to only make the language more solid:

In almost all popular programming languages comparing websites, Go ranks high and has surpassed many existing languages. Here is the TIOBE index rating from December 2019 where Go ranks 15th:

According to the Stackoverflow survey, Go is one of the top 10 most loved programming languages:

Go is also one of the top 10 fastest growing languages according to GitHub Octoverse:

Google trends also show increasing traction for Go over the last five years:

Main Use Cases:

  • System Programming
  • Serverless Computing
  • Business Applications
  • Cloud-Native Development

Main competitor Languages:

  • C
  • C++
  • Rust
  • Python
  • Java

3. Kotlin

Java is the undisputed king of Enterprise Software Development. In recent times, Java has become the target of much criticism: It is verbose, needs lots of boilerplate coding, prone to accidental complexity. However, there is little argument about the Java Virtual Machine (JVM). JVM is a masterpiece of Software Engineering and offers a battle-hardened runtime that has passed the test of time. In a previous post, I have discussed in detail the advantages of JVM:

Over the years, JVM languages like Scala tried to answer the shortcomings of Java and wanted to be better Java but failed. Finally, in Kotlin, it looks like a search for better Java is over. Jet Brains (the company behind the popular IDE IntelliJ) has developed Kotlin, which runs on JVM and answers the shortcomings of Java and offered many modern features. The best part is that unlike Scala, Kotlin is much simpler than Java and offers Go or Python-like developer productivity in JVM.

Google has declared Kotlin as a first-class language to develop Android and boosted Kotlin’s acceptance in the community. Also popular Java Enterprise framework Spring has started to support Kotlin in the Spring eco-system since 2017. I have used Kotlin with Reactive Spring and the experience was amazing.

Main Features:

  • The USP of Kotlin is its language design. I always view Kotlin as Go/Python on JVM because of its clean, concise code. As a result, Kotlin is highly productive.
  • Like many other modern languages, Kotlin offers features like Null pointer safety, Type Inference.
  • As Kotlin also runs in JVM, you can use the existing huge eco-system of Java libraries.
  • Kotlin is a first-class language to develop Android App and has already surpassed Java as the number one programming language to develop Android App.
  • Kotlin is backed by JetBrains and Open Source. So, Kotlin has excellent tooling support.
  • There are two interesting projects: Kotlin Native (to compile Kotlin into native code) and kotlin.js (Kotlin to JavaScript). If they become successful, then Kotlin can be used outside JVM.
  • Kotlin also offers a simple way to write DSL (Domain Specific Language)

Popularity:

Since its first release in 2015, the popularity of Kotlin is soaring. As per Stack Overflow, Kotlin is the fourth most loved Programming language in 2019:

Kotlin is also one of the fastest-growing programming languages and ranked 4th:

Popular programming language ranking website PyPl has ranked Kotlin as the 12th most popular programming language with a high upward trend:

Since Google has declared Kotlin as the first-class language to develop Android Apps, Kotlin has experienced a huge positive boost in trending as shown below:

Main Use Cases:

  • Enterprise Application
  • Android App Development

Main competitor Languages:

  • Java
  • Scala
  • Python
  • Go

4. TypeScript

JavaScript is an excellent language but pre-2015 JavaScript had many shortcomings. Even noted Software Engineer Douglas Crockford has written a book “JavaScript: The Good Parts” and implied that JavaScript has bad parts and ugly parts. With no modularization and with “Callback Hell”, developers did not like to maintain especially large JavaScript projects.

Google even developed a platform to transcompile Java code to JavaScript code (GWT). Many companies or people tried to develop better JavaScript e.g. CoffeeScript, Flow, ClojureScript. But TypeScript from Microsoft arguably hit the Jackpot. A group of engineers in Microsoft, led by famous Anders Hejlsberg (creator of Delphi, Turbo Pascal, C#), created TypeScript as a Statically Typed, Modular superset of JavaScript.

TypeScript is transcompiled to JavaScript during compilation. First released in 2014, it quickly attracted the attention of the community. Google was also planning to develop a Statically Typed superset of JavaScript back then. Google was so impressed by TypeScript that instead of developing a new language, they co-operated with Microsoft to improve TypeScript.

Google has used TypeScript as the main programming language for its SPA framework Angular2+. Also, the popular SPA framework React offers support for TypeScript. The other popular JavaScript framework Vue.js has declared that they will use TypeScript to develop the new Vue.js 3:

Also, node.js creator Ryan Dahl has decided to use TypeScript to develop a secure Node.js alternative, Deno.

Key Features:

  • Like Go or Kotlin in the list, the principal feature of TypeScript is the language design. With its crisp and clean code, it is one of the most elegant programming languages out there. In terms of Developer productivity, it is on par with Kotlin on JVM or Go/Python. TypeScript is the most productive JavaScript superset hands down.
  • TypeScript is a strongly typed superset of JavaScript. It is especially suited for large Projects and rightly termed as “JavaScript that Scales”.
  • The “Big Three” Single Page Application framework (Angular, React, Vue.js) offers excellent support for TypeScript. In Angular, TypeScript is the preferred programming language. In React and Vue.js, TypeScript is getting increasingly popular.
  • Two of the biggest Tech Giants: Microsoft and Google are working together to develop TypeScript supported by a vibrant open source community. As a result, the tooling support for TypeScript is one of the best.
  • As TypeScript is a superset of JavaScript, it can runs where JavaScript runs: everywhere. TypeScript can run on Browser, Server, Mobile Devices, IoT devices, and Cloud.

Popularity:

Developers love TypeScript for its elegant language design. In the Stackoverflow Developer survey, it has ranked joint second with Python in the most beloved language category:

TypeScript is one of the fastest-growing Web programming languages and ranked fifth according to GitHub Octoverse:

TypeScript also entered the Top 10 List (ranked 7th) according to the GitHub Contributions:

TypeScript is having more and more eyeballs in each passing year, which is reflected by Google Trends:

Main Use Cases:

  • Web UI Development
  • Server-side development

Main competitor Languages:

  • JavaScript
  • Dart

5. Swift

Steve Jobs has refused to support Java (and JVM) in iOS as he has famously quoted that Java is no more a major programming language. We now know that Steve Jobs was wrong with his assessment with Java, but iOS is still not supporting Java. Instead, Apple has chosen Objective-C as the first-class programming language in iOS. Objective-C is a hard language to master. Also, it does not support the high developer productivity required by modern programming languages.

In Apple, Chris Lattner and others have developed Swift as a multi-paradigm, general-purpose, compiled programming language that gives an alternative to Objective-C. The first stable version of Swift was released in 2014. Swift also supports LLVM compiler Toolchain (also developed by Chris Lattner). Swift has excellent interoperability with Objective-C codebase and has already established itself as the main programming language in iOS App development.

Main Features:

  • One of the killer features of Swift is its language design. With simpler, concise and clean syntax, it offers a more productive alternative to Objective-C.
  • Swift also offers features of modern program languages: null safety. Also, it offers syntactic sugar to avoid the “Pyramid of Doom”.
  • As a compiled language, Swift is as fast as C++.
  • Swift has support for LLVM Compiler Toolchain. So, we can use Swift in server-side programming or even Browser programming (using WebAssembly).
  • Swift offers Automatic Reference Counting (ARC) support and thus limits memory mismanagement.

Popularity:

Developers love Swift programming language like many other modern languages. According to the StackOverflow survey, Swift ranked 6th as the most beloved programming language:

In the programming language ranking of TIOBE, Swift has moved to the number 10 ranking in 2019. Considering how young the language is (5 years), this is quite a feat:

Google trends also show a sharp rise in the Popularity of Swift followed by a slight decrease in trending in the last couple of saturation:

Main Use Cases:

  • iOS App Development
  • System Programming
  • Client-side development (via WebAssembly)

Main competitor Languages:

  • Objective-C
  • Rust
  • Go

6. Dart

Dart is the second programming language in this list made by Google. Google is a key player in the Web and Android domain, and it is no surprise that Google has developed its own programming language in the Web and App Development domain. Led by the famous Danish Software Engineer Lars Bak (who lead the Development of Chrome’s V8 JavaScript Engine), Google has released Dart in 2013.

Dart is a general-purpose programming language which supports Strong typing and Objected-Oriented programming. Dart can also be transcompiled to JavaScript and can run where JavaScript runs means virtually everywhere (e.g. Web, Mobile, Server).

Main Features:

  • Like other Google language Go, Dart also heavily focuses on developer productivity. Dart is hugely productive and loved by developers because of its clean, simple, terse syntax.
  • Dart also offers Strong Typing and Object-Oriented programming. Dart is also a second language in this list which fits the ‘Scalable JavaScript’ tag.
  • Dart is one of the few languages which supports JIT compilation (compilation during Runtime) and AOT compilation (compilation during creation time). Thus Dart can target JavaScript runtime (V8 Engine) and Dart can be compiled to fast Native code (AOT compilation)
  • The Cross-Platform Native App Development platform Flutter has chosen Dart as the programming language to develop both iOS and Android App. Since then, Dart has become more popular.
  • Like other Google programming language Go, Dart also has excellent Tooling support and the huge Ecosystem of Flutter. The increasing popularity of Flutter will only increase the adoption of Dart.

Popularity:

According to Github Octoverse, Dart is the fastest-growing Programming language in 2019 and its popularity has five-folded in last year:

According to the TIOBE index, Dart stands 23rd position and has already surpassed many other existing and modern programming languages in only 4 years:

It is also one of the most beloved programming languages as ranked 12th in StackOverflow developer Survey:

Along with Flutter, Dart has also experienced huge traction in the last two years as clear by Google Trends:

Main Use Cases:

  • App Development
  • UI Development

Main competitor languages:

  • JavaScript
  • TypeScript

Thank you for reading!

#programming #languages #developer #javascript #python

Top 6 Programming Languages 2020 (It is worth the attention)
1 Likes55.70 GEEK