NOTE: I’ve moved the list to it’s own dedicated page so that I can manage it a little easier so for the most up-to-date list, go to the following page.
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. :)
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
WireframeSketcher
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
Server-Side JavaScript
Rhino
Node.js
Narwhal.js
CommonJS Standards Project
Persevere
Comet
Books
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: The Definitive Guide
- JavaScript: The Good Parts
- Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
- DOM Scripting: Web Design with JavaScript and the Document Object Model
- AdvancED DOM Scripting: Dynamic Web Design Techniques
- Beginning JavaScript with DOM Scripting and Ajax: From Novice to Professional (Beginning: from Novice to Professional)
- Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
- Pro JavaScript Techniques
- Secrets of the JavaScript Ninja
- Ajax Security
- ppk on JavaScript, 1/e
- Accelerated DOM Scripting with Ajax, APIs, and Libraries
- High Performance JavaScript (Build Faster Web Application Interfaces)
JavaScript Libraries:
- jQuery Cookbook: Solutions & Examples for jQuery Developers (Animal Guide)
- Learning jQuery 1.3
- jQuery in Action, Second Edition
- jQuery UI 1.7: The User Interface Library for jQuery
- Rebecca Murphey’s jQuery Fundamentals Training Materials (Creative Commons License)
- Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences (Pragmatic Programmers)
- Practical Dojo Projects (Practical Projects)
- Concise Guide to Dojo (Wrox Programmer to Programmer)
- Dojo: The Definitive Guide
- The Dojo Toolkit: Visual QuickStart Guide
- Getting StartED with Dojo
- MooTools 1.2 Beginner’s Guide
- MooTools Essentials: The Official MooTools Reference for JavaScriptâ„¢ and Ajax Development (Firstpress)
- Practical Prototype and script.aculo.us (Expert’s Voice in Web Development)
- Prototype and script.aculo.us: You Never Knew JavaScript Could Do This! (Pragmatic Programmers)
- Prototype and Scriptaculous in Action [Ajax]
- Learning the Yahoo! User Interface library: Develop your next generation web applications with the YUI JavaScript development library.
- Learning Ext JS
- Ext JS 3.0 Cookbook
- Ext JS in Action
- Professional JavaScript Frameworks: Prototype,YUI, ExtJS, Dojo and MooTools (Wrox Programmer to Programmer)
HTML & CSS:
- Pro CSS and HTML Design Patterns
- Web Standards Solutions: The Markup and Style Handbook, Special Edition
- Bulletproof Web Design: Improving flexibility and protecting against worst-case scenarios with XHTML and CSS (2nd Edition)
- The Art & Science Of CSS
HTML Utopia: Designing Without Tables Using CSS - Build Your Own Website The Right Way Using HTML & CSS, 2nd Edition
- Head First HTML with CSS & XHTML
- Web Programming Step by Step
Performance:
MooTools FTW!
David is such a bad boy. Rey – you might want to add that IP address to the banned list. ;-)
heheh I’m used to it. The good thing is that he can’t say I didn’t list out his fav library. ;)
*cough* Spry *cough* ;) Also missing a Dream weaver there ;)
And i miss mentions of YUI compressor, Closure compiler, JSMIN etc ;)
Excellent catch! I’ve added all of them. :)
I use Axure (PC + Mac) for wireframing. Love it! http://www.axure.com/
I still like Visio for wireframing….seems to give me the most flexibility. Just got to find a good sketch wireframing template.
I also use omnigraffle for wireframes…with a good sketch wireframing template as well.
Cool. Added!
http://www.axure.com/Default.aspx
Axure takes wirframing and prototyping and adds interaction and presentation. Really cool for client prototype presentation. Check out the videos.
Thanks for this post. It’s excellent!
What Aptana IDE as an IDE? Well at least not the latest version since that one is buggy, but v1.5 still rocks!
Added Aptana :)
BrowserShots is great for cross browser testing.
No Espresso.app?
http://macrabbit.com/espresso/
Espresso is now in the house! :D
What about adding DebugBar ? It’s an extension for IE browsers that’s similar (but not nearly as powerful) to firebug for firefox. They also have companion.js and IE Tester which is a “multiple IE” app.
I’ve really been enjoying Sublime Text for my code editing: http://www.sublimetext.com/
Though, I have also used Notepad++ in the past and have enjoyed it as well.
–rr
What a list!
There is a growing interest for JS template engines, for speedy client side rendering.
You may inaugurate a paragraph with PURE http://beebole.com/pure
Added!
Two tools for building / maintaining CSS that I find essential (and not on your list) are Sass and Compass.
Sass adds features to CSS like variables, mixins, etcs.
Compass makes CSS generation from Sass happen automatically behind the scenes.
Sass : http://sass-lang.com/
Compass : http://compass-style.org/
Hey Mark, if you can give me an overview of what they do, I’d be happy to add it. From what I can tell, Sass is a ruby gem that provides a DSL which compiles to CSS. Reminds of Coffeescript which does the same for JS. I wasn’t quite sure what Compass did though.
Hi Ray,
If you go to the Compass site you can see an overview. You are right that Sass is a ruby gem. Compass works with Sass by “listening” to changes to files in a specified directory. Anytime a change occurs, the Sass file automatically updates any corresponding CSS file. Basically, it makes it so you don’t have to do any manual generation of CSS from the Sass source files.
There’s a nice screencast here: http://wiki.github.com/chriseppstein/compass/
Mark
Thanks Rey! You can add YUI docs to the Documentation list. Same url as the library link.
Doh! Can’t believe I forgot my Sunnyvale peeps! I added it to the top of the docs category. :)
Didn’t forget the lib though. ;)
Thanks for this list!! I’m just learning jQuery.
I use Zen-Coding plugin for Coda. It’s very nice to write HTML!
The link to Stylizer takes to Xyle
thanks I’ll fix it :)
Editor:
– VIM
– Eclipse
Thanks. Added both.
First link under Documentation doesnt have a closing a tag
EPIC FAIL
Hmm, so one link out of a ton on this page isn’t set up correctly and that merits an “epic fail”? You’re a little too harsh don’t you think? The funny thing is that if you had actually looked at the code, you would’ve seen this:
Yahoo UI Docs
The space in front of the “a” is what actually caused that, not a missing closing tag. You should really ease up on the cliche phrases like “epic fail” and simply consider just nicely helping out these quirks instead. Regardless, thanks for catching that. Fixed.
Thanks for this, it will help me a lot!
I think Axure is a definite must for your list. It does cost a pretty penny, but I think it’s worth it, especially for specifications. (We use it at work) :)
Thanks! I added it to the list. :D
Great list… I am fond of JetBrain’s WebStorm as an IDE. Very nice… still in beta, but very promising.
http://www.jetbrains.com/webstorm/index.html
Thanks! Added.
Lazy, lazy, how bout including OS requirements next time, or you can just waste the readers time…
I’m sorry you feel I’m wasting your time. By the comments, others apparently seem to like the list very much. Also, consider being nicer when you make a suggestion instead of calling someone “lazy”. It usually goes a long way to actually being accepted and is considered good manners.
I can never decide between chiding trolls on my posts for rudeness or ignoring them. I think I usually ignored them, this seems more fun.
I usually ignore them but this was such a silly statement that I had to reply.
Very good collection of tools to choose from for developers, they are all time savers and productivity helpers.
A tool I can’t do without is the HTML Tidy Validator extension for Firefox:
http://users.skynet.be/mgueury/mozilla/
You have already included W3C “Validators” links in your list (good), but I recommend to have this Firefox extension for local validation (including accessibility).
This will help produce higher quality pages and maybe help with SEO/SERP etc…
Thanks Diego! I’ve added it to the list. :)
Underscore, the bowtie to jQuery’s tux, is awesome, and a total omission here. Duuuuuuuude.
Added! Demanding! :D
I’m missing Netbeans under HTML/CSS/Jacascript editor.
Added
Now we just need a ‘web developer tools comparison site’, initially populated with all these, where each entry is a wiki and allows comments. Plus a tool to do side-by-side comparisons.
Get on that.
If you don’t have it done within, oh… 2 days, EPIC FAIL for this whole list.
:)
ahahahahaha. The ruthlessness never ends. ;)
Have you found an IDE that let you command click a javascript function and go to the declaration? Many seem to have code completion, but I haven’t found one that can reliably to that.
Not really. I think most focus on the code complete. Did you use an editor before that provided that?
Not in javascript, no. Eclipse does it for Java and Zend for PHP. Would love something similar for javascript. If it could also tell me what events are on a DOM Element and when it get added… well, I would be in love.
It will take me 2 days to enjoy the whole things, lol! Great list, btw!
Hey Rey, great list! I’m missing Geany though, I’m using it exclusively (except for VS2008/2010), it’s an awesome up-n-coming semi-IDE!
Thank you so much for all of the resources here. I am sure it will be a reference point for a good time to come.
Also consider WireframeSketcher, a desktop wireframing tool: http://wireframesketcher.com
Some users will find interesting the fact that WireframeSketcher can be plugged in into any Eclipse IDE (for instance Aptana). This also gets you version control support.
Nice tool. Thanks Peter. I added it in.