Last Updated: 2013-03-19
I am the co-organizer of the Twin Cities JavaScript users group known as JavaScriptMN. At one of our recent meetups (2012-05-31), we were set to have 30 minutes of discussion and/or lightning talks on the theme of “tools and libraries that you couldn’t live without”. While the goal of the theme was to point out the most valuable tools and libraries available, our main speaker for the night was missing in action and so we continued discussing tools and libraries for the entire duration of the meetup. I’ve put all the suggestions together into a composite list and categorized them all, though the order of the categories themselves is definitely a bit askew.
Please note that this is not intended to be a list of the best tools/libraries in each category but rather providing a small set of those available. The reason behind this is that many of them are still actively in development (the coverage tools are a good example), and so I don’t want to only list the single option that I feel is best at this point in time as it may be eclipsed by one of its listed competitors (or something totally new!) in the near future.
My intent is to keep this blog post up-to-date as time marches on, so be sure to keep a link to it handy (or just to my main blog page, as I’ve made this post “sticky” as well). Now, on to the list!
- WebStorm (or PhpStorm, if you’re into that kind of thing)
- SublimeText2
- Cloud9
- Brackets
- Visual Studio + Resharper 6+
- vim
- jQuery
- Zepto.js
- Dojo Toolkit
- Many others….
- RequireJS (implements the AMD API)
- curl (AMD)
- Dojo Loader (AMD)
- RequireJS
- yepnope — conditional script loading, primarily for polyfilling (used by Modernizr)
- ControlJS
- LABjs
- StealJS
- JSHint and its many supported platforms (explanation about its creation)
- JSLint
- JavaScriptLint (JSL)
- JSLint.It (basically an online configurator for JSLint plus some ADSafe stuff)
- Jasmine (BDD)
- QUnit [and its old docs] (TDD; can use the Pavlov extension to add BDD support)
- Mocha (BDD and TDD, you choose! Also allows for custom Assertion libraries… I use “expect.js”)
- BusterJS (BDD and TDD, you choose! Also has a lot of built-in automation tooling)
- Many other [less good] frameworks….
- JSCoverage (and JSCoverageServer)
- JSCover
- runforcover
- coveraje
- node-cover
- CoverJS
- node-jscoverage
- istanbul (rather than just line coverage, this tool from Yahoo supports statement, branch, function, and line coverage… hot!)
- Saga
- Blanket – “Seamless JavaScript code coverage”
- PhantomJS and its many higher-level abstractions, notably:
- Zombie.js
- Selenium WebDriver
- Underscore.js (or the faster, better drop-in replacement: Lo-Dash)
- Jade
- doT
- dustjs
- mustache.js
- handlebars
- etc.: JSPerf template language shootouts, interesting revisions: 350 and 411
- Backbone.js (if you’re going to use Backbone, do yourself a favor and start with Backbone Boilerplate)
- Ember.js
- Knockout
- AngularJS
- etc.: a “to-do” app written in MANY different frameworks ToDoMVC and the newer or less popular ones on ToDoMVC Labs
- A nice writeup comparing the “7” (8) top MV* frameworks as of the “Throne of JS” 2012 conference.
- The original html5shiv/html5shim (for IE)
- HTML5 Shims
- MediaElement.js – HTML5 video/audio shim
- History.js (pushState shim)
- etc.: Modernizr’s list and some random ones and another
- ES5 Shims:
- es5-shim, with some caveats
- poly
- ES6 Shims: resource list
- Highcharts
- Google Charts, Google Visualization API
- flot
- gRaphael.js
- NVD3.js
- Many others….
- Saxon CE (XSLT 2.0 via JavaScript!)
- jQuery (just using selector queries)
- Chrome Developer Tools – CPU Profiling
- DynaTrace AJAX
- Chrome Developer Tools – Heap Profiling
- sIEve – Memory leak detector for IE
- Akamai (commercial)
- Google Libraries API (CDN)
- CDNJS via CloudFlare – Awesome, for “less popular” JS libraries (i.e. not just jQuery)
- Amazon CloudFront
- Many others….
- UglifyJS
- Google Closure Compiler
- YUI Compressor
- JSMin
- Packer
- ShrinkSafe (a.k.a. the Dojo compressor)
- Analysis: CompressorRater – Compares output compression rate between JSMin, ShrinkSafe, Packer, and YUI Compressor – a bit old but interesting
- Source Maps in Google Chrome Canary – This is badass!
- JS.js (intro)
- Google Caja
- Crockford’s ADsafe
- JSandbox (limited by browser compatibility, may be polyfillable?)
- LightningJS
- iframes
- StackTraceJS
- LogglyJS, presentation from JSMN member Jeff Beck
- Errorception
- RescueJS
- JSLogger
- Muscula
- jsErrLog
- Airbrake
- Splunk
- WebKit’s console.dir
- jsDump
- JavaScript Dump
- cdir (for Node.js, similar to WebKit’s console.dir)
- CoffeeScript
- Dart
- ClojureScript
- etc. Here is the full list of languages that compile to JavaScript!
- Integrated console.log function (plus some alternatives: Blackbird, log4javascript, fauxconsole)
- Note: console.log is supported in IE8+ but only if you have “Start[ed] debugging” with the integrated IE Developer Tools (which creates the window.console object, oddly enough)
- Firebug
- Chrome Developer Tools
- Adobe Shadow
- WebKit Remote Debugger (must be enabled on the server/browser side)
- weinre
- Ripple Mobile Emulator for Chrome
- Node.js (server-side JavaScript environment running on top of Google’s V8 engine)
- ExpressJS web framework for Node (like Ruby’s Sinatra web framework)
- Mongoose (nice MongoDB interface for Node)
- Working with dates – datejs, XDate, Moment.js, jQuery.datepicker
- Mozilla Developer Network (MDN)
- Microsoft Script Junkie
- http://html5please.com/
- http://html5readiness.com/
- http://css3please.com/
- Addy Osmani’s excellent free eBook, Learning JavaScript Design Patterns
- InfoQ
- PluralSight – JavaScript and jQuery (pay-per-view videos… but pretty good)
- The New Boston – JavaScript and jQuery
- Crockford on JavaScript video series
- Google Tech Talks videos related to JavaScript
- YUI Theater video series
- Nettuts’ JavaScript from Null video series
- JSConf conference videos (2012 series still being added)
- Fluent conference video highlights
- Selenium conference videos: http://www.youtube.com/seleniumconf
- Douglas Crockford’s JavaScript: The Good Parts
- Pretty much any book written by Nicholas C. Zakas
- Pretty much any book written by Stoyan Stefanov
- Pretty much any book written by John Resig
- For performance:
- Steve Souder’s High Performance Web Sites and Even Faster Web Sites
- Stoyan Stefanov’s Speed Matters and Web Performance Daybook, Volume 2
One response to “JavaScript: Noteworthy Tools & Libraries”