X
Business

Open source, standards, and Windows

Open source development isn't just for Linux. As Larry Seltzer explains, open source is alive and, if not well, getting along on Windows.
Written by Larry Seltzer, Contributor

Let's make the very safe assumption that you have Windows systems in your company. Let's also assume--as is the case in most companies of any size--that you need to write software for them. You have an important decision to make.

Even though your users are running the closed-source and proprietary Windows operating system, you can still write open source software, use open source development tools and adhere to open standards. There are many advantages to this: Taking the open source approach, even on Windows, lets you take advantage of all the work done in the open source community. Most of the products are free, which really streamlines the acquisition process. Finally, you might want to contribute back some of your work to the community. Make sure your boss approves, but unless there's something really proprietary involved you have good arguments on your side, namely that other people may help you do the work.

Windows is definitely looked down upon and somewhat neglected by the open source community, but there's always been a ton of open source software available for Windows. I remember even in the days before Linux there were ports of the GNU tools for Windows. They stunk, but they were useful for benchmarking and porting other simple programs cross-platform. Nowadays you can build fairly complex Windows software using only open source and free software, and a lot of it is from reputable sources too!

There's an opposite approach too: If you're building software for Windows you may as well use tools that target Windows specifically and take maximum advantage of it. In such cases you'd be using COM a lot and focusing on what makes the experience best for Windows users. You'd probably write your code with Microsoft's Visual Studio. Your program would only run on Windows, but so what? That's double the lion's share of computers in the civilized world.

But while optimizing your program for Windows may make sense for a lot of applications, you do compromise away a lot. Like I said, your program becomes a dedicated Windows program. Not only that, but you are committing yourself to taking guidance from Microsoft on how best to write software, now and in the future. Without getting too specific, some people don't like this. Some Windows-specific development ends up putting other aspects of your IT decision-making in Microsoft's hands. For instance, if you use MAPI as an e-mail API you get only simple support from non-Microsoft systems. Adhering to standards, as David Berlind pointed out recently, can give you more freedom in selecting the right product for your needs.

There is at least one major open source development system for which Windows is a first-class platform: Perl. ActiveState, the company that makes the Windows distribution for Perl, is a major contributor to the core system and has made Perl into an excellent scripting facility for Windows. Still, things can be tricky with Perl on Windows. Using Perl on Windows doesn't necessarily mean that you're writing portable code. Perl is often used as a means for easy access to operating system-specific features, either on Windows or other systems. When you start fishing around on CPAN, the massive library of Perl code for whatever you might need, you'll find a lot that works only in UNIX. Still, there's an awful lot of Perl out there in the world and a lot of it works on Windows, and there are many sites that focus on helping Perl for Windows users.

I didn't exactly scour the Net for one, but I haven't found any Web sites dedicated to open source tools for Windows. There are plenty of sites supporting open source that have good information on Windows tools though.

Open Source Development Network (OSDN) has a couple of sites, Freshmeat.net and SourceForge, that (in Freshmeat's case) link to or (in SourceForge's case) host open-source projects, the majority of which seem to be development tools. (It's not surprising that most open source projects are development-related, since they're written by programmers.)

I get the feeling that on most of these projects, the Windows version is created only because it's not that much extra work. All of the Windows-compatible ones with a user interface use either a text interface, a Web interface, or some abstracting library like wxWindows. But many of them are simply libraries that are cross-platform.

IBM's alphaWorks is full of open-source tools. Most of the software seems to target Linux or Java specifically (of course, plenty of Java development is done on Windows), but--especially if you're interested in XML-there is a library that should work on Windows as well as other systems. Finally, for Web development you have a large number of attractive options. All of the "market leading" open-source apps are available for Windows, including Apache, PHP, and MySQL. For you Windows PHP programmers the php4win site is especially helpful.

Incidentally, you have many of the same choices when choosing applications you don't write yourself. Consider OpenOffice, an open-source project for building an office suite based on code contributed by Sun from StarOffice. It works on Windows; how well it works is more controversial, but there it is. Of course you can use Mozilla as your Web browser.

It's sort of inconsistent to go nuts with the open source thing on Windows--if you really believe in open source you probably should move away from Windows anyway. But open source is alive and, if not well, getting along on Windows. You've got plenty of alternatives out there.

What's your experience with open-source development on Windows? E-mail Larry or post your thoughts in our Talkback forum below.

Editorial standards