JavaScript is the only language browsers understand, but JS compilers and converters make it possible to code in a variety of languages and still deploy the result anywhere.
Browse the categories below to find something new to try:
These are, for the most part, languages that don't have their own runtimes or run as executables, instead they've been made to compile to JavaScript and run either in the browser or on some other JavaScript host. Some are backward-compatible supersets of JavaScript, others are hybrid versions of existing languages. CoffeeScript is the most popular of these and has many derivatives.
Caffeine A dialect of CoffeeScript that support packages and classes import, useful for browser applications.
CoffeeScript An alternative syntax for JavaScript inspired by Ruby, Python and others.
GorillaScript A compile-to-JavaScript language designed to empower coders whilst also preventing some common programming errors.
Ham-Script An altJS language that's very similar to JavaScript but offers some additional features.
heap.coffee A dialect of CoffeeScript that offers a C-like type system with manual memory management.
IcedCoffeeScript A CoffeeScript dialect that adds support for await and defer keywords which simplify async control flow.
Jack A language that emphasizes simplicity, fun and productivity.
JMacro An untyped mixture of JavaScript and Haskell syntax that bridges a gap between those two languages. Can be used in a Haskell environment or run as a standalone compiler.
JS11 [complete but currently inactive] A flexible set of syntax transformations that all compile line-for-line to proper JavaScript equivalents.
Kaffeine Progressive enhancement of JavaScript, aimed at professionals.
LittleSmallscript A project with philosophical similarity to CoffeeScript, except that the language syntax is based on Little Smalltalk.
LispyScript A JavaScript with Lispy syntax and Macros.
LiveScript Coco but much more compatible with CoffeeScript, more functional, and more feature rich.
LLJS "bastard child of C and JavaScript" that offers explicit memory management and other C-like features in a typed dialect of JavaScript. Research project.
Move A simplified language intended for new programmers.
pogoscript Language that emphasises readability, handles async control flow nicely, is friendly to domain specific languages and compiles to regular JavaScript.
Sibilant An expandable JavaScript-like language inspired by Lisp.
ToffeeScript A dialect of CoffeeScript that support Asynchronous Syntax, Symbol and Regexp operator =~.
TypeScript Microsoft's open source expansion of JavaScript with Visual Studio Intellisense to make building typed JS applications easier.
Synchronous to Asynchronous (CPS)
async.js Async utilities for Node.js and the browser.
Continuation.js A lightweight JIT compiler for simplifying asynchronous JavaScript programming with no runtime dependences. It supports both Node.js and browser-side JavaScript and is compatible with CoffeeScript (also TypeScript, and any other scripts compile to JS).
Jscex Write simple JavaScript code, execute it asynchronously by compiling to monadic form. Works in any ECMAScript 3 engines directly.
jwacs JavaScript With Advanced Continuation Support.
mobl Screen-driven language and toolset for building mobile web apps.
NarrativeJS JavaScript extension with asynchronous futures and promises.
StratifiedJS JavaScript plus structured concurrency.
Streamline.js Uses underscore (_) to stand for callbacks. This fork preserves line numbers for debugging.
TameJS From OkCupid, a cleaner way to write async JavaScript.
Wind.js Wind.js is an advanced library which enable us to control flow with plain JavaScript for asynchronous programming (and more) without additional pre-compiling steps.
JS2 Object-oriented JavaScript with syntactic sugar (curry, foreach, property). Released as a Ruby gem.
Mochiscript Object-oriented JavaScript with syntactic sugar. Released as a Ruby gem.
Objective-J Shares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset.
Restrict Mode Tightens up the behavior of several JavaScript operators, including ==.
Six Six is a language super-set of JavaScript that enables new syntactic features from the 6th edition of ECMAScript to be used, through a transpiler, in your scripts today.
8ball Specifically targets the V8 engine, and transforms a partial subset of Ruby into JavaScript.
ColdRuby A Ruby 1.9 MRI bytecode compiler and JS runtime. (includes a C++ runtime incorporating the V8 engine for native execution.)
HotRuby Runs opcode, compiled by YARV on Ruby inside a web browser or in Flash.
Opal A Ruby to JavaScript compiler created by Adam Beynon, with a tiny runtime that can be used in any JS environment. Has custom integration with jQuery, Node.js and Rails.
Quby Used for game coding site, not open source (requires HTML5).
Ruby-related Libraries
RubyJS Endorsed by Yukihiro (Matz) Matsumoto, creator of Ruby. A JS library that ports the code-lib functions of Ruby to JavaScript, yielding an R object that can be used as an alternative to libraries like Underscore.js. Integrates nicely with CoffeeScript syntax.
Smart Mobile Studio [commercial] Object Pascal to JavaScript compiler and Delphi like IDE that brings classes, inheritance, interfaces and more to JavaScript.
Elevate Web Builder [commercial] Visual development tool for web applications that compiles standard Object Pascal source code into JavaScript.
Go
Go2js Line-to-line translator from Go to JavaScript.
Multitarget
Haxe compiles to several platforms (C++, Flash, JS, Neko, PHP).
Hence "heavily work-in-progress" stack-oriented language with English-like syntax (runs on PHP).
Fantom Evolutionary object-oriented language emphasizing succinct and effective APIs (JVM, CLR, JS).
LZX (OpenLaszlo) A XAML-like language used to design applications on what's described as "the only run-anywhere, no lock-in rich Internet platform. Period." OpenLazslo (originally Lazslo Presentation Server) outputs to a variety of formats including Flash.
Monkey [commercial] Massively multi platform language (HTML5, Native OpenGL/OpenAL (Windows + Mac), Android, Flash, iOS, XNA).
Clue C language compiler to different runtimes (Lua, JS, Perl 5, C, Java, CL).
jsc [experimental] Recompile your .NET assembly to JavaScript, ActionScript, PHP or Java.
mobl The new language for programming the mobile web.
E Compiles E to JS. E is a secure distributed persistent pure object language.
Sugar new programming language designed to replace JavaScript
for client-side (and server-side) web development.
Visual JavaScript Tools
Blockly web-based, graphical programming language. Users can drag blocks together to build an application.
Illumination [Commercial] Visual, cross-platform tool creates apps for Android, iPhone, iPad, Desktops and HTML5 or Flash websites. The I language underlies the tool.
asm.js A research project at Mozilla that aims to formally define the subset of JavaScript that compilers like Emscripten and Mandreel already generate.
Agda A dependently typed functional programming language and mechanized proof assistant.
browserl An Erlang Emulator written in JavaScript.
Dart A class-based programming language for creating structured web applications.
js.js A JavaScript JavaScript interpreter. Instead of trying to create an interpreter from scratch, SpiderMonkey is compiled into LLVM and then emscripten translates the output into JavaScript.
JavaScript Optimizers
Closure Compiler An optimizing compiler. Can generate a (line/col)-number mappings file.
UglifyJS JavaScript compressor/minifier written in JavaScript. It also contains tools that allow one to automate working with JavaScript code.