Friday, April 11, 2008

The Future Is Coming... Be Ready

There is a never-ending debate among web programmers, Java developers are particularly susceptible but by no means unique. It's a debate not-dissimilar to religious or political arguments, or even to the nowadays quaint emacs/vi battles of yore, (a battle I'm feeling somewhat nostalgic for after fighting with Eclipse for the last couple of days, but I digress...). The debate I'm speaking of is about web frameworks. Which is best? What should we use on the new project? Have you checked out XYZ? You can do in N lines of code what took N-squared in ABC... and on and on it goes.

For some reason the web framework "problem" seems never to be solved adequately. It's not alone in this. The same can be said for object/relational mapping frameworks or even email clients, as this one's slogan freely admits. I'm not saying that this debate is really going to go away, but the parameters of it are in a big, game-changing way.

We're entering into a new generational shift in computing. I'm not speaking of generations of people but rather an uplift of paradigmatic abstraction as has occurred so many times before. This is not a shift from static to dynamic languages, although that trend will surely continue. It's not that Java developers are all going to start using Rails or everyone is going to switch from template to component-based ways of developing webapps. The new debate is not going to be between X and Y framework but between X and Y platform, and if platform used to mean Mac-Windows-Linux, the shift I'm talking about is: 's/Mac-Windows-Linux/Google-Amazon-Salesforce/'

There has been an undeniable series of developments in the hosted-platform, managed-environment, I-don't-even-know-what-you-call-it, SaaS? that have until now resisted full-blown, critical mass, hype-factor. I think that that all changed on Tuesday with Google's App Engine announcement.

Like Apple, no matter what Google does it gets attention, and App Engine is undoubtedly going to get lots of it. People will love or hate the choice of Python, love or hate the persistence API, or lament the lack of filesystem access, or OS access, or inability to link to C libraries. All of that is irrelevant though, because the real story is that they will have done for this new hosted-app space what IBM did for the PC-space years ago, which is push it over the top into general acceptance. It validates the concept.

It is widely assumed that Google is taking aim at Amazon and their suite of web services. I think that that's true, but Amazon should be thanking them for it since it will probably bring more attention to their offerings than for some reason they have been getting thus far.

It's weird actually. If you've been paying attention to what Amazon has been doing it's really quite impressive. The model they are pursuing is that of a utility. Everything is metered for pennies, pay for what you use, do anything you want with it. It's like the webtone concept. Don't worry about machines, disk space, bandwidth, power, (or an ops team). We'll take care of it, and we're Amazon, so you know we're not going down.

Google has been doing a similar thing with their Google Apps with some success. I for one have long since abandoned the concept of running a mail server. Google does it for me, better, for free. The App Engine though is the next progression and the acknowledgment that people need more software than they can possibly produce, but don't want the headaches of running all the infrastructure.

The third leg in this emerging trio, (and there will no doubt be others to follow), is Salesforce. They have been doing some very interesting things lately that I for one haven't been paying enough attention to. Unlikely as it sounds, they may even have the advantage, since they speak the language that the suit-types understand. It's all about reducing IT costs. Faster time to market, ROI, yadda yadda yadda...

The technology is there though. A friend of mine was at the Salesforce conference in Chicago yesterday and had this to say afterwards:

"Unless you're the most close minded developer in the world, there's no way that you are going to go to a Salesforce conference feeling good about the stability of your own job."

Now maybe that's hyperbole, but it brings up a good point, the web development world is not stable, and if you are a web developer your job is not stable. That's not to say that you're getting fired and everything is going to India, or that non-technical personnel are suddenly going to be able to write applications. What it does mean is that staying relevant requires effort. Knowing what's going on in the industry, knowing what the trends are; these are important concepts to keep at the front of your mind lest you be left behind.

The Future Is Coming! Rejoice in the Good News of Hosted App Platforms!

Seriously.

Still doubting Salesforce? You know they are integrating with the iPhone, right?