Stob Are you a Web 1.0 duhveloper in a rut? Is rich web codery passing you by in Internet time? Do you nibble on the ASCII Alphabetti Spaghetti of server-side processing, while younger, feck- (careful) and talent-less colleagues slurp the UTF-Eightti Vermicelli of client-side coquetry?

You do? I knew it. But don't let it get you down. I'm here specially to turn you into an instant Web me-2.0 coder, with this condensed, self-paced course. Set your Javascript to on, let your plugins float freely in the TCP/IP stream, and away we go.

Know your version number

The first, most basic, skill: be able to distinguish the different versions of the web.

Web versions, 1.0 to 2.0 Version Characteristics Web 1.0 Programming model equivalent to that of a slightly up-market 3270 terminal. Forms are filled in with the sequence: tab tab tab tab tab tab bonk . Web 1.00001 The beginning of the rich web experience: the first ever, primitive Javascript code fragment is written. It generates an unwanted popup, and snaffles your credit card details. Web 1.1 No visible difference from Web 1.0, apart from IE showing the text 'Javascript error' in its status bar. Web 1.2 Standard buttons are upgraded with smart 3D-looking GIFs. These react to mouseover events by bobbing up and down politely over their drop shadows. Remember when we were excited by this sort of scriptery? (None of your CSS cleverness then.) It seems so quaint now. It makes me want to cry, thinking about the good old days of ugly web pages loading slowly. Web 1.3 When you get to the home page of a V1.2 site with FireFox, it displays badly. When you go to a V1.3 website such as www.fdms.com with FireFox, it tells you to eff off and get IE. (These traditionalists in fact would seem to prefer it if you used IE4.) The age of 'you aren't good enough for our website' has begun, reaching full fruition at Web 1.5, see below. Web 1.4 Basic client-side validation added. Forms are filled in with the sequence: tab tab tab tab tab What do you mean 'invalid post code' you bloody thing? The dread phrase 'next generation of 3d smileys' is encountered for the very first time. Web 1.5 Home page preceded by Flash animation designed by the man who thought (wrongly) he should have been asked to do the title sequence for the next Bond movie. In practice, this means the user stares at an animated 'Please wait' sign for half a minute, then goes somewhere else. Web 1.6 Date fields come with a little popup calendar to help you enter a valid date. Because of the differences in the box model as implemented by IE4, the Ok button is position beyond the edge of calendar's window, and it is impossible to use it to enter a date. Web 1.7 The presence of extra code interferes with the standard function of browser controls. Clicking the back button, instead of taking you back to the previous phase on the corporate workflow site so that you could point out the bug to your team leader, abruptly dumps you on the money-shot page of the gentleman's entertainment website that Porno Pete from accounts was showing you earlier on. You say. Web 1.8 Web pages at this level cannot be made to run on Windows Server 2003, no matter how many 'trusted zones' you add them to, nor how much you attempt to override Internet Explorer's Enhanced Security Configuration. Web 1.9 You stumble upon Desktop Tower Defense one lunchtime, and are surprised when you look up from the screen with tired, gummy eyes to notice that it has suddenly become tomorrow. But at least you have got your world ranking up to 912,417. Web 2.0 At last! You can get a fully fledged mail client in your browser. Now, wherever you are in the world, whatever time of day, without the need for your own PC, you are no more than a few minutes away from a screen that reads "Oops, something has gone wrong; we're sorry, try again in a few minutes".





Evolution of the programming model

The programming model, especially the handling of the user interface, has come a long way since the outbreak of the web. Although it goes against going against my established practice, let me draw you some pictures.