Monday, October 23, 2006

Get a Second Life?

Along with some friends and in the dim and distant past, around 15 years ago now when I was still an undergraduate, and the web hadn't been invented yet, I ran an LP Mud. It turned out that LPC, the language that you used to create content inside the MUD, was a fairly powerful object-orientated programming language, which did in fact later evolve into a "serious" language called Pike.

It's possible that I wouldn't be doing what I do today if it hadn't been for writing thousands of lines of LPC, it taught me the fundamentals of object-orientated programming in a far more visual way than is normal. If you can "see" the objects being created in front of you, the object-oriented metaphor isn't really a metaphor anymore.

Around the same time, although I didn't read it for years afterwards, Neal Stephenson wrote a book called Snow Crash which established him as one of the better serious science fiction authors of his generation. Unlike many books of the cyberpunk genre, Snow Crash is packed full of dark humour, and satire, and amongst its hideously complicated interweaving plot lines the book discussed how a virtual reality-based Internet, the Metaverse, might evolve in the near future.

When I finally got around to reading Snow Crash about five or six years after Stephenson wrote it, I couldn't help nodding my head. His Metaverse was very similar to what my friends and I had sketched out as the the next step forward for online collaboration. However the hardware and the bandwidth of the time made such a thing virtually impossible, and instead we got the web. But we still wanted the Metaverse, and interim hacks like VRML started to emerge. But as anyone that played around with VRML at the height of its popularity in the late nineties can tell you, the hardware and the bandwidth still weren't there yet.

A "Better Life" in Second Life

Second Life has been getting a lot of press recently as their user numbers soared past the one million mark. When I first head about Second Life I was interested, but it sounded like yet another game. It looked like the twenty first century equivalent of the MUD I played around with in the twilight years of the twentieth. I was wrong, its so much more powerful than that, they've gone and invented the Metaverse while I wasn't looking.

The beauty of what Linden Labs have done is to build and elegant suite of tools to allow content to be created easily. The tools are intuitive, and can be picked up by most people fairly easily, and you don't have to be a programmer or a graphics designer to use them. They're simple enough for inexperienced users to build quite complicated in-game structures, but powerful enough so that a professional graphics designer (almost) wouldn't complain about the features they offer.

If you are a programmer then the in-game scripting language, LSL, is going to be fairly trivial to pick up as it appears to be a bastardised off-spring of C, Perl and Javascript. However the real power is that the language allows you to establish an XML-RPC server as part of an in-game object that is accessible from outside Second Life, and also allows objects to call external HTTP services; basic GET and POST services, but also XML-RPC and even SOAP services from inside the game. Second Life isn't a game, it's a platform.

Big companies have been remarkably quick to pick up on the new platform; you might have seen the stories as Reuters opened an online bureau in Second Life. They aren't alone, in recent months companies such as Sun, IBM, Wired, Adidas, Reebok have all established presences in the Second Life world.

The secret is that the back end data stored at Linden Labs isn't going to change. If, or when, we finally see the back of our traditional flat screen and keyboard interface, then all that has to change is the client side application. The world itself is perfectly adapted for immersive virtual reality. In fact I'd be very surprised to learn that there wasn't someone at Linden working on that sort of things, stereoscopic head mounted displays and force feedback gloves fit perfectly into the paradigm used by Second Life. It's even possible that it might (finally) drive widespread adoption of this sort of technology.

Of course flat files aren't dead, nor are they really dying. After all they're what's underneath everything;
Hiro is messing around in Flatland...his reason for being in Flatland is that Hiro Protagonist, the last of the freelance hackers, is hacking. And when hackers are hacking they don't mess around with the superficial world of the Metaverse and avatars. They descend below the surface layer and into the netherworld of code and tangled nam-shubs that supports it, where everything you see in the Metaverse, no matter how lifelike and beautiful and three-dimensional, reduces to a simple text file - Neal Stephenson in Snow Crash
As a profession, programmers aren't a dying breed either, no matter what some of the media coverage might have us think. But we are going to have to change, we're going to have to work much more closely with graphic designers, or specialise in the low level code that's behind the scenes from the avatar in the street.

Of course we're there already, have you ever seen a GUI designed by a team of programmers without significant input from the potential users, or a decent designer? Programmers produce notoriously bad user interfaces, and awful documentation. With or without the Metaverse we're eventually going to have to fix that, but the arrival of a platform where our code has to look as good, as well as work correctly, is going to speed things up a bit.

We might not have to worry about the Metaverse proper for a decade or more, but this is where things are going. It might not be Second Life, but it's going to be someone, and it's going to be soon. I'd advise anyone that intends to make a career in programming to take a look and come visit me when you do. This, whether we like it, or not is going to be the future. The users like it that way...

Second Life: The Official Guide
by Michael Rymaszewski, Wagner James Au, Mark Wallace, Catherine Winters, Cory Ondrejka & Benjamin Batstone-Cunningham
ISBN 047009608X, paperback, £12.60

1 comment:

  1. Great Article Cloud Computing Projects

    Networking Projects

    Final Year Projects for CSE

    JavaScript Training in Chennai

    JavaScript Training in Chennai

    The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training