Thursday, December 10, 2009

The Cloud ... and why aren't we using it properly?

I had a random thought while walking the dog this evening, it went a little like this:

  • Cloud computing is fairly ubiquitous 
  • Everyone is developing applications that are "Cloud" based (e.g: App Engine, EC2, Azure ...)
  • Where are they developing this software?
So the final point is the bit I'm interested in.

Being the hack that I am, I use a mixture of Eclipse, Xcode, TextMate and various Database tools to write the stuff that I do. All of this is based on the fact that the machine in front of me is a Mac. I like Mac's, they compliment the way I work. I use Windows/Linux at work, it compliments what I do there.

But the point of the matter is that I'm developing on a platform in a "platform independent" language thats eventually going to be living in the Cloud. Does it matter what platform I'm using to develop on?

This lead me to another question:

Should I even be developing software on my desktop?

The answer to this (for the Cloud anyway) is: No.

If I'm writing something that lives in the cloud, why am I not developing it in the cloud itself? Why is there not an IDE that lives in the cloud? Why isn't there an equivalent of Eclipse that is web based? Hell, it means I wouldn't have to find where I left the jar for x.y.z version 1.2.3 .... because its already out there ... 

This is what I'd like:
  1. Something usable - much like Eclipse or XCode - a useful IDE
  2. Make that puppy web based 
  3. When I do something like the following:
    AdminClient theClient = new AdminClient();
    It gets the correct jar file from ... the internet!
  4. It means I can use a browser anywhere to do what I need to do ...
  5. It means that we are one step closer to not requiring anything more than a browser
I know that its probably quite impractical, the amount of JavaScript or other enabling language would be immense to accomplish this and the load times would be immense. But they wouldn't have to be.

Google just released Google Web Toolkit 2.0, it has a snazzy feature called code splitting. It only ships you the bits of javascript that you need at the time. If I dont hit ctrl-space to autocomplete a snippet, then dont ship the autocomplete to me. If I'm not playing with build configurations - dont send me the js to do that.

Make this lean and mean and all it means is that I'll just need a netbook to do everything, then I can ditch the power hungry behemoth on my lap (although it is shiny and looks very nice). Why not give me a tablet-esque thing with a touchscreen so i can use it like a pad and paper, the local hardware can do all of the pen -> character conversion, and the cloud can do the heavy lifting.

Just a thought ...

-- Update: 22nd September 2010

So then Rails 3.0.0 comes along and adds bundles. You have a gemfile that automagically install all of your required gems from the interweb. Use it on Heroku and your reuiqrements are satisfied immediately .... Nice.