![image](http://jster.net/uploads/repository/CoffeeScript-1350950057.png)
Но у яваскрипта есть свои заковырки. Прототипная модель объектов, динамические типы, колбек-функции, всё это, можно сказать, на любителя. В результате начали появлятся альтернативные языки, предлагающие свои подходы к реализации тех или иных концептов. В этом посте перечислены самые популярные альтернативы теплому ванильному яваскрипту.
Например, если вам хочется классического ООП, вместо прототипов, или вы хотите больше синтаксического сахара, посмотрите в сторону CoffeeScript. Если вам нужна строгая типизация вам могут понравиться Dart или TypeScript. К слову сказать, Dart работает нативно в Google Chrome и на некоторых тестах показывает 50% прирост производительности по сравнению с обычным javascript. Для любителей функциональго программирования подойдет ClojureScript или Roy. Вариантов масса, и вы не обязаны писать всё на чистом яваскрипте, даже если разрабатываете фронтенд под веб или работаете с node.js.
1. CoffeeScript
![image](http://jster.net/uploads/site-coffeescript.org-.png)
CoffeeScript это небольшой язык, который транслируется в Javascript. Рубистам он кажется похожим на руби, питонистам он похож на питон, и конечно же, он похож на яваскрипт. CoffeeScript старается упростить использование яваскрипта, сохранив все его сильные стороны.
Официальный сайт
GitHub
2. Dart
![](http://jster.net/uploads/site-www.dartlang.org-.png)
Dart это объектно-ориентированый язык с полноценной системой классов, лексическими скоупами, замыканиями, и опционально — статической типизацией. Dart помогает создавать структурированные веб приложения и легок в изучении для широкого круга разработчиков.
Официальный сайт
На Хабре
3. TypeScript
![image](http://jster.net/uploads/site-www.typescriptlang.org-.png)
TypeScript отличается от JavaScript возможностью явного определения типов (статическая типизация), поддержкой использования полноценных классов (как в традиционных объектно-ориентированных языках), а также поддержкой подключения модулей.
Официальный сайт
На Хабре
4. ClojureScript
ClojureScript — это расширение языка Clojure, с возможностью компиляции в Javascript. Напоминает Lisp.
GitHub
5. Opal
![image](http://jster.net/uploads/site-opalrb.org.png)
Компилятор из Ruby в Javascript.
Официальный сайт
GitHub
6. IcedCoffeeScript
![image](http://jster.net/uploads/site-maxtaco.github.com-coffee-script.png)
IcedCoffeeScript это надстройка над CoffeeScript, упрощающая контроль за асинхронными операциями. Вместо колбеков вводятся два новых оператора: await и defer.
Официальный сайт
GitHub
7. LiveScript
![image](http://jster.net/uploads/site-livescript.net.png)
Ещё один форк от CoffeeScript. Добавляет поддержку функционального стиля программирования, а также вводит небольшие улучшения в текущую ООП-модель.
Официальный сайт
GitHub
8. Kaffeine
![image](http://jster.net/uploads/site-weepy.github.com-kaffeine-.png)
Расширяет синтакс яваскрипта, не изобретая ещё один язык программирования. Код на Kaffeine строка к строке соответствует скомпилированому яваскрипт коду. Данная фича должна существенно упростить отладку приложения.
Официальный сайт
GitHub
8. Roy
![image](http://jster.net/uploads/site-roy.brianmckenna.org-.png)
Экспериментальный язык программирования, преобразующий код в Javascript. Включает в себя возможности статичных функциональных языков.
Официальный сайт
GitHub
Ну и конечно, есть ещё один язык, самый главный в этой семье. Это, конечно же, сам Javascript. Как ни крути, а именно он будет выполнятся в браузере. Тем не менее, для использования в больших проектах стоить посмотреть в сторону Dart (поддерживаемый Google) или TypeScript (поддерживается Microsoft). CoffeeScript очень популярен в последнее время, а с помощью source maps работать с ним стало ещё проще. Если вы устали от яваскрипта или хотите попробовать чего-то новенького, милости просим.
PS. Обзор подготовлен с использованием каталога javascript-библиотек Jster.Net. Сейчас в нем уже 981 билиотека для фронтенд-разработки.
PS/2 Ещё больше альтернатив на сайте AltJS