Analytics Tracking Code

Thursday, April 15, 2010

CoApp and Visual Studio

I have begun work on the Common Opensource Application Publishing Platform or CoApp.

Before I get too carried away, I'll say a few words about CoApp and why it is important. First, there is a figurative mountain of Open Source Software out there in the world. On a day to day basis we interact with some of it in applications like Firefox, Thunderbird, Google Chrome. In many situations, the OSS is hidden underneath a commercial application. For instance, WinAmp, Lotus Symphony and others certainly fit into this category.

So many of us are already using open source software on a regular basis and many times we aren't even aware of it.

However, if you ever take the moment to use a Linux desktop computer or a recent version of Solaris, you will know that there is much more os software "out there" than is currently available on the typical windows desktop computer.

There are number of reasons for this, and Elizabeth Marie Smith gave a couple not too long ago

Projects who don't care.
Projects who don't have the developers who know Windows.
Projects who don't have the tools to develop for Windows.
Or don't want to learn the windows API - who expect windows to work exactly like unix or linux


I would personally like to add one more to this list

It's really hard

When it comes down to it, bringing an the typical OSS application to windows requires an enormous amount of cajoling and sometimes magic. For instance, if you want a headache, look at what it takes to bring something a straight forward as the gedit text editor to windows.

The library dependencies are where we fall down. Much of the software was written for the linux environment, and although it has been somewhat ported to work on windows, there is an awful long way to go. Most of the libraries do not compile under Visual Studio C++ (the Windows native compiler for C/C++ ) without significant effort.

This is where CoApp will step in; the project intends to produce tools which greatly ease the porting process, and to provide a software repository and package management system to install the dependencies as needed.

Most importantly is the developer end of the story.

CoApp will develop an extension to Visual Studio which which will allow developers to choose which open source dependencies they want to link to. On build time, these will be downloaded, and installed on the developers machine in a common reliable location and linked against the developers binary in a safe and redistributable fashion.