January second's Daily Drucker dealt with the future, but not as most business prognosticators or futurists might. As Drucker states it, "The important thing is to identify the 'future that has already happened...'"
The action point for the day is to identifying those trends in our market that have already happened, write about their longevity and their effect on our life and organization.
Over the past few years, and particularly in 2007 Software as a Service (Saas) has really broken out and has become a force in the software industry. The first large scale SaaS offering that really broke through to my consciousness was Salesforce.com, then for me came Basecamp from 37signals.com. Salesforce.com represented a high level enterprise offering, with a high level of complexity and expense. Basecamp brought software as a service home to us all.
I call this, "SaaS for the Rest of Us." Before Basecamp's wide adoption by project managers SaaS was a large commitment, usually involving company wide adoptions, long term contracts, and had more akin with out sourcing than the current growing crop of SaaS offerings.
I see the following characteristics in SaaS for the Rest of Us:
The democratization of SaaS has been enabled by the dropping cost of infrastructure, and bandwidth in data centers; and the growing spread of broadband deployments around the world.
I see these simple, "pay as you go," services staying around for a long time. Some of them will remain simple apps, that eventually will be superseded by better solutions, some of them will grow up and start climbing the almost inevitable process of innovation, until again a simple alternative can come in under them and start the cycle all over again.
Scripting languages have been around in software development for a long time. In particular they have found a welcoming home on the web, especially PHP, and in the early days of web development with Perl. In the enterprise environment though these scripting languages languished until the past few years. Some only coming into their own in the enterprise space in the past year.
In the past there has always been a tension between the truly dynamic languages, such as Smalltalk and LISP, and static languages like C, C++, Java and Eiffel. Although those tensions still exist, dynamic languages, environments and frameworks have arrived and aren't going away.
Ruby and Ruby on Rails both the C and Java implementations have gained impressive developer market shares. They aren't going away, and likely are only going to grow. Groovy, a dynamic language running on the JVM, is another language that is here to stay. It also seems to me that Grails has arrived and will invade the staid world of Java web development over the next year. The reality is its already happened and will continue to.
Over the past year I have been involved in a large project using Groovy to implement an ERP system. I can confidently say that Groovy shortened the development cycle. I would conservatively state that it cut our overall development time in half, if not more. It helped us deliver greater business value more quickly and helped in impressing our client with the progress that has been made in enterprise web development over the past five years. Personally it felt like using fine tools as opposed to banging rocks together, and it's only going to get better.
I predict that dynamic language use is only going to grow over the next five years. It has already had a dramatic effect on our business. All of our new projects are either using Ruby, JRuby/Java, or Groovy/Java.
My last item from the future that has already happened is a dawning reality within the Java software development world that the Java language is just the beginning. That the future of Java goes far beyond the language. The long term value in Java in my opinion is the existing standard API and the JVM. If the emergence of Rhino, JRuby and Scala in the past year are any indication the importance of Java the language is diminishing and will continue to diminish for the foreseeable future as other languages, dynamic, static, and functional begin to emerge from the fringes and invade the central turf of Java.
For me this realization has awoken in me a new cycle of learning and creative expansion as I've delved deeply into Groovy, begun working with Ruby and am learning Erlang.