Rant 1. I want information and device fusion (IDF). I want my television to show me who is at the front door. I want my stereo to read my email to me. I want my milk carton's RFID tag to tell my refrigerator which then alerts me when my milk has spoiled. I want to use my browser to see if my car's oil is dirty. I want to see/control my house while I'm on vacation. I want to control my TV by selecting a program from yahoo's TV guide. I want my bedroom lights to flash if my back door is accidentally left unlocked at 1 AM. I want to receive a text message if my basement is flooding. Reading a manual, trying to determine is bit 35 should be a one or zero (or the modern day equivalent: configuring of windows or linux) won't make it. I want to do these things without the pain of typical computer software configuration. Currently, everything I've mentioned above could be done. But not without manuals, custom programming, wires, hair-pulling, and hours of configuration pain. When will the computer industry evolve beyond requiring us to read manuals? It will require standards and it will require something beyond HTML. It will require us to expect more from a computer than either Windows or Linux currently provides. These things should be as simple as plugging in a light and turning on a switch.
This morning I bought Mozart’s Sonata in C from ITunes over the internet, and played it on my stereo using Apple’s Airport Extension. This is fusion. (Thanks, John)
This morning I used my browser to check on my bank balance. I also received an email alert that yesterday five purchases were made with my credit card. This is fusion.
This morning I received a text message that the billing system at work was healthy as of 5:15 AM. This is fusion.
This morning I used Bloglines to review 30 different blogs in a couple of minutes. This is fusion.
I want all my important information to be fused with all the devices I want. Bank balances, credit card alerts, home lighting, car engine statistics, spoiled milk warnings. And I want it with the ease of plugging in a lamp. I think we’ve hit a plateua in the computer industry and the current state of configuration bit-twiddling and HTML development pain won’t get us there. That is the subject of Rant 2.
Rant 2. In my opinion, HTML caused the internet bubble to burst. It is holding back the IDF (see above) revolution. Here is the scenario in the mid 90’s: sell venture capitalists on a web idea, develop a prototype, get some beta customers, add more features, get some real customers, add more features. The HTML development starts to bog down in a sea of complexity and alphabet soup: HTML, CSS, javascript, JSP, ASP, PHP, EJB, … Maintenance costs rise, developing the application on a page-based HTML slows to a crawl. Customers begin to leave, CEOs start to panic and increase worker hours. Developers burn out and produce even less. Companies go out of business. Recession hits.
Using Spring has awakened me to the realization that if something is painful (e.g., EJB) then it probably should be retired. Developing web apps is painful. Struts, JSF, tapestry, velocity, JSP are all Band-Aids for a broken paradigm. If you’re a developer, how many MVC frameworks have you learned trying to look for the magic solution? Compare this with the simplicity of developing a swing app in one language (Java) using a powerful refactoring browser such as Eclipse or IntelliJ. Maybe the solution is that the web should be a sea of services and the client decides on the rendering (although SOAP is currently a typically painful configuration process). Similar to the RSS readers but with interactivity and alert-setting. RSS news readers take semantic information and present it however they like. Perhaps we need Service Browsers or IDF browsers (see rant 1) with easy alert-setting capability. Just brainstorming here. Just as Spring has to potential to render EJBs obsolete, I think the that industry is ready for a new paradigm that renders the current HTML development cycle obsolete. Don’t get me wrong. Browsers and HTML provide a great level of convenience and power. But it could be so much more if development were simpler. The goal is not to myopically browse HTML sites, the goal is the fuse the information we need with our relevant devices (PCs, stereos, TVs, cell phones, PDAs).
We need to break out of our current HTML-centric development paralysis; raise our expectations; and imagine and invent a richer/easier fusion of information and devices.