Watch out these 5 fresh and functional programming languagesStanza 0.8.22Resembles: Python, Ruby, and to some extent the family of functional languagesCurrent platforms: Linux, Mac, WindowsNim 0.13Resembles: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon (by the language designers’ own admission)Current platforms: In theory, any platform with a C compiler, but the binaries are currently only available for WindowsCrystal 0.17.4Resembles: RubyCurrent platforms: Linux, OS XNit 0.8Resembles: Python, Pascal, RubyCurrent platforms: Linux, OS X; Windows support is possible through Cygwin, but at an important performance penaltyPony 0.2.1Resembles: Python (simple syntax), Erlang (powerful concurrency system)Current platforms: Linux, OS X, Windows
It is not about the language all the time. It is at times also about the environment a language offers. Google’s Go and Mozilla’s Rust didn’t just offer new syntax, but also new tool chains and plans to take care of the projects. Here are five late-breaking newcomers to the field, all offering innovative tactics to manage the problems found in modern software development, whether practical or theoretical.
Stanza 0.8.22
Also known as L.B. Stanza, this project is being developed at the University of California, Berkeley, and uses the philosophy of strong splitting up of worries within the language. Stanza gathers to native code, but does not need specifying types. Add them, and the language automatically carries out more robust code checking on your behalf. It also uses an object system that doesn’t employ classes. It works with techniques and function overloading instead and makes it simple to hire co-routines for concurrency.
Resembles: Python, Ruby, and to some extent the family of functional languages
Current platforms: Linux, Mac, Windows
Nim 0.13
It is no longer known as Nimrod. Nim takes some of Python’s ideas such as clean syntax, convenience, access to the language’s own syntax tree and makes them available in a language that’s statically typed and can execute its own garbage collection and memory management. Among other features are manually defined operators (you don’t have to burden existing ones), macros, and assembling Nim apps to stand-alone binaries with no dependencies.
Resembles: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon (by the language designers’ own admission)
Current platforms: In theory, any platform with a C compiler, but the binaries are currently only available for Windows
Crystal 0.17.4
Since its syntax may be patterned after Ruby, Rubyists can get on board instantly. However, Crystal compiles to native code unlike Ruby. It also has static type checking that does not need type specifications in variables or method arguments, and direct bindings to C code. Until now, it does not have parallelism, which means that everything is completed in one thread. While it has concurrency controls, parallelism is on the future to-do list, along with a proper package manager.
Resembles: Ruby
Current platforms: Linux, OS X
Nit 0.8
Another Python-esque language, Nit was developed to be forthright to work with and to interface with existing C/C++, Java, and Objective-C code. It is also interesting that Nit supports Android as a compilation target even though it is still in the early stages of its development. Therefore, it is a potential alternate language for that platform.
Resembles: Python, Pascal, Ruby
Current platforms: Linux, OS X; Windows support is possible through Cygwin, but at an important performance penalty
Pony 0.2.1
Pony was designed to find a specific problem that comes up often in software development: how to work with abstractions like objects without running into snags like memory safety, race conditions, or deadlocks. By using static typing and an “actor” object type, Pony tries to address this. So, it is easier to reason about what items are and the order in which they are accomplished.
Resembles: Python (simple syntax), Erlang (powerful concurrency system)
Current platforms: Linux, OS X, Windows
Though any of the above five programming languages are not expected to take on the might of Java, C++ or Python in foreseeable future, programmers keep developing new languages to search for that perfect code. In long run only one of the above five may actually live long enough to be counted as a good programming languages by peers.