- Go
New Programming Languages - GO
Go programming language was developed by Google to meet the needs of a world defined by multi-core processors, networked systems, compute 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 programmming
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.
- Clojure
New Programming Languages - Clojure
Clojure (born in 2007) is one of the several languages built on the virtualisation 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
- Rust
New Programming Languages - 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.
Decentralised networking company Maidsafe spent six months reducing it’s 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
#![feature(iter_arith)]
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.
Good info
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit