Friday, September 19, 2008

The Smartest Thing Linux and FOSS have Ever Done:

There are two efforts that have been working hard on freeing the desktop, but because the Open Source community tends to get set in its thinking like everybody else, we have lost sight of our true goal, and have been picking over more irrelevant details.

This post is going to be more substantial than some others, as this is serious. The Open Source community should not close their eyes to an excellent way to provide a clear and obvious path for average desktop users to upgrade from their current platform, to one that suits them better. In many cases, this would be Linux, but for those cases where it is not, all we can do is change it.


The best way to ensure that everyone has access to superior technology and innovation, and a culture blending the best of old and new, is to abstract the user's platform market share and technologies for development.

By this, I mean that third-party software developers that would usually develop software only for the dominant platform, or more rarely, the top two, should have the freedom of option to make use of current best technology.

Let me break it down further. If software developers could choose which middleware technologies and application frameworks to use, and were informed in their decision, they would probably choose those development practices and technologies found in the Open Source community.

The reason that they develop only for the top one or two according to market share, is simple:

Here is the current choice:

Spend $5 mil developing using crappy Windows dev tools for 90%+ of the desktop market,
Spend $5 mil developing using great Mac OS X dev tools for ~10% of the desktop market,
Spend $10 mil developing using both crappy Windows and Mac OS X dev tools for ~99% of the desktop market by developing the project twice, or
Spend $5 mil developing using excellent, if arcane, *NIX dev tools for >1% of the desktop market

As you can see, most people will develop for the top, or perhaps the top two despite the fact that the technology associated with 2nd and 3rd platforms are superior!

This, of course, spells disaster for Linux and Open source in general, because we will have to develop everything ourselves, without significantly attracting new users.

Open Source developers' time is at a premium, and there are not enough to go around.

Linux and other Open Source projects are too good to abandon to this situation, but there is a solution!

KDE and Java!

For many applications, you can develop much more easily in Java than in C++. This is true in more and more cases everywhere.

Sun Microsystems is making one of the smartest moves in their history, and Open Sourcing Their Implementation of Java, which would allow Open Source developers to write GPL and LGPL code in Java easily, allowing the use of Open Source Java applications over any platform.

However, even though Java is an excellent platform to develop for, they have a stigma associated with more slowly interpreted bytecode and other problems that are not there in most cases that do not involve extreme accelerated-3D or anything hardware-related.

In cases where it is the tools, utilities, and middleware (ie, widgit toolkits, window controls, multimedia frameworks, and other software-based platform dependancies), this is easily solved!

KDE made waves by breaking away from uselessly idealistic Open Source thinking, and did one of the smartest things anyone I've seen in the Open Source community do: Cross Platform KDE!

Now that KDE supports Windows and Mac OS X, there is no real reason anyone has to choose between platforms, and be forced to make a practical decision: to develop for Windows using crappy development tools and utilities. If Java were not not enough to show everyone how making Open Source platforms cross platform will break Windows lock-in and monopoly, this will!

By Making one of the best Open Source bundles of joy Cross Platform, what do you think will happen?

Some people think that simply because people using Windows who get access to excellent Open Source applications and software, will decide, "Oh, I can get these really cool apps on Windows, what the hell do I need Linux for?"

If this were true, it would only be so for the short term.

The longer term implications of cross platforming our best kick-ass apps are this:

If people on Windows chose between free kick-ass Amarok, my absolute favorite music player of all time, and some dumb alternative that only exists on Windows, what do you think I'd pick? Even if I had never seen or heard of Amarok before, and someone gave me a CD with KDE on it? I'd choose Amarok!

Other people will too!

This will be the same for every kick-ass app that is cross-platformed!

Many apps you can only get on Linux are vastly superior to paid-for Windows-only equivelents!

However, they choose Windows because databases, various documents, and other things they have been investing time and money into are Windows-only!

In addition to this, nobody older than 24 wants to try something completely new and different, while abandoning what they already have!

The solution?

Cross platform the best we have, and introduce them to the old-timers!

Slowly getting them used to what we have to offer, without throwing them into the river to sonk or swim, is the answer!

Once people realize that they do not need to pay for Windows, or tolerate it's bullcrap to make use of these excellent apps, they'll probably ditch it! and what will they download, and start investing time and capital into?

Linux! Open Source projects will see a slow, powerful tide of new, capable, and willing developers contributing code!

Third-party vendors will write cross platform apps for KDE 4, and include the base libraries on CD!

Peoples' dependance on tolerating Windows bullcrap will lessen, and lessen, and Linux, FreeBSD, Solaris, and other *NIX platforms will start getting more notice by hardware developers!

This benefits everyone! Why must people fight it?

My verdict?

Cross platform everything possible, and show people they don't need Windows to get awsome stuff!

I can't wait to download KDE 4 and learn how to develop apps for it.

Now that this has developed, I know I don't need to learn how to develop for Windows.