It is practically impossible for a developer to learn all the languages which are available today, yet new ones are emerging in high frequency. This can be because of the development of new technologies like multicore CPUs, cloud computing, mobility, and distributed architectures, which create newer challenges for the developers. To keep up with them, it is better to develop a language from scratch than to make changes to the existing ones.
Here are 10 latest programming languages which approach the art of software development from a fresh perspective, tackling a specific problem or a unique shortcoming of today's more popular languages. Many of them are capable of changing programming in subsequent years.
Go, which is easy to program in, is a general-purpose programming language suitable for everything from application development to systems programming. It's more like C or C++. But like Java and C#, Go includes modern features such as garbage collection, runtime reflection, and support for concurrency. Go’s development is still in progress.
Many believe that Ceylon is meant to be a Java killer, though its developer Gavin King denied it. King is also the creator of the Hibernate object-relational mapping framework for Java. He likes Java, but he thinks there are a lot of shortcomings, like its lack of first-class and higher-order functions, its poor support for meta-programming, clumsy SDK and absence of a declarative syntax for structured data definition. He developed Ceylon with an aim to solve all these problems.
King doesn’t plan to develop a new Virtual Machine but will use JVM. Though, he intends to create a new Ceylon SDK to replace the Java SDK.
F#, a Microsoft language is designed to be both functional and practical unlike pure functional languages, Lisp and Haskell. Because F# is a first-class language on the .Net Common Language Runtime (CLR), it can access all of the same libraries and features as other CLR languages, such as C# and Visual Basic.
Somewhat similar to OCaml, F# has numeric data types that can be assigned units of measure to aid scientific computation. F# also offers constructs to aid asynchronous I/O, CPU parallelization, and off-loading processing to the GPU.
F# ships with Visual Studio 2010 with the compiler and core library available under the Apache open source license.
Opa's runtime environment bundles its own Web server and database management system, which can't be replaced with stand-alone alternatives. Opa is open source and available now for 64-bit Linux and Mac OS X platforms, with further ports in the works
Fantom is designed for cross-platform portability, allowing you to choose platforms like Java or .NET in the middle of a development. The Fantom project includes not just a compiler that can output byte code for either the JVM or the .Net CLI, but also a set of APIs that abstract away the Java and .Net APIs, creating an additional portability layer.It adds easy syntax for declaring data structures and serializing objects. And it includes support for functional programming and concurrency built into the language.
Fantom is open source under the Academic Free License 3.0 and is available for Windows and Unix-like platforms (including Mac OS X).
Zimbu aims to be a fast, concise, portable, and easy-to-read language that can be used to code anything from a GUI application to an OS kernel. It borrows features from almost all programming languages. It uses C-like expressions and operators, but its own keywords, data types, and block structures. It supports memory management, threads, and pipes. The Zimbu compiler outputs ANSI C code, allowing binaries to be built only on platforms with a native C compiler.
IBM Research is developing X10, a language designed specifically for modern parallel architectures, with the goal of increasing developer productivity 10 times.
X10 handles concurrency using the partitioned global address space programming model. Code and data are separated into units and distributed across one or more places.
X10 code is similar to that of Java. The X10 compiler can output C++ or Java source code.
The compiler and runtime are available for various platforms, including Linux, Mac OS X, and Windows. Additional tools include an Eclipse-based IDE and a debugger, all distributed under the Eclipse Public License.
haXe is a multiplatform language that can target diverse operating environments, ranging from native binaries to interpreters and virtual machines.
Although still under development, haXe is used commercially by its creator, the gaming studio Motion Twin, so it's no toy. It's available for Linux, Mac OS X, and Windows under a combination of open source licenses.
Chapel is part of Cray's Cascade Program, an ambitious high-performance computing initiative funded in part by the U.S. Defense Advanced Research Project Agency (DARPA).Designed keeping supercomputing and clustering in mind, its goals are abstracting parallel algorithms from the underlying hardware, improving their performance on architectures, and making parallel programs more portable.
Chapel draws its syntax from numerous sources like C, C++, Java, Fortran and Matlab. Its parallel processing features are influenced by ZPL and High-Performance Fortran, as well as earlier Cray projects.
It also supports "multi resolution programming," which allows developers to prototype applications with highly abstract code and fill in details as the implementation becomes more fully defined.
At present, it can run on Cray supercomputers and various high-performance clusters, but it's portable to most Unix-style systems (including Mac OS X and Windows with Cygwin). The source code is available under a BSD-style open source license.