The ECMA262 Standard, ratified after Netscape and Microsoft (mostly) agreed to make JavaScript and JScript interoperable.

Ways To Avoid Writing JavaScript

I’ve taken to looking for alternative ways to develop in JavaScript that don’t require me to put up with its syntax and overall insanity. Here’s a few I like (mostly compilers, since that’s what makes the most sense for me):

Category Date Link Notes
Compilers Jun 5 Opal A Ruby transpiler
Nov 18th Elm A functional language that compiles to JavaScript
wisp A homoiconic LISP dialect with Clojure syntax and macros
pythonium A Python 3 to JavaScript translator


Most of these are library-independent. Check my jQuery page for more, since there’s an entire sub-culture that believes it to be JavaScript programming in and by its own…

Category Date Link Notes
UI elements Aug’15 dragula a drag and drop library
Jul’15 lazysizes For lazy image loading
May’14 Framerjs For designing interactive prototypes
Oct’13 Odometer A library for counters with smooth transitions
rainbow.js A slim progress bar
nprogress Another slim progress bar
Jun’12 Mousetrap a very nice way to handle keyboard shortcuts
Feb 26’11 Color Wheel A great color picker component
Sep 17 Roar Two Growl-like components done with MooTools
Window.Growl 2.0
Timeframe Amazing calendar widget with support for date range selection.
Data Binding Sep 18 knockout.sync.js A very nice Knockout extension that allows you to sync data among clients and backends
Canvas and Graphing Jan’14 glsl-transition A library that uses GL shaders for transitions
Oct 20’13 GoJS A commercial charting and diagramming library
Sep 18’13 svgjs A lightweight library for SVG handling
May 7’13 Two.js An intriguing API that supports a number of back-ends (svg, canvas and WebGL)
Feb 17’13 GoJS An amazing charting library with support for flowcharts, swimlanes, and a number of business process diagrams.
Sep 25’12 Ejecta A fast GL-backed canvas library for iOS
jsPlumb A Yahoo pipes-like library.
Jun 25’11 paper.js Amazing open source vector graphics scripting framework that runs on top of the HTML5 Canvas
Apr 21’10 Akibahara A wonderful set of small libraries to clone 8-bit era arcade games,
Jan 19’10 Highcharts A very comprehensive charting library.
Jan 1’10 Raphael An amazing vector library, with a charting companion that will knock your socks off.
Dec 3’09 Parcycle: A Particle System with HTML5 canvas Pretty damn amazing.
Nov 6’08 JavaScript Information Visualization Toolkit A pretty comprehensive set of resources
Dec 16’07 Safari Programming Topics
Firefox 1.1 Canvas Support
Timeline a draggable DHTML timeline widget
Forms and Input Oct 27’13 date A date parser that can take pseudo-natural language strings
Sep 20’13 focus-transition should be the default everywhere
Feb 1’13 Kalendae a very impressive, framework-agnostic date picker
Dec 16’07 Auto-Tab
JavaScript Calendar
HTML Tabbed Dialog Widget
XLoadTree dynamically loading tree control
Text Formatting Codeblock.js A nice way to provide code samples.
Feb 1’13 Rainbow A nice syntax highlighter
Jan 1’10 google-code-prettify A source code prettifier with support for multiple programming languages.
jsMath: A Method of Including Mathematics in Web Pages An amazing (re)interpretation of TeX
Oct 21’09 JavaScript Prettifier Simple to use and effective
Sep 17’09 To Title Case A port of Gruber’s title case script
Dec 16’07 Showdown a Markdown port
Highlight.js two interesting syntax highlighters
Syntax Highlighter
Diff Algorithm
Search Engine Keyword Highlight yes, I know it’s cheating – but it works fine when you don’t want to hack your back-end.
Tools May’12 javascript.tmbundle An indispensable TextMate add-on (the autocompletion features alone are priceless)
Apr’11 PhantomJS A complete WebKit web stack, made scriptable via JavaScript. Awesome for testing, rendering pages to raster formats, etc.
3D Mar’12 cannon.js An amazing physics engine.
Mar’11 adamia-3d A pure JS library with an interesting math component.
CopperLicht A full-featured 3D engine.
three.js Probably the current (best) bet to work with WebGL. (some interesting samples here
Toolkits Sep’14 js-csp All the fun of Clojure core.async without the beauty.
Oct’13 Riot.js An opinionated take on MVP
Oct’13 Minified.js A tiny replacement for jQuery/Zepto/etc.
May’13 Bookshelf.js A sane ORM.
Feb’13 PouchDB A local storage wrapper with the ability to work offline and sync with a remote source.
anima.js A tiny, but flexible animation library.
uilayer A very nice abstraction for managing content positioning and animation using layers (and 3D transforms).
Rekapi A keyframe animation library with tweening.
Aug’11 Underscore A small but powerful functional programming toolkit.
Mar’11 php.js Useful for porting across app logic.
Feb 20’11 CoffeeScript Sanity, restored.
Nov 7’09 Closure A compiler, library and toolchain by Google.
Dec 16’07 Taffy DB an interesting “database” library.
Prototype heavily driven by Rails
dojo Toolkit a UI toolkit for dynamic website implementation
Moo.fx very lightweight (3KB)
JQuery it’s everywhere these days.
Server-side Dec’14 Ducktape An embeddable JavaScript engine
May 16’10 node.js An event-oriented framework for doing I/O using Google’s V8 engine.
UI Frameworks Apr 10’10 UKI A simple UI kit for complex web apps that was used to do a complete mock-up
Nov 7’09 Cappuccino Utterly amazing, and used by very complex web apps like 280 Slides and Mockingbird
Media Dec 16’07 Smooth SlideShow Library
OpenLayers a map navigation UI
Ken Burns Slideshows
iPhoto-like image resizing using Javascript
GreyBox a Mac OS X like popup.
fadomatic cross-browser DIV fader
Walter Zorn vector drawing, graphing, and other amazing stuff
image cross fader
Development Apr 17’10 Learning Advanced Javascript An interactive tutorial.
Dec 16’07 Jash: JavaScript Shell
Escaping regular expression characters
JSLint an interesting lint adaptation for JavaScript
Lumberjack a set of logging utilities
JSAN CPAN for JavaScript, of a sort
Mouse Input Dec 16’07 Drag-and-Drop Sortable Lists
Drag-and-Drop Library
Mouse Wheel Programming
Pie Menus a nice Pie Menus Menus implementation.
Tables Dec 16’07 ActiveScripts Grid an impressive grid control
Sortable Table
Standartista Table Sorting
Sortable and Groupable Table
Ajax related Dec 16’07 LiveSearch the stuff I used on this site’s search box for a while
Everything about the XML HTTP Request intrinsic object that which is now being dubbed Ajax. I wonder how far we are from Tide.
JPSPAN a server-to- JavaScript bridge using the XML HTTP object and some very clever data conversion.
SAJAX a similar effort geared towards PHP


Associative Arrays in JavaScript

// Taken from:

function dict () {
    var keys = [];
    var values = [];

    return {
        get: function (key) {
            return values[keys.indexOf(key)]

        set: function (key, value) {
            var i = keys.indexOf(key);
            if (i === -1) {
                i = keys.length;
            keys[i] = key;
            values[i] = value;

        del: function (key) {
            var i = keys.indexOf(key);
            keys.splice(i, 1);
            values.splice(i, 1);

        keys: function () {
            return keys.slice();

        values: function () {
            return values.slice();

See Also

Plotly.js Open-Source AnnouncementThe Quest For a WYSIWYG Input ElementThe Verge's web sucksJavaScript
LISPClojure(Script)Editing TimePython
Go (lang)VisualizationA JS framework on every tableHubPress, a web application to build your Blog on GitHub
Getting Hy On Dokku With New RelicErlangPython Patterns - Server-Sent EventsMy Deep, Dark Secret
JavaScript for Automation Release NotesEnvironmental PicksRubyJavaScript for Automation Release Notes
WWDC 2014Meditation In C#TextilePHP
jQueryGame Mechanic ExplorerMy Neck Is Killing Me...WinJS: the Windows Library for JavaScript
iPhone and iPad DevelopmentEarly SpringTime MachineFrida code injection and tracing
Three TwistsWeapons For a More Civilized AgeAnglesIf Programming Languages Were Martial Arts
GhostAndroid App Development with ClojureGetting some ClojureCoder for Raspberry Pi
Re-using Individual FontAwesome GlyphsSummer HardwarePython Patterns, Take OneWhy mobile web apps are slow
PhantomJSInK 2.0GoingLight Table 0.4
JSONA Chequered PastvimTwitter Bootstrap
Qtzweb: A Quartz Composer to WebGL & JavaScript CompilerSkulptBrythonTwitter
MarkdownJavaScript Side EffectsGeddy - A Structured Node.js FrameworkAnother Working Year
XMPPA Big Slice of Raspberry PiChrome for iOSOn Coda 2
3D PrintingRStudioVarnishing RetinasBada Bing
Sencha Touch 2.0Farewell Composer, We Hardly Knew YeQuiet NightsTextMate
Tangle: reactive documentsStraight Talk on Event LoopsA Simple Frontend Strategy for Mobile WebappsA Simple Frontend Strategy for Mobile Webapps
Dart DisclaimerGiving QCRenderer a breatherLoki Render, RebootedSlimit
Five Updates1Password and Dropbox (security tweaks wanted)php.jsCSS Techniques
OtherWikisiPad SimulatorSerial NumbersJavascript Lorem Ipsum Generator
Tiny NodesJavaScript InfoVis Toolkit + WebGLDropping TextjQuery Mobile
So FarArs reviews Android 2.2 on the Nexus OneThe JavaScript InfoVis Toolkit 2.0 is out!Safari 5 tested: Chrome, Opera still have JavaScript edge
SmokescreenSite DesignsHTML5 presentationBookmarklets
MicrosoftGordon, a Flash runtime written in pure JavaScriptAnother World ported to JavaScript and the canvas tagSunburst Visualization at Overfloater
OpacityGrowlJavaScript InfoVis Toolkit Version 1.1.3Google Reader support
FontJazz - Embed fonts on web pagesAdSweep - An ad blocker for your favorite web browser (like Adblock)Tackling The Stupidity Of The DiggBarXUL Extensions and Add-Ons
SpectrumLong Missive From The Trenches Of ParentingBespin: Code in the CloudGraphviz
Doing Stuff, When I CanPre-lude2008 in Review, 2009 HazyTwitter Charts
Mobile SafariBridging the iPhone GAPjQuery, Microsoft, and NokiaHTTP
Announcing CappuccinoGoogle Chrome, Google's Browser ProjectThe birth of a faster monkeySqueeze me, Citrix...
HashiiTW - a TiddlyWiki for iPhoneActions Speak Louder Than WordsDelicious 2.0
jgrowlFive things that are still broken in browsers, ten years lateroursignal.comSproutCore
jQuery UI 1.5SquirrelFishProcessing.jsjsvi
I, for one, welcome our new diapered overlordsTweetWheelURL TriggerSafari 3.1
iCopy - Copy and Paste for your iPhone and iPod TouchThe Joy of WebpadsRegarding iPods, Developers and Attention SpansGoogle
Archives again, at lastSniff browser history for improved user experienceFancyZoom 1.0Tabulate
Kindling MobilityHOWTO: Write iSync Phone PluginsMail.appHumanized Messages for jQuery
PhotoShop-like JavaScript Color PickerJavaScript Tune UpsCoverFlowA Bank That "Gets" Online
The nPhonejQuery for JavaScript programmersWhat about Sun embracing JavaScript?Apple is not native to the web
The Wii Remote APIExt 1.1 ReleasedjQuery Chart Plugin DemoOnline Game: BrickShooter
iUI Music DemoYahoo! Pipes for Real MenPrototypeiPhone's AJAX SDK: No, thank you.
iMusings - the iPhone, Standards, and jQueryWiki Migration Notes - Platform SelectionThe Bug In FirebugFlash
GTDActionScriptFresh NewsWeekend Coding
TIBCO General InterfaceHalibuts and ShrimpsPrototype EpiphaniesTag, You're It
EXIFAjaxJohn GruberMac OS X
LaggingBuilding The Anti-WikiRails (Ruby on Rails)MochiKit
Resources:XMLAn Oddly Good Monday(Very) Odds and Ends
The Citrix Dashboard WidgetPlaceless GTDMorning News BreakMiscellaneous Hacktivity
PlayStation PortableMobile Comparison ShoppingA Quiet Day...Foundations of Ajax
News FlushReferrer Spam Prediction: Heavy DownpourNews Station Portable?XSLT
Back To WorkRelax, Me?Link ModeLink Mode
GISHalf a Day10.3.9 - Safari in Uncharted LandsCatching Up
Miss Congenial AllergyP2P.icio.usThe Bayesian Thing, AgainHatching Snakes
Five Things That Keep Annoying Me About TVPaging all Bloglines SubscribersPredictions for 2005Holiday Lull
UnwindingWelcome to KubrickNokia 9500I Hope Kelkoo Gets A Clue
Vertical ForeshorteningThe Ugliest Phones In The World, and Then SomeCoralizing Your SiteThe Trackback Game
The Bloglines MysterySimon Says: Use Purple NumbersThe Eleventh CommandmentDumb Ideas
Surface TensionAmid The MidletsJavaScript/overLIBJavaScript/jsFind
The Long WeekCutting CornersTungsten T3 SD WoesMicrosoft vs Eolas Update
Microsoft to change IE - Web standards at last?New Photo AlbumHacking Firebird using XULThe Box Model Hack, CSS, and my Vanishing Tolerance For IE Bugs
iSync me up, baby!CPANRAQ550/Packages