[A picture of private offices at Fog Creek Software] Alert! This ancient trifle retrieved from the Joel on Software archive is well-past its expiration date. Proceed with care.

Joel on Software

News

by Joel Spolsky
Thursday, June 17, 2004

The Web Hypertext Applications Technology Working Group is working on extending HTML4 forms to make Web applications work better.

In the previous rounds of HTML enhancement, the world's great graphic designers (like Jeffrey Zeldman) made the most noise and got us things like CSS which allow the kind of pixel-perfect page layout that the marketing people like, done in an intelligent way that separates content from presentation. Kudos. They got what they wanted, mostly, and quieted down. Now it's time for us application developers to start clamoring for the features we need to develop great web applications. Here are some examples of the kinds of features I'd like to see in web browsers:

  1. Improved inline editing (step one: make contentEditable work in Gecko just like it does in IE 5.5+)
  2. Javascript features to do fast REST queries back to the server, so I can implement things like a lush spell checker with the dictionary on the server. It should be possible to have a 300,000 employee directory on the server and create a web app that has a list box where you can type the first few letters of an employee's name and see a filtered list as fast as you can type on the screen.
  3. A rich set of standard controls for application development that provide better ways to upload files, better ways to drag and drop with the desktop, etc
  4. Compiled or compressed JavaScript, so that web applications can use really large amounts of JavaScript with decent performance
  5. Better standardized windowing features. At the very least I'd like modal and modeless dialogs that pop up instantly, a standard way to do a menu inside a web page (with ONE consistent UI, not everybody's wacky DHTML menu that are all a bit different), TreeView and ListView controls, and a standard way to make a toolbar/button bar
  6. The ability to get a "device context" (in a platform neutral way) on an HTML control and wail on it to paint just about anything you want
  7. A far richer set of events. At the very least I need to be able to use the entire keyboard. Combined with #6 I should be able to develop any custom control I want that is 100% client side.
  8. Media integration, so I can play sounds or stream music in standard ways without relying on <objects>
  9. Graceful degradation for legacy browsers (IE. It's time to make Microsoft play catchup again. Fire and Motion Baby.)

This is just a random list, nothing organized. These things would have happened if browser development hadn't ground to a halt in the late 90s due to the misguided Netscape-rewrite-project and the lock-IE-developers-in-a-dungeon project.

What I do not want to hear about:

  1. Proprietary tools like Macromedia's or Java Applets that embed clever widgets in rectangles in a browser. I want this stuff integrated with DHTML and CSS, deeply in the fabric of the web
  2. Things that don't have any chance of degrading gracefully on legacy browsers. You have to be able to construct an interface that gets better if you install Firefox, but still works on IE, without too much testing on the part of the developer.
  3. Boil the ocean schemes that require 400,000,000 users to install some thingamajig before you get anything useful. Such schemes will not go anywhere.

What are your ideas for improving the HTML/CSS/JavaScript infrastructure to make web app development better? Write them up and post them somewhere; I'll point to the best ones from my blog. Please don't email me your suggestions -- post them on the web and email me a link so everyone can benefit. I just don't have enough time for private email conversations (yesterday's API Wars article generated well over 200 thoughtful email messages which I can never hope to respond to adequately). It's time for application developers to start clamoring for the next generation of the Web now that the graphic designers got their wish list taken care of.


Have you been wondering about Distributed Version Control? It has been a huge productivity boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!

Want to know more?

You’re reading Joel on Software, stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies.



About the author.

I’m Joel Spolsky, co-founder of Fog Creek Software, a New York company that proves that you can treat programmers well and still be highly profitable. Programmers get private offices, free lunch, and work 40 hours a week. Customers only pay for software if they’re delighted. We make Trello, easy web-based collaboration software, FogBugz, an enlightened bug tracking and software development tool, and Kiln, a distributed source control system that will blow your socks off. I’m also the co-founder and CEO of Stack Exchange. More about me.

© 2000-2014 Joel Spolsky