August 15, 2012

10 Programming Languages That Can Redefine IT

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.

1. Go

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.

2. Dart

JavaScript is used to add basic interactivity to Web pages, but doesn’t work well when the application has thousands of lines of code. That's why Google created Dart. It hopes this will change the way Web programming is done.

Where JavaScript is a prototype-based language, objects in Dart are defined using classes and interfaces, as in C++ or Java. It also uses C-like syntax and keywords. Dart also allows programmers to optionally declare variables with static types. Dart is designed to be familiar, dynamic, and fluid as JavaScript and also allow developers to write code that is faster, easier to maintain, and less vulnerable to bugs.

Currently the only way to run client-side Dart code so far is to cross-compile it to JavaScript. Even then it doesn't work with every browser.

3. Ceylon

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.

4. F#

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.

5. Opa

Opa proposes an entirely new paradigm for Web programming. In an Opa application, the client-side UI, server-side logic, and database I/O are all implemented in a single language, Opa. This is done through a combination of client- and server-side frameworks. The Opa compiler decides whether a given routine should run on the client, server, or both, and it outputs code accordingly. For client-side routines, it translates Opa into the appropriate JavaScript code, including AJAX calls.

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

6. Fantom

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).

7. Zimbu

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.

8. X10

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.

9. haXe

haXe is a multiplatform language that can target diverse operating environments, ranging from native binaries to interpreters and virtual machines.

Developers can write programs in haXe, and then compile them into object code, JavaScript, PHP, Flash/ActionScript, or NekoVM bytecode today.The haXe syntax is C-like, with a rich feature set. Its chief advantage is that it negates problems inherent in each of the platforms it targets. For example, haXe has strict typing where JavaScript does not; it adds generics and type inference to ActionScript.

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.

10. Chapel

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.

Post a Comment