While open web standards are about freedom and access, there is one freedom that open web developers are not afforded by the standards, and that is the choice of languages used for web development.
Or do they?
CoffeeScript has been inspired by Ruby, Python and Haskell, so you will find borrowed features and syntax from those languages. The code sample is fairly reminiscent of the above languages for those familiar with them:
For those looking from a break from the usual curly braces and C-like syntax, ClojureScript will be a fresh breath of air. It is a dialect of List, and thus has a completely different syntax. Here, take a look at the same example, done in ClojureScript:
The "main" function of the application class will be called automatically on launch. Here too the code is rather too long (over 300 lines) to include in the article, however the relevant bits follow:
Dart includes Classes and interfaces for more structures web applications, and an optional types that can help make the code easier to understand and optimise. Dart applications have a "main()" function that is executed to begin with. Dart also has a system of libraries that will allow easy reuse of code.
Now let us take a look at the same code once again from a Dart perspective:
RubyJS and Pyjamas are ports of GWT that work with the Ruby and Python languages respectively. So if you are interested in coding in Java, Python, or Ruby you should check out GWT, Pyjamas and RubyJS respectively.
To create a web application, you write a code in Opa, which then compiles to an application. That application now handles bother the server side (handling requests, accessing the database etc.) and the client side (the user interface, sending requests to the server etc.).
Both the code that has to run on the server, and the code that has to run on the client will be written as part of the same application, and Opa will automatically create the HTML-based interface with jQuery for interactivity. What part of your code goes to the server and what to the client is managed automatically!