The Code Project, Mainsoft, and IBM sponsored the competition to encourage developers to try their hand at porting .Net applications to run on Linux. Mainsoft also used the contest to highlight its Grasshopper Visual Studio plugin, which allows developers to convert .Net applications to Java bytecode.
The contest called for developers to port .Net applications to run on Linux, using whatever development tools the developers were comfortable with. So long as the ported applications replicated the behavior of the .Net version while running on Linux, any tool was fair game. The Code Project judged the entries, which were tested on IBM eServer xSeries running SUSE Linux 9.
Actually, there were three separate races -- one for each of three different applications. The target applications were Microsoft's Issue Tracker Kit, Time Tracker Starter Kit, and Reports Starter Kit. No doubt Microsoft is thrilled about its starter kits being used to demonstrate methods of running .Net applications on Linux.
Chris Maunder, founder of The Code Project, said that they chose the Microsoft starter kits because "we wanted applications that weren't too difficult, that were simple, that were well-written, popular applications, in the hope that people would be familiar with them in the first place."
Brian Hendrickson, president and lead developer of Megapump, won the first race. Hendrickson used his Code Stylist Integrated Development Environment (IDE) to port the Issue Tracker to PHP, with a PostgreSQL backend.
Maunder said he was surprised to see PHP as the first entry; he expected people to go with Mono and Grasshopper right away.
Grasshopper came through in the second race, which Abishek Bellamkonda won using Grasshopper to port the Time Tracker kit to run on Linux, and used a hosted SQL Server database instead of using MySQL, PostgreSQL, or another database running on Linux.
The final race had two winners, because the contest sponsors decided to expand the winner's circle a bit. In addition to awarding a prize for the first correct port of the Reports Kit, the sponsors agreed to reward the first Grasshopper and first Mono port of the kit.
Juan Ignacio de Paula was the first to submit a correct port of the Reports Kit, using Mono. He said it took "about 10 hours" to port the Reports Starter Kit to Linux using Mono and the Firebird database, including the time it took to migrate the database, deploy and test the application, and write the instructions. "I think only 20% of the time was dedicated to ASP.Net or C# programming."
Hector Armando Rodríguez Esparza came in behind de Paula with the first Grasshopper port of the Reports Kit.
Though more than 200 developers registered for the competition, Maunder said that there were only "about six entries" in the contest, probably because other contestants could see when other developers had uploaded their entries. According to Maunder, "People could see ... someone got there before them, and went 'oh, well.'"
The variety of porting methods used in the contest shows there are a lot of options for developers who want to run their code on multiple platforms.
Hendrickson said PHP was an ideal language for development because it is cross-platform, and easy for beginners to understand. He also pointed out that many organizations were interested in deploying applications on Linux because it's "fast, reliable, and cheap." Hendrickson said his conversion took about 23 hours over three days.
Though the winners were competing for a prize of an Xbox 360, Hendrickson said he was excited about the contest because it gave him an opportunity to "promote my little IDE and get it out there." Code Stylist is a PHP IDE that runs on Linux, Mac OS X, and Windows.
According to de Paula, Mono is a good choice for developers looking to write cross-platform code. "I think Mono is very stable, so every .Net developer can write cross-platform applications with very little effort." Though de Paula had a fair amount of .Net development experience, he said that he had "very very little" experience with Mono prior to the contest.
Reactions to the contest on The Code Project site were mixed. Maunder said that some users questioned promoting cross-platform development, while other users were enthused about the idea. "There were two camps, those who said 'Why are we promoting this?' ... and then the other camp that said 'Excellent!'"
In the end, the Race to Linux did demonstrate that there are a number of ways for developers to write and deploy applications across multiple platforms. As de Paula pointed out, "People and organizations are requiring more freedom and less vendor dependency, especially in the software arena where licenses are expensive and the return of such a big investment is not always justified."