The Linux platform is home to a vast and highly diverse ecosystem of open source software applications. These programs are developed through a collaborative process that often relies heavily on the participation of volunteer developers. Although there are many professional programmers who get paid to work on open source software, the efforts of volunteers can significantly accelerate development and often represent the bulk of the work that is done on many large-scale open source software projects.

The value that comes from harnessing volunteer development is what makes community-building such an important part of the open source software development model. New contributors can bring new ideas and useful improvements that might have otherwise eluded developers who are deeply immersed in the code.

Some Linux application developers are finding new contributors for their open source software projects in an unlikely place: proprietary software platforms. Some recent trends in the GNOME development community demonstrate that porting Linux applications to Windows and Mac OS X can help attract new contributors.

Porting Tomboy and Banshee to Windows and Mac OS X

Sandy Armstrong recently ported the Tomboy note-taking application to Windows and Mac OS X. Tomboy, which is built with the C# programming language and the GTK+ widget toolkit, allows users to create searchable notes with cross-linking and basic tagging. It is a very useful and intuitive utility that many Linux users (including myself) regard as indispensable. Cross-platform compatibility has been a big win for the project and Armstrong has already started to receive patches from contributors who might never have known about Tomboy if he hadn't ported it to other platforms.

Armstrong says that he has received patches from users who previously had virtually no experience with GTK+ and are using Visual Studio for development. His observations have led him to conclude that developers on other platforms are willing to learn how to use open source libraries and widget toolkits in order to help improve applications that they find useful. This illustrates another intriguing advantage of porting Linux applications to other platforms: it helps familiarize a whole new audience of developers with open source toolkits and APIs.

This could help expand the ecosystem of Linux-compatible software, because some of the developers who focus on other platforms could subsequently decide to adopt open source widget toolkits for their own projects in the future.

Cross-platform support recently got a major boost in the GNOME community as a result of the release of a native GTK+ toolkit port for Mac OS X. This effort, which was largely undertaken by the software company Imendio, represents a major advance for GTK+ portability and allows Mac users to run GTK+ applications without having to rely on X11. Mono 2.0, which was released earlier this month, has extensive support for OS X and includes the native GTK+ port. This made it possible for Armstrong to port Tomboy to Mac OS X.

Mac OS X support is very important right now, because Apple's operating system is becoming increasingly popular among software developers. This trend is driven by the strong UNIX underpinnings of the operating system and the high quality of Apple's development and debugging tools—such as its excellent graphical frontend for DTrace. A growing number of open source software developers are converging on the Mac platform and use it for a lot of day-to-day development. Porting Linux applications to Mac OS X will make it possible for open source software projects to tap into that developer ecosystem.

The open source Banshee media player is another popular Mono application for Linux that is being ported to other platforms. Lead Banshee developer Aaron Bockover wrote a blog entry last week that looked at some of the challenges and benefits of bringing Linux applications to Windows and Mac OS X. Although most of the Banshee code is portable, he says that the big challenge is delivering that last little bit of platform integration polish.

"It's virtually impossible to write a cross platform application that does not suck if you just stick to what a single framework provides," Bockover wrote. "The user experience would feel isolated and sandboxed."

Developer Eoin Hennessy, who is responsible for much of the Banshee OS X porting effort, has ensured that the user experience feels natural by providing clean integration with the dock and system menu bar. This makes the program feel more like a native application and will allow it to behave in a manner that is consistent with the expectations that OS X users have for their software. One major weakness that remains in the GTK+ port to OS X is that it doesn't use native-looking widgets. Developer Richard Hult is working on addressing that issue by writing a GTK+ theme engine that uses native OS X widget-drawing APIs.

Migration incentive

Although porting Linux applications to other platforms offers a lot of advantages, some critics believe that doing so will erode any incentive that may lure users of those platforms to Linux. This argument derives from the belief that mainstream popularity of Linux will only come through the availability of killer apps that are exclusively available on the open source operating system. We examined this argument back in January when we first looked at the KDE project's cross-platform portability initiative.

Almost the entire KDE 4 application stack now runs on Windows and Mac OS X. This was made possible by some nice licensing changes in Qt 4 and by KDE's adoption of CMake, a vastly superior build system that offers a much higher level of portability. Several KDE developers have worked hard on the Mac and Windows ports and the results are incredibly impressive. In response to concerns expressed by some critics, Aaron Seigo argued that creating these ports will help bring more freedom and choice to Windows users at the same time it helps create a migration path that will make it easier for those users to eventually switch to Linux.

Similar sentiments can be heard within the GNOME community. In his recent blog entry about portability, Bockover brilliantly articulates the same point and also argues that the end result will be a net gain in Linux adoption.

"What is important with all of this cross platform work is simple: infiltrate the proprietary platforms, attract users and developers to free software, and grow the open source ecosystem. Ultimately, we'd like to think this will help Linux adoption. Applications are the key, not the platforms," he wrote. "Banshee on Mac OS X is symbolic to me. It marks a period in our project where we step out of the realm of our comfortable and lovable GNOME community and into different communities, creating and bridging through the shared goal of open and free software. Users unite!"

Indeed, porting open source Linux applications to other platforms will help build bridges that encourage faster growth and more innovation. This could, in turn, make Linux a stronger platform, bring software freedom to a new audience, encourage broader adoption of open source toolkits and APIs, and eventually attract more users to Linux.