Modern Programming Languages for this decade

Ankit Sharma
5 min readFeb 10, 2020

--

Photo by Goran Ivos on Unsplash

Disclaimer: In no way am I implying that Java, C, C++ are going away. These are my thoughts on the programming languages which will make a bigger impact this decade.

If you need any evidence as to why the old guard is not going away anytime soon then you don’t need to look beyond this.

Federal Agencies IT Report 2016

Department of Defense still uses an IBM Series 1 and 8-inch floppy disks in 2016. For the fiscal year 2017, the budget for IT was $89 billion, and much of it was to maintain the legacy systems in use. Is it not wild that there’s still a company in 2017 making money by manufacturing floppy disks?! Full report here

According to this report, 64% of Java developers are still on JDK 8. What’s the current version of Java you ask? Java 13, with Java 14 coming out in March 2020. Python 2 was recently deprecated and Python 3 is the de-facto language for parseltongues. Languages that have been around for a while continue to reinvent themselves. But that doesn’t mean that new languages can’t make a dent in their market share.

Photo by Mark Leishman on Unsplash with some creativity from me 🤓

Programming languages like Java, C, C++ were the first ones to define new programming paradigms. That also means that they carry a lot of baggage because of backward compatibility. The languages which are emerging or have emerged over the last decade were designed because the old ones were lacking in readability, memory management, concurrency, fast execution. The second wave of languages like Python, JavaScript, Ruby tried to address those issues and there was a movement towards dynamic typing but the compile safety of static typing is making its way back as it should.

The modern languages as they are called are statically typed while being fast and offer loads of other improvements like in-built concurrency model, null safety, better memory management, etc. There are a ton of programming languages out there, but in my opinion, these three will lead the way for the next generation of software writing.

Kotlin

Kotlin from kotlinlang.org

Named after the Kotlin island near St. Petersburg, this open-source programming language created by JetBrains (the company behind IntelliJ IDEA and a host of other cool IDEs) continues to grow in popularity as a Java alternative. The first stable release came out in February 2016 and in such a short span, it has already become the #2 language on the JVM after Java.

The reasons I think it will make a big impact are:

* 100% interoperable with Java. Works with all Java libraries.

* Null safety is built into the language. None of those pesky NullPointerExceptions

* Google has made it a preferred language on Android. They are even going to be working on Kotlin APIs for Android framework

* It writes SO much better than Java. (Later versions of Java, Java 15 and onwards plan to introduce a lot of features which Kotlin has, but remember, Java is at version 15 and Kotlin is at 1.3.60, just saying)

* Coroutines brings a concurrency model, and for greenfield projects, Kotlin is the preferred language.

* Support for native code via LLVM, multiplatform, and even Kotlin for JavaScript! It’s not just a language, but an ecosystem!! 🧡

Kotlin Census 2019

Kotlinlang.org

Golang or Go

Golang from vertica.com

I’ll be honest, the reason I became interested in Go initially was because of the cute mascot. I mean, it’s such a goofy looking gopher!

The first version was announced in March 2012 by Google, where it was created by Ken Thompson, Rob Pike and Robert Griesemer. Why do I need to mention their names? Oh because these guys collectively are responsible for the Unix Operating System, UTF-8 standard and code generation for the V8 Javascript engine. No biggie.

The language, which is open source, has increased in popularity over the last few years because:

* Has a high runtime efficiency (like C++) with better readability

* High-performance networking and concurrency is built-in through coroutines and channels

* It has a remote package management system and really good documentation

* The compiler produces statically linked binaries without any external dependencies, so it can run anywhere.

* The language on purpose doesn’t support things like classes, implicit type conversion which simplifies the design and decreases the complexity of the language

Golang.org

Go.dev

Rust

Rust from rust-lang.org

I would love to learn Rust someday. It has been winning “the most loved programming language” in the Stack Overflow Developer Survey since 2016. It was created by Mozilla Research with the first stable release in May 2015. Since then it has jumped in rankings and is used to create from entire operating systems to anonymous networks.

StackOverflow Developer Survey

C was the first language I learned and this language is C on steroids. Some of the cool features are:

* Built for highly concurrent and highly safe systems

*Has a resource acquisition is initialization (RAII) memory management protocol, which leads to better memory management than most programming languages with a garbage collector.

* Ownership system for variables which enforces readers-writer lock.

* Designed to be memory safe and does not permit dangling pointers, null pointers or data races.

* Really good documentation

Rustlang.org

Image taken from kriserickson.github.io

Some people might be fuming that I left out Typescript. I haven’t played with Typescript and even though it has risen in popularity and has a lot of momentum, the only advantage I saw being mentioned again and again was JavaScript with types. In my opinion, there need to be more benefits than just types for more developers to move to Typescript. But I’ll be happy if I’m proven wrong.

Thanks for taking the time to read and please share if you found it useful! 🤘

--

--