Sunday, January 25, 2009

Teaching for the clouds

I've recently learned from my colleague at the University of San Carlos in Guatemala City that they are endeavoring involve my favorite project in three of their courses. In the interest of disclosure, this is not a coincidence. When I visited the University in November, I committed the dubious act of mixing a little business in with my pleasure, and trumped up the benefits of using this lovely project of mine. This should not surprise anyone seeing as I am one of its core engineers.

In all honesty, members of my team reject the term "Clould Computing" which I'm sure has become center piece in many-a recent games of buzzword bingo. Whatever you want to call it, there is less and less doubt every day that there are advantages to moving your software to someone else's infrastructure and making the day to day maintenance, operation and even scalability the other persons willing problem.

A lot of places in the world are riding the Information Service-road (as opposed to the Superhighway, get it? - another chip for your bingo card), and being able to put your web application up on one of the most efficient parts of the Internet for free (to get started) could be a real boon. It's not like hosting it in country is necessarily going to make things better for users as depending on what ISP is being used in a given place, the actual internet packets could be traveling half way across the world and back anyway.

The thorny bits to look out for are that "Could Computing" platforms are an evolving standard. So they're not necessarily "Shovel Ready" in todays parlance. That doesnt mean they don't work, but most perspective users are worried about problems of lock-in. These problems will probably smooth themselves out, because I'm sure most cloud computing players (and I know that Google is one of them) is looking to define standards that avoid the main danger. Smart cloud-service providers will recognize that lock in is a barrier to adoption.

What about using these kinds of new, cutting edge, non-standard platforms for teching to IT/CS students? Personally, I'm a believer that teaching strictly to standards could create an inflexible developer force, so I would not be afraid of a lack of standards, just as long as there is good learnings to be found in there. When I was a student at Victoria University of Manachester, the primary language they had early students work with was one called SML (Standard Meta Language). I didn't even like SML as a functional language. I liked Gofer better. Neither language has any sort of practicle industrial use, indeed, I can't even find a useful reference to Gofer on the Internet. Again, if one focuses on ideas rather than standards, the student will be cross-standard ready.

A big issue popping up around the cloud computing stuff is the fact that all the data and programs for a given application necessarily resides on someone elses server. That's probably not a new issue, as I think people have been doing that ever since the creation of the first time sharing computers. But it does mean you must have some level of trust in the folks who are holding all of your eggs. This problem is most vocally highlighted by Richard Stallman, who thinks that this whole "Cloud on the Computer" thing is a sure way to proprietary software surfdom. It's possible that Stallman's vision is somewhat extreme on the subject. But they're definitely worth paying attention to because they do define the boundaries of a worst case scenario of a particular technology outcome.

Ultimately, I always find it interesting to be in on the early rise of a technology or standard. You get to see its evolution and understand some of its reasoning. The end result, for example, is that you take on the manner of an old-timer reminiscing about the bad old days and how when Java was introduced, the lack of operator overloading was considered a big feature. It also may ensure that the next generation of nerds have seen the process for themselves and come to see standards and platforms as an ultimate given.

Like many buzzwords before it, like eXtreme Programming, Virtual Reality and Push Technology, the term Cloud Computing may mercifully dissipate to the vaporous winds from which they came, but the core concepts and basis for the next evolutionary step will have been laid.

No comments: