I've
been meaning to do a roll-up of top JavaScript, CSS & HTML
development tools that I use or have been recommended to me and after
having lunch with my bud Brian Wilpon today, I realized I just needed
to do it. He asked me what some of the newer tools are and I think this
is the best way to help him (and the community in general). It's
definitely not an all-inclusive list so if you see some that you feel I
should add or remove, let me know in the comments.
Here they are by category:
Debugging Tools That Make Life MUCH Easier:
Effectively debugging JavaScript applications is a royal pain in the
derriere and to compile that, the available tools just don't stand up
to those used by managed code developers. Luckily, we do have a decent
set of tools that lessens the pain substantially. Firebug is definitely
a must have since it incorporates so much DOM & XHR introspection
as well as the Web Developer Toolbar. Both are simply awesome. I also
love Charles for HTTP sniffing and it's saved my butt when Firebug
couldn't handle it.
IE8 Developer Tools - Microsoft's browser debugger tools
Firebug - Mozilla's browser debugger add-on
WebKit Web Inspector - Webkit's browser debugger tools
Fiddler - HTTP Sniffer. Great for seeing Ajax requests.
Charles - HTTP Sniffer. Great for seeing Ajax requests. (my personal fav)
Service Capture - HTTP Sniffer. Great for seeing Ajax requests.
dynaTrace Ajax - HTTP performance analyzer
Web Developer's Toolbar - All purpose Firefox toolbar to inspect everything on a page
YSlow - Analyzes page performance based on accepted industry best practices.
PageSpeed - Analyzes page performance based on accepted industry best practices.
DebugBar - An IE plugin that brings advanced debugging features to IE including JS, DOM & HTTP inspection
CSS Editors:
I prefer to write my CSS code by hand. Call me old-school but many
swear by the following CSS editors. CSSEdit by MacRabbit (Mac only) is
especially loved by many designers.
TopStyle
Rapid CSS
Xyle
Stylizer
CSSEdit
CSS Frameworks:
These frameworks have really taken off. Like their JavaScript
brethren, they help to abstract much of the complexity of building
consistent layouts in cross-browser fashion. They're definitely
something I need to look into more and from what I've read, 960 GS
& Blueprint are the ones people are looking at.
960 Grid System
Blueprint CSS Framework
YAML
Yahoo YUI Grids CSS
Tripoli
Object-Oriented CSS
CSS Resets:
Want to minimize browser inconsistencies? Then use a CSS reset
stylesheet to specify baseline CSS styles that make browser
presentation defaults more consistent.
Meyer Reset by Eric Meyer
YUI2: Reset CSS
IECSS
JavaScript Libraries:
I definitely recommend everyone to learn JavaScript as you'll need
it to be a really effective client-side developer. With that said, a
good JS library will go a long way to making your development faster
and much more stable. These libraries are all very mature and
dramatically help to abstract the complexities of cross-browser
development. My personal favorite is jQuery, of which I'm a member of the project team.
jQuery
jQuery UI
Prototype
MooTools
Dojo
YUI
JavaScriptMVC
qooxdoo
Ext JS
Adobe Spry
Raphael.js - simplifies working with vector graphics on the web
LabJS Dynamic Script Loader - Allows execution and load management of JavaScript files
Lawnchair - A lightweight client-side JSON document store
Sessvars.js - Client-side session data management solution
Reactive Extensions For JS
PURE JS Templating Lib
Underscore.js - Utility lib for jQuery that provides a ton of extended functionality
JavaScript Minifiers
Every byte counts when you're sending files via HTTP and best
practices dictate that on a production, you need to optimize all of
your files to minimize page load times. Compressing JavaScript code is
one of the easiest ways to do that and these tools will help. On the
jQuery project, we've started using Google's Closure compiler because
it's generated the best compression. Try all of them out to see which
suits you best.
YUI compressor
Closure compiler
JSMIN
Dean Edward's Packer
Microsoft Ajax Minifer
Dojo Shrinksafe
JavaScript Shells
There are times when you just want to test a snippet of code without
actually going through the trouble of creating a full page. That's
where JavaScript shells shine. JSFiddle and JSBin both rock because
apart from supporting plain ole JS, they also allow you to include a
host of libraries including jQuery, MooTools, & Dojo.
jsfiddle.net
JSBin
mootools.net/shell (MooTools-specific)
Color Management:
As a programmer, I'm insanely color scheme challenged. I'm inclined
to mix yellow with mauve causing a concerted moan to occur across the
design community. Luckily, these tools help you choose web safe color
schemes that are not only consistent but won't burn the eyeballs off
your site visitors.
Colourlovers
Kuler
Editors and IDEs:
I work at Microsoft so you would expect me to be a Visual Studio
whiz. Not so. Only recently starting at MS, I've only dipped my toe in
the VS waters. What I've seen though has impressed me but I still have
a long way to go before I understand it. If you're on a Mac, though, I
do highly recommend both TextMate and Coda. Both are truly awesome.
I've used Coda a little more because I liked the UI of it a little
better than TextMate's but TM's bundle system and ecosystem is amazing.
You can get code-complete for just about anything via bundles. For
Windows, Notepad++ has been just awesome. I wish it had built-in FTP
support like UltraEdit.
Visual Studio
Expression
TextMate
Coda
UltraEdit
Komodo IDE
Notepad++
Notepad2
BBEdit
Aptana
Espresso
Sublime Text
WebStorm
VIM
Eclipse
Netbeans
Geany
Wireframing:
I know some of you are cowboys (or cowgirls) and you just want to
start hacking. Well, for the truly impatient, these tools at least let
you wireframe your pages quickly and easily. I've used Balsamiq and
FlairBuilder and both rock. It seems that FlairBuilder is really
cranking it up with some nice features. Both are Adobe AIR apps which
means they're cross-platform.
Omnigraffle
Balsamiq
FlairBuilder
Visio
Axure
Browser Testing:
I've been fortunate to have multiple OS versions over the years. My
wife would definitely prefer for me to have a couple of less PCs
sitting around but it's let me test out my web apps on a variety of
platforms, browsers and OSes. Shoot, I even have a version of IE6! For
those with less hardware, these services should definitely help. Note
that services like BrowserCam & Gomez are subscription-based but
worth the cash if you can afford it.
BrowserCam
Adobe BrowserLab
Microsoft Expression Web SuperPreview for IE
Gomez
TredoSoft MultipleIE
CrossBrowserTesting
Multi-Safari
Browserscope
Cuzillion
IETester
Testing (based on the list by John Resig):
This was a list I snagged from John Resig. Obviously, he's done a
boatload of testing so I know this list rocks. JSLint is the old
mainstay created by Douglas Crockford but other have really become
increasingly essential to good testing. jQuery developers should
definitely be looking at QUnit & jQuery-Lint. The most complete
tool is Selenium but it does have a bit of a learning curve. If you're
into determining JS performance, checkout SunSpider, Dromaeo, Google's
V8 Benchmark and JSLitmus. These measure the performance of the JS
engine, not your apps.
JSLint
jQuery Lint
JSUnit
Selenium Core
JSSpec (MooTools)
UnitTestJS (Prototype)
QUnit (jQuery)
DOH Unit Testing (Dojo)
YUITest 2
YUITest 3
Mochitest
ScrewUnit
JsUnitTest
jsUnity
JsTestDriver
Crosscheck
Env.js
FireUnit
W3C Markup Validation Service
W3C CSS Validation Service
SunSpider
V8 Benchmark
Dromaeo
JSLitmus
HTML Validator Firefox Add-on
Documentation:
Yahoo UI Docs
APIs - Most comprehensive list of APIs on the web
jQuery Docs
jQuery UI Docs
MooTools Docs
Prototype Docs
Dojo Docs
JSON Reference
JSONP
Rhino
Node.js
Narwhal.js
CommonJS Standards Project
Persevere
Comet
The books below are really a great selection. I have many in my own
library and every so often re-read them I'm currently reading High Performance JavaScript by Nicholas Zakas. Another great book is Stoyan Stefanov's Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries.
I also highly recommend Steve Souders performance book at the bottom of
the list. They're basically the definitive sources for optimizing your
web apps.
JavaScript/DOM:
JavaScript Libraries:
HTML & CSS:
Performance:
|