Okay, time to start my yearly ritual of predicting the future of the coming year. I’ve attempted to do so for the last two years, 2005 predictions and 2006 trends. You be the judge on how successful I am on this activity. Not that I’m trying to claim to be clairvoyant, but rather by taking time to write about it I get a better grasp of what’s emerging and if I’m lucky enough spot those ones that surprising one’s that people may miss.
- Virtualization – Affordable multi-core systems and muli-cpu systems and the ever growing costs of maintaining racks of servers would push operational staff to deploy more virtualization solutions like VMWare and Xen. Vendors will begin to package their server solutions as virtual appliances. Java solution vendors despite being O.S. agnostic will also adopt this approach. Software vendors will follow Zeus ZXTM VA and re-work their software to be usable within a virtualized environment. The JVM will be also rebundled as a VMWare virtual machine, in fact the opensourcing of the JVM will have its greatest impact on this area. Update: See BEA LiquidVM.
- Cloud Architecture – The cost and maintenance benefits of services like Amazon’s S3 and Elastic Cloud will have such a tremendous architectural appeal that more and more services will be architected in a similar way. Furthermore applications will be re-architected to make best use of these services. There will be several roadblocks along that will limit its uptake however this would be a long term architectural trend.
- Parallel Programming – Developers would need to scratch an itch as to how best to develop systems to support multi-core hardware. Intense efforts will be attempted at extracting parallelism at the micro-level. There will be a resurgence of old ideas like dataflow computing, implicitly parallel functional languages and stream processing, however this would be of only niche utility, primarily useful for the gaming and scientific communities. Coarse grain parellism in the form of virtualization and to a lesser extent cloud architectures will continue to dominate. Personal users will begin to realize the benefits of mega-tasking, and the majority of demand for muli-core/cpu machines will spring from this usage.
- Dynamic Programming Languages – Ruby (and Groovy) will continue to gain converts, however it will be confined to a minority of highly capable development organizations. The ease of creating Domain Specific Languages (DSLs) in Ruby/Groovy will lead to rise in literature promoting the idea. Tools for Ruby/Groovy will continue to develop in sophistication. In the end, Ruby and Groovy will become an adjunct tool for Java developers, just like Ant. The .NET IronPython implementation will continue to be superior to the Java based JRuby and Groovy implementations, however it will gain less mind share on purely subjective and social reasons. Python doesn’t have that ‘X-factor’ and .NET already has a de-facto ‘scripting’ language. Update: Groovy finally released version 1.0.
- Java Content Repository – Organizations will begin to worry about their creaky poorly supported CMS and begin towards safeguarding their content assets by migrating to a JCR implementation. This will further be driven by the emergence of more sophisticated applications that work off the JCR API.
- Multimodal AJAX frameworks – Interest in Google’s GWT toolkit will continue to grow, particular in more traditional Java based organizations. GWT will be used not only to develop AJAX applications, but Mobile based applications using J2ME. This will be at the expense of Laszlo that will make excruciating slow progress to finish its AJAX and J2ME bindings. Tibco GI would make strong headway in traditional development organizations, however one would see little uptake in this technology in Web 2.0 offerings. Tibco GI’s traditional desktop like UI despite being extremely impressive doesn’t fit the low cognitive overhead requirements of Web 2.0 applications. Until it’s refactored to allow bite sized configurations, I expect to see it used more in Browser based extensions. Update: Laszlo release their first beta that supports multiple runtimes (i.e. flash and dhtml).
- Life after EJB – The EJB nightmare is finally over. Unfortunately, the world we’re transitioning to is extremely fragmented. Out of the carnage, Spring and JBoss (i.e. Hibernate, jBPM, Rules) have emerged as the two main competitors in the enterprise space. Spring and JBoss are actually meta-frameworks, Spring structures participation using code, JBoss does it through employment. Other vendors will align with one or them or both (see: Alfresco, Nuxeo, Atlasian etc). However, it is safe to say, that any respectable enterprise java worth its salt would be based on either of these two frameworks. JBoss Seam framework will gain traction and JSF will be the new Struts.
- Decentralized Identity Management – Every architecture group in big IT organizations has grapled with the problem of unified identity management across their enterprise. Unfortuntately, it has been a complex problem from both the technical and social perspective. Fortunately, a viable and lightweight solution has been developed (i.e. OpenID). I expect OpenID to take tremendous mindshare in 2007, in an order of magnitude greater than other solutions such as SAML, Liberty and MS Passport that came before it. Update: Emre Sokullu writes that Wikipedia is expected to support OpenID.
- Dead WebServices – WS-* and its corresponding specifications like SOAP and WSDL will be declared dead by year end. You’ll find the decalaration first by tool vendors and open source projects that’ll refuse to expend anymore effort treking the wrong path. The ensuing void will force SOA to drift to be more about methodologies and SOA ‘governance’ (i.e. SOA 2.0 ).
- A Little Bit of Semantics Everywhere – Jim Hendler summarizes this observation best. The top down ivory semantic web approach has run out of steam, fortunately lots of grass roots developments like del.icio.us tagging, revyu, microformats, google base, flickr etc. are providing developers with a massive (albeit less structured) knowledge base that will in 2007 springboard semantic web technologies into the spot light.
There’s probably a lot of other trends that I may have missed, so please let me know.