Underscore: JavaScript’s “utility-belt,” it is a library with utility functions to simplify functional programming without extending built-in objects.

Lightning.js: An asynchronous embed code for third-party JavaScript to deliver third-party code safely without blocking window.onload.

Supersets and assorted libraries
TypeScript and CoffeeScript:
“Every developer should be familiar with TypeScript and CoffeeScript,” Smith said. TypeScript adds optional static typing and class-based object-oriented programming, while CoffeeScript transcompiles to JavaScript with added syntax inspired by other languages such as Haskell, Python and Ruby.

Dart: Google’s Dart programming language is a class-based language with C-style syntax for complex Web application development, which recently pivoted its strategy with the goal of compiling to JavaScript.

The list of languages that compile to JavaScript is a mile long, but a useful summary list is available on GitHub.

Phantom.js: A scripted headless WebKit and JavaScript API that “can do a lot of things,” said Smith. “It can browse, scan, and crawl sites posing as a WebKit or a browser. It’s one of those lesser-used libraries, but a subset of developers loves to play with it. Phantom is good for unit testing, good to couple with Jasmine [a behavior-driven JavaScript framework], good for screen captures and to check servers running Node.”

PDF.js: Built with HTML5 and used for parsing and rendering PDFs, “It’s a library from Mozilla that pushes the boundaries of what browsers should be able to do with PDFs,” said Smith.

About Rob Marvin

Rob Marvin has covered the software development and technology industry as Online & Social Media Editor at SD Times since July 2013. He is a 2013 graduate of the S.I. Newhouse School of Public Communications at Syracuse University with dual degrees in Magazine Journalism and Psychology. Rob enjoys writing about everything from features, entertainment, news and culture to his current work covering the software development industry. Reach him on Twitter at @rjmarvin1.