6 New Programming Languages To Be In-Demand In 2019

By Kimberly Cook |Email | Dec 20, 2018 | 44361 Views

1. Go

Go programming language was developed by Google to meet the needs of a world defined by multi-core processors, networked systems, computer clusters, and web applications.

It is designed to be quick to write, with all modern features such as concurrency and garbage collection built in. Go's design also aimed to make managing dependencies easier, and to enable applications to scale up more readily.

Sum and product of an array - GO programming
package main
import ??fmt??
func main() {
sum, prod := 0, 1
for _, x := range []int{1,2,5} {
sum += x
prod *= x
fmt.Println(sum, prod)

Reason to Learn:
It is easy to write Go applications and to install them as they are compiled to a single executable rather than requiring dependencies to be installed alongside them.

Go applications can take advantage of modern multi-core processors without too much tinkering, making it suitable for creating web applications for use by large numbers of concurrent users. It was developed by Google, so there is plenty of support and active development.

And it can run on Windows, Linux, Mac and even on small devices like the Raspberry Pi.

2. Clojure

Clojure (born in 2007) is one of the several languages built on the virtualization part of Java, the JVM, making it compatible with Java code and the Java runtime environment.

Clojure compiles to Java and there is another version implementation, ClojureScript, which compiles to JavaScript.

Clojure doesn't look anything like Java or JavaScript. There are no curly braces ((((( but in their place are lots of parentheses ))))). You tend to read statements right-to-left rather than left-to-right, so to add 2 and 3 you write (+ 2 3), and you use recursion in place of loops.

Clojure is a Lisp (List processing) language meaning that it treats data and the code itself as linked lists and tends to make a lot of use of macros.
This code fragment computes the sum and product of an array of integers:

Clojure - sum and product of an array

(defn sum [vals] (reduce + vals))
(defn product [vals] (reduce * vals))

Reason To Learn:
If you want to flirt with functional programming (FP) but don't want to go all the way. functional programming makes the most of the ability of modern multi-core processors to support concurrency, but pure FP languages like Haskell are too much of a leap for some.

Clojure is a general-purpose language, like Java, with which it is compatible. Unlike Java, though, the syntax is simple, consistent and concise. Plus you can interact live with a running program to see what the separate functions do rather than having to recompile and run it after every change.

3. Rust

Rust was voted Most Loved Language in the 2016 StackOverflow developer survey and could be the answer to your quest. It was developed by Mozilla as an alternative to C++ and enjoys support from Samsung. It is designed to have similar capabilities in terms of memory management and performance as C++ but with more checks at compile time to avoid expensive bugs caused by dangling pointers, buffer overflows and the like. This should make code maintenance a lot easier in collaborative long-term projects.

Decentralized networking company Maidsafe spent six months reducing its entire codebase of 500,000 C++ lines to a compact 30,000 lines of Rust, increasing stability at the same time.

Sum and product of an array in Rust


fn main() {
let arr: [i32; 9] = [1i32, 2, 3, 4, 5, 6, 7, 8, 9];
let sum = arr.iter().fold(0i32, |a, &b| a + b);
let product = arr.iter().fold(1i32, |a, &b| a * b);
println!(??the sum is {} and the product is {}??, sum, product);

Reason To learn:
If you're a systems developer writing low-level software intended to have a long lifespan, and you want something safer and more modern than C / C++. Rust is well supported for a new language and has a growing number of developers and libraries.

4. Julia

This language was designed to allow data scientists and mathematicians to do everything in one language rather than having to resort to two or more.

For example, they might typically use Matlab to code linear algebra, R to crunch statistics, C to iterate functions rapidly and a general purpose language like Python to glue the whole thing together, all of which struggles to scale up to big data levels.

Julia is intended to offer the ease of use and productivity of Python with the mathematical prowess of Matlab and the performance of C so you can do it all in one. It supports parallel distributed computing and can be used interactively with data science notebooks like Jupyter. It also supports Lisp-like macros.

Sum and product of an array
julia> sum([4,6,8])
julia> +((1:10)?)
julia +([1,2,3]?)
julia> prod([4,6,8])

Reason To Learn
You're an analyst or data scientist working with big datasets. You know Python already and Julia's syntax is similar, so there's not much of a learning curve.

The libraries offer similar machine learning and maths capabilities to Python, and some extra ones too, and it can call Python functions and Fortran and C libraries if required. Plus it has a built-in packet manager for installing add-on functionality and external libraries.

5. Swift

Swift is a general-purpose programming language created by Apple as a modern alternative to Objective-C. It is designed to be fast for systems programming, safe in terms of error checking, and easy to use. It was made open source and available under the Apache Licence 2.0 for Apple's platforms and Linux at the end of last year.

Sum and product of an array
let a = [1, 2, 3, 4, 5]
println(a.reduce(0, +)) // prints 15
println(a.reduce(1, *)) // prints 120

println(reduce(a, 0, +)) // prints 15
println(reduce(a, 1, *)) // prints 120

Reason To learn
You're an iOS developer and you want to move away from Objective-C. As a more modern general-purpose language, you should eventually be able to do most things in Swift, more quickly and with fewer errors.

6. Kotlin

Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.  Kotlin uses aggressive type inference to determine the type of values and expressions for which type has been left unstated. This reduces language verbosity relative to Java, which demands often entirely redundant type specifications. It is now being widely used for android app development.

Reason To learn
You're an Android developer and you want to move away from Java. As a more modern general-purpose language, you should eventually be able to do most things in Kotlin, more quickly and with fewer errors.

Source: HOB