Second Life client source code now open source - and what that might potentially mean...
January 08, 2007
(Originally posted to http://dyork.livejournal.com/264769.html )
Today, in a post entitled "Embracing the Inevitable", Linden Labs officially announced that the source code for the Second Life client has now been made open source! More than just "open source", the source code has actually been licensed under the GPL, which is by far one of the most stringent of the various open source licenses. What this primarily means is that any modifications made by other developers - and subsequently distributed to others - must be made available under the GPL back to the rest of the community. The end result should ideally be greater innovation in general. (I'll also note that Linden Labs will offer commercial licensing of their software to those interested.)
So what does this mean for regular Second Life users? Today? Probably not much initially. But longer term it has a huge potential impact. One of the barriers, in my opinion, to SecondLife or any of the other existing virtual worlds becoming the primary virtual world in use has been the fact that all of the client interfaces have been proprietary clients using proprietary protocols. No real way for people to understand what is going on or to build their own specialized clients.
In contrast, think of the World Wide Web. It's wide open using open protocols like HTTP and HTML that are easy for anyone to use. Anyone can write a web browser using whatever language they want. Anyone can create a web server... again in any language. (I've written one in the past.) And if you don't like one of the existing web browsers whose code is open source, you can take that source code and modify it. How many derivatives of Netscape's original code have been created? How many Firefox derivates are out there? Think of the rich number of browser clients that are out there. IE, Firefox, Mozilla, Opera, Flock... and seven zillion other ones. All competing in various ways with new features and capabilities. The 2-D web interface allows full innovation... and look what has happened!
In contrast, for Second Life there is currently exactly one client. The one from Linden Labs.
If Second Life is indeed to become the primary 3-D collaborative interface (and that is right now to be a big "if"), one of the basic requirements is to allow this type of openness and integration for interaction. People need to be able to develop other clients... perhaps specialized... perhaps competing with the LindenLabs client. Many people will hopefully take a look through the LL client code and send potential fixes back to LL for inclusion in the client. In the end, that means we'll have a stronger and more robust client. Others may take a look at the code, decide that they can write a much better client and do so! (With the guidance from the LL code on how to interact with the SL server environment.)
Other developers may use this as an opportunity to "scratch an itch" and fix something that has always bothered them or add something that they always wanted to add. Those itch-scratches will make their way back to Linden Labs who may (or may not) choose to incorporate them into the main SL client. The end result could be a much more stable SL client with more features. Or not... it largely depends on if developers are able to figure out what LL does in the code and decide to make changes.
Now the client is only half the issue. For SL to truly grow into the overall 3-D interface, you'd need the server as well. From what I could see that is not - yet - open source, but this statement certainly could give one hope (emphasis added):
A lot of the Second Life development work currently in progress is focused on building the Second Life Grid — a vision of a globally interconnected grid with clients and servers published and managed by different groups.
Think again of the Web. It's an amalgam of servers run by a zillion different people (using a wide range of clients. That's where the 3-D Internet needs to get to... whether that is SL or not that brings it to that point is a different question. This statement, though, does show that Linden Labs certainly understands that it needs to get there. They end with a nice quote:
Releasing the source now is our next invitation to the world to help build this global space for communication, business, and entertainment. We are eager to work with the community and businesses to further our vision of our space.
Kudos to Linden Labs for taking this step... in the short term there may be some hiccups (as attackers look through the code to see if there are any holes to exploit immediately), but in the long term I think it bodes well for the future of Second Life as that collaborative interface. It will be fascinating to see what happens next...
 I'll park my GPL pedant hat for a moment, because the statement at the bottom of their licensing page does make we wonder a bit. Specifically, "Note that some components necessary for use with the Second Life viewerare licensed from third parties under different licenses." Are those "components" included as part of the actual distribution? Do they fit into the "mere aggregation" clause of the GPLv2? Or are they libraries linked in? And how are they linked? I don't understand exactly how the SL code is put together, but statements like that just do raise a red flag to me... hopefully Linden Labs did go over all of this with GPL-literate attorneys.
If you found this post interesting or useful, please consider either:
- following me on Mastodon;
- following me on Twitter;
- following me on SoundCloud;
- subscribing to my email newsletter; or
- subscribing to the RSS feed.