Tools for Web Developers (1DevDay)
Nov 11, 2011 00:46 · 1258 words · 6 minute read
This past Saturday, I had the pleasure of speaking at 1DevDay Detroit 2011. The event was held at the fantastic Compuware headquarters in downtown Detroit. It’s a beautiful building, and the training center facility works well for events like 1DevDay.
I spoke about “New Tools for the Open Web”. My goal was to show off a bunch of tools that people might find useful and to talk about tools for the future. It’s impossible to talk about all of the great stuff that’s going on. The world of open source tools for the web is huge and growing, and there was a standing-room-only crowd for my talk (thanks for packing in there and letting me run over my timeslot a little bit!)
I started with some tools that aren’t new, hopefully showing off some cool features along the way.
- The Web Developer Toolbar has an incredible number of utilities packed into its menus. It’s not new, but it should be in your toolbox.
- Firebug has had a huge influence on tools for web developers and continues to get awesome new features (such as more fields on the Net Panel and the ability to select which ones you want). I also pointed out Firebug’s non-standard but amazingly useful control for quickly selecting script files on the script page.
- I spoke about a couple of neat JavaScript features in the Chrome Developer Tools (the ability to tweak JS on the fly and the ability to prettify JS while you’re debugging)
- I showed off the Web Console and Scratchpad tools from Firefox, in particular showing how Scratchpad provides a very clean, usable interface for experimenting with JS.
- I gave a sneak preview of the new Firefox styling tools that will very soon be in Firefox Aurora builds.
- I showed of the Firefox style editor which should be in the next Aurora. For now, it’s available as an add-on
- I also demoed Tilt, an amazing 3D visualization of the DOM
In a category all its own is Weinre which provides a way to debug apps running on a mobile device.
Then, I stepped into a collection of CSS tools.
- ReCSS is a bookmarklet that’s been available forever. One tap of the bookmarklet reloads your CSS without refreshing the page.
- LESS extends the CSS language with a variety of useful features and compiles down to standard CSS to run in the browser. It’s written in JavaScript, so you can do the processing client side or server side. Neat trick: if you are doing client side processing, you can add #!watch to your URL and LESS will periodically refresh the CSS from the server automatically. Make a change on disk and see the change almost immediately in the browser. I also mentioned Sass and Stylus as alternatives.
- CSS Prefixer helps you out by expanding your CSS3 declarations to work in all of the browsers that support them with a prefix (-moz, -webkit, etc.)
- Prefix Free is an alternative to CSS Prefixer that works client side and adds only the declarations needed for the user’s browser.
- Rainbow is a Firefox add-on for working with colors. Among its many neat features, it will give you the color palette for the page you’re looking at. The Colour Bookmarklet does something similar as a cross-browser bookmarklet.
- DOM Monster is a cross-browser bookmarklet that will take a look at your page and give you specific advice on how to make it faster
I put out a call on Twitter and G+ for suggestions of tools that people rely on for their web development. Several cited their editors, so I thought I’d mention a couple.
- JSFiddle takes the pastebin concept a couple of steps further by giving you a way to easily share snippets of HTML/CSS/JS that are put together into a preview pane. JSBin is an alternative
- The Eclipse Orion project is building a browser-based IDE with workflows and plugins that feel very much “like the web”.We ship the Orion text editor component in Firefox
- Cloud9 IDE provides a beautiful and feature-rich IDE for working on both the client and server parts of your application… all in the cloud!
I didn’t talk a whole lot about JavaScript-specific tools, because a lot of what we use for JS are libraries and not tools.
- I showed JSHint, a fork of Douglas Crockford’s ever-popular JSLint. JSHint provides nice static analysis of your JavaScript code to catch some errors early
- CoffeeScript is a nice language that provides a friendlier syntax on top of JS without changing the semantics. This means that the JS it produces is quite readable (and quite close to what you’d write by hand). I’m still hoping that some of CoffeeScript’s best parts make it into ECMAScript.next (and there’s a good chance that a lot will).
- Using a language like CoffeeScript makes debugging a bit harder. I showed off our not-quite-ready-yet source maps feature for Firefox. Source maps will also be really useful for debugging minified JavaScript.
I spoke a little about docs. Documentation is important, and the more we do to have better docs for our tools and libraries, the better.
- I think JQAPI is awesome. They took the standard jQuery docs and reformatted them to be more useful.
- Docco lets you do literate-style programming in JavaScript (or Python or any of the other ports that are available).
- Eloquent JavaScript is a book that teaches you JavaScript and provides interactive exercises to help with the learning
Then, I spoke a bit about the future.
- It always bears repeating: anything you can do to help old browsers die is good for the web
- WYSIWYG tools can be nice, but HTML, CSS and JavaScript are quite reasonably hand-writable. Tools that assist in hand authoring provide the most power.
- The mobile revolution needs more tools. And what will tools look like on modern tablets?
- Have you seen what a Smalltalk environment is like?. More of that for the web, please 🙂
- but not actual Smalltalk
Almost everything I showed was created in HTML, CSS and JavaScript. If you can make web apps, you can make tools. Even the tools that are built into the browsers are built of the same basic stuff.
Invest in your tools:
- Find the good ones, use them and tell others!
- Give feedback (this really helps people who make tools to make them better)
- Make them better
- Make entirely new ones
I mentioned how some tools, like Matthew Claypotch’s localStorage bookmarklet are very simple to write but can meet your needs precisely and even show toolmakers what you’d like to have.
Other tools mentioned to me by others but not part of my talk:
- Glimpse is a client-side view into a server-side ASP.net applicaiton
- Edit This Cookie is a Chrome extension for editing cookies. There’s also Firecookie for Firebug
- YSlow is a tool from Yahoo! for spotting performance problems with your pages
- stat.js is a bookmarklet that gives you information (such as frames per second) for the page you’re looking at
- h5o provides an outline view for HTML5 documents
- LiveReload automatically reloads your JS and CSS as you change it (oh, and it will recompile your CoffeeScript, Sass or LESS for you at the same time)
- ReloadEvery is a Firefox extension to reload periodically automatically
- redbot spots problems with the way you’re serving up your pages
- HttpFox is a Firefox extension that provides an alternative view of network requests
- ColorZilla is another set of color tools for Firefox
- Fiddler is a web-debugging proxy
And there are many, many more. It’s a good time to be building web applications.