The Others: CoffeeScript, Dart, TypeScript...

Javascript is almost a ubiquitous language. In a way it is comparable to C in its heyday. It is the language you need to know, or at least be aware of these days. Besides being a handy language for displaying various doodads on your site (ie. a lá jQuery) it is used for application development. There are even ways to program embedded systems using it (see noduino for an example).

The language isn't without its quirks. As a result various alternative languages compiling to JavaScript have emerged. Usually they provide some missing functionality and implement language concepts of their own. If you want a use OOP-style, or get rid fo nasty callbacks, or add some strict typing to your functions? Well, should definetely check these languages.

For instance if you are into classical OOP instead of prototypal and want some syntactical sugar, you might enjoy CoffeeScript. In case you wish to have a stricter typing system, you could find Dart or TypeScript interesting. Those that enjoy functional programming, could perhaps enjoy ClojureScript or Roy. The following list contains various alternatives. You do not have to stick with vanilla JavaScript unless you want to. It does not hurt to know JavaScript well but having higher level options available is always a good thing.

1
8139 986 4.42

CoffeeScript

CoffeeScript is a little language that compiles into JavaScript. Underneath all those awkward braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

2
5.00

Dart

Dart is a class-based, object-oriented language with lexical scoping, closures, and optional static typing. Dart helps you build structured modern web apps and is easy to learn for a wide range of developers.

3
5.00

TypeScript

TypeScript is a language for application-scale JavaScript development. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source.

4
2372 223 5.00

ClojureScript

ClojureScript is a new compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler.

5
907 57 5.00

Opal

Opal is a Ruby to JavaScript compiler.

6
484 30

IcedCoffeeScript

IcedCoffeeScript is a superset of CoffeeScript. The iced interpreter is a drop-in replacement for the standard coffee interpreter; it will interpret almost all existing CoffeeScript programs. IcedCoffeeScript (ICS) adds two new keywords: await and defer. These additions simply and powerfully streamline asynchronous control flow, both on the server and on the browser. Say goodbye to callback pyramids; say adios to massive code rewrites when synchronization requirements change slightly. Say hello to clean, readable, maintainable control flow for network and asynchronous operations!

7
739 29

LiveScript

LiveScript is a language which compiles to JavaScript. It is a fork of Coco which is in turn derived from CoffeeScript. Like those two it has a relatively straightforward mapping to JavaScript. LiveScript is Coco but much more compatible with CoffeeScript, more functional, and more feature rich. LiveScript aims for increased expressiveness and code beauty. While adding features to assist in functional style programming, LiveScript also deeply supports imperative and object oriented programming, and has an optional class system with inheritance, calls to super, and more.

8
150 12

Kaffeine

Kaffeine is a set of extensions to the Javascript syntax that attempt to make it nicer to use. It compiles directly into javascript that is very similar, readable and line for line equivalent to the input (you can beautify if you like).

9
547 51 5.00

Roy

Roy is an experimental programming language that targets JavaScript. It tries to meld JavaScript semantics with some features common in static functional languages: * Damas-Hindley-Milner type inference * Whitespace significant syntax * Compile-time meta-programming * Simple tagged unions * Pattern matching * Structural typing * Monad syntax

There is one language to rule them all: Javascript. It might not be ideal but it is the standard on the frontend side at least. Languages above provide alternatives to vanilla JavaScript and may be beneficial at times. Larger projects, such as Dart (supported by Google) and TypeScript (supported by Microsoft) have some serious backing behind them. CoffeeScript is obviously really popular these days and source maps make it even easier to use than before. If you are growing tired of JavaScript and wish to try something different, at least you have options. Experiment, give alternatives a go. You just might get surprised.

Published by DavertMik on 2012-12-10 14:20:40

More to read

Comments