Originally posted here with 2 comments
You have a point. The basic underlying technology is (still!) primitive, and things are being shoehorned into where they arguably shouldn’t go, partly because of totally inevitable corporate (and airport wifi) firewall policies. (Blocking everything except port 80 and port 443 is becoming increasingly meaningless – but that doesn’t mean it isn’t still rational.)
Nevertheless, pretty much all the issues have been or are being worked around, or obsoleted. (No thanks to Microsoft, which has been dragging its feet every step of the way – ever wondered why so many web developers hate IE?)
Notably, there are now a plethora of client-side libraries (JQuery being one of the most famous) which claim to be cross-browser – the early 21st-century equivalent of cross-platform. Some of them even are. Some of them even support ancient browsers like Safari 2 (which you shouldn’t – it has an awful bug in its Javascript implementation).
And yes, some of them even support adapting to mobile browsers.
But so what? Isn’t this all a big hack?
And what? The x86 platform wasn’t? UNIX wasn’t? MS-DOS and Windows 3 weren’t?
UNIX/Linux took a long, long time to get rid of some of their laughable hacks (like /usr). As did DOS/Windows/Windows NT. This kind of thing has a long pedigree.
More to the point, some things are actually being done better this time around. Did CORBA have caching, or support Twitter-scale scalability? (Maybe it did, but I never heard of it.) You may think Java Swing or Qt is the bee’s knees for GUIs (really?) – but isn’t Swing actually pretty imperative and old hat these days, and isn’t Qt adopting Javascript and becoming in that sense more web-like?
Maybe worse is better.
Aren’t Swing and Qt huge monolithic libraries built by out-of-touch corporations and inadequately maintained and improved, and aren’t say JQuery and Firefox much better, healthier ecosystems, more responsive to developers’ concerns, more frequently released, more easily hackable (or at least perceived as such, in terms of the ease of writing extensions)?
And RIA development in the browser, and other web trends, are sneaking distributed computing – and knowledge of such – back into pedestrian, everyday application programming. This is wonderful! This is one of the best things that ever happened to computing!
Think of web development as like a massive franchise reboot. Being done extremely slowly and painstakingly, and still not finished.
The end result is going to be awesome.


