In the Harry Potter series, the Divinations mistress at Hogwarts, Sybill Trelawney, got her job on the basis of one true prophecy, a feat never to be repeated. I'm not sure I've ever gotten even one end-of-year prediction entirely right, but there's another indicator I can look at: where I put my software development and writing efforts. In the early 1990s, I jumped headlong into developing for an iffy emerging technology. I wrote two books and part of a third about it, taught courses about it, reorganized my consulting practice around it, and took on a monthly magazine column about it.
That iffy emerging technology was Microsoft Windows, and the versions that made me really jump in after years of skeptical puttering were Windows 3 and Windows NT. Lest you think that was an easy call, at the time the industry press was all over Novell networking and IBM OS/2 as the serious up-and-coming technologies for business. I did hedge my bets; I kept OS/2 available as a boot option on my DOS/Windows machine, and I worked with a client whose product used Novell networks at hotels, but my main focus was Windows.
[ See our special report on rich Web development tools, including reviews of Microsoft Silverlight, Curl, WaveMaker Visual Ajax Studio, JackBe Presto, Nexaweb Enterprise, Backbase, Bindows, Tibco General Interface, and more open source AJAX toolkits than you can shake a div at. | Keep up with app dev issues and trends with InfoWorld's Fatal Exception and Strategic Developer blogs. ]
I've done a lot of other things since then, but nothing convinced me to spend the time to write another book until recently. You've probably noticed that I've been writing a lot of articles about RIAs over the last few years. I was searching for a technology that could unite the benefits of desktop and Web applications.
I never really took to Flash, as the development environment is oriented toward designers and I think more like a programmer. Flex was more like it, but I didn't see decent performance in Flex applications. Curl had the performance, but its unique language made it a hard sell. Silverlight looked attractive, but initially lacked performance muscle; Silverlight 2 fixed the performance issues, but by then I was more attracted to AJAX.
AJAX had three big problems: Performance was the first, browser compatibility was the second, and development difficulty was the third. Most of the attempts to solve the compatibility and development difficulty problems came in the form of AJAX libraries or frameworks. I was initially attracted to Prototype and script.aculo.us; I then went through a period of trying to learn "enterprise" AJAX frameworks; then I got interested in jQuery and Dojo. They were better, but still not easy for large projects.
For the first time in almost 20 years, I've jumped in with both feet. I spent months building a proof-of-concept application with pre-release versions of the product (putting up with near-daily bug fixes); I started writing a book about it (volume 1 is done and should be available soon); and I started preparing to teach a course about it (the first offering will be in February, if enough people sign up). My little application is turning people's heads, and not just because it combines the strengths of desktop and Web applications.
The other thing it does is to call REST services. Rather than trying to set up and program a VoiceXML server for interactive voice response calls, I found a commercial Web service with a RESTful interface, and call that from my Alpha Five AJAX application. Ditto for sending and receiving SMS messages -- rather than buy a short code and build a server to handle SMS responses, I use a Web service with a RESTful interface for that functionality. In each case, I've saved myself months of development effort.
For me, at least, this is the year of AJAX and REST services. What about you?