I have my own theory for how technology waves begin and it wasn't until I watched a program from the BBC on rogue waves for the second time that I found a decent analogy. The relatively new theory (based on Schrodingers Equation) goes that these super waves, which are big enough to sink ships, are formed when energy is "stolen" from one wave to feed another. This builds and builds to create these towering monsters. Well I think technology waves are very similar: something relatively innocuous, such as SOAP, pulls in energy from other fields, such as EAI and the Web, to grow to the scale of a disruptive influence when it reaches a tipping point. This also makes it difficult to predict a priori whether or not something will be a wave: many different things contribute.
With that in mind, what do I think will influence the next technology waves? Here are a few ideas though not all. I should add a disclaimer that these are my own personal opinions and not necessarily those of my employer:
- A new programming language? Over the past 40 years or more we've seen languages come and go. The only constant is binary! Periodically we go back to high-level versus low-level language debates (e.g., can compilers really optimize as well as writing raw machine code?) Java has been influential for a long time, but if history has taught us anything it's that everything has a season, so it's only natural that at some point Java popularity will wane. But I'm not sure that a single language will replace it. Java didn't replace C, C++, COBOL or Lisp, for example. With the increase popularity of languages such as Erlang, Scala and even C++ making a comeback, variety is the right approach. Yet again a case of one-size doesn't fit all. When I was at University we learnt a lot of different languages, such as Pascal, Occam, Concurrent Euclid, Ada, C, C++, Lisp, Prolog, Forth, Fortran, 6502 (still one of my favourites), 68K, etc. When Java came along that seemed to change, with the focus more on the single language. Hopefully we'll go full circle, because as an industry we can't afford to keep reinventing software every 10 years to suit a new language.
- What about Cloud/Virtualization? Yes, there's a lot of hype in this area and I do think it offers some very interesting possibilities. But I'm not sure it's a wave in its own right. I suspect that we're still missing something to turn this into a Super Technology Wave. That could be SOA, fault tolerance, the economy, or Skynet.
- It will finally dawn on the masses that security (including identity, trust etc.) is something we take for granted and yet is not available (at all or sufficiently) in many of the things we need. (See Cloud, for example.) Security as an after thought should be replaced with security as an integral part of whatever we do. Yet again not a wave in and of itself, but something that will be pulled into one I hope.
- Of course REST has been around for a long time and given the many discussions and debates that have been raging for the past few years we're definitely seeing more and more take-up. I'm not going to debate the pros and cons here (have done that before), but I am sure this will become a wave, if it's not already.
- A unified modeling approach to building distributed systems, pulling together events, messages, etc. JJ has been talking about this for a while and it would be nice to see.