10 surging programming languages
An enormous amount and diversity of programming languages are currently used. But, for better or for worse, most organizations are loyal to a small subgroup of the usual ones (C++, JavaScript, PHP, Ruby, etc.) when faced with any programming-related problem.
However, some problems require new refocusing and tools. This article presents 10 programming languages that are making significant headway in recently discovered uses, creations or reinventions. This range encompasses from general purpose languages to other highly specific ones, with roots extending to Lisp and Java, but each could have a major impact on the development of modern programming.
Ceylon
Arose as a response to many of the most famous weaknesses of Java. Instead of XML, it uses a declarative syntax similar to JSON for data with a tree structure and uses static types, a module system, and supports some structures that are inexistent in Java, such as sequence, intersection and union types.
Clojure
A functional programming language that is also designed for concurrence, adapted to multicore or widely distributed applications. It is most adequate for programmers with a mathematical background, but bearing in mind the growing success of the functional programming paradigm, Clojure is worth a closer look, beyond its program type.
Egison
A functional language designed to allow for expressing the coincidence of patterns in different ways, depending on the data type (for lists vs. sets); for managing non-linear patterns, such as multiple occurrences of the same variable in a pattern; and for creating functions that receive and return patterns.
Groovy
Essentially, this is a syntactic extension of Java that runs in JVM and uses Java library classifications. It is loaded with features that are missing in the native form of Java: mainly static and dynamic types, but also for operator overloading, support for regular expressions and a "?" operator for secure verification of null objects.
Hack
Facebook created its own PHP runtime known as HHVM. The new language, Hack, a Facebook spin-off, maintains the PHP fast development cycle and simplicity of use, adds static object classes and lambda expressions, and is written in OCaml for greater security and durability. Theoretically, migrating programs from PHP to Hack is easy.
Jeeves
Created to help programmers comply with privacy policies when moving data through an application. It goes further beyond determining whether a user may see a value by determining whether a user may see the values derived from that value. Policies on the creation and management of these types of data flows are created and managed separately, using the program itself.
Julia
Designed for technical and scientific computing, where parallel and distributed processing of numeric data is a way of life. Julia compiles a machine code with the help of a compiler based on LLVM, and in some of the key reference points surpasses Matlab, Mathematica and R by far.
Nimrod
A static, imperative programming language that tries to offer a programmer maximum power without compromising runtime efficiency. Nimrod compiles C (with C++ and Objective-C as options) and requires neither a virtual machine nor runtime. The language also allows the user to define operators and macros.
OCaml
Functional, imperative, object-oriented programming. Its static programming type cannot compete against those that place their bets on the dynamic type, but a serious issue for which it is worth considering is that other languages are starting to arise from it, such as Microsoft C#.
Racket
A variant of Lisp, designed to be sufficiently powerful for creating languages, in addition it is simple and robust for use in programming traditional applications. Compared with other languages that are similar to Lisp, it includes a compiler, wherefore it is possible to add language features as if they were native Racket constructions.