(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.)[1]
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...
[1] 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.