Originally Published: Sunday, 23 April 2000 Author: Tom Dominico, Jr.
Published to: featured_articles/Featured Articles Page: 1/1 - [Std View]

Confessions of a Windows Developer

"Hi, my name is Tom (hi Tom...), and I'm a Windows developer." Whew, it sure feels good to get that off my chest. I've got another confession to make, though -- I'd really prefer to be a Linux developer.

"Hi, my name is Tom (hi Tom...), and I'm a Windows developer." Whew, it sure feels good to get that off my chest. I've got another confession to make, though -- I'd really prefer to be a Linux developer. It's not just because I believe in the platform from a philosophical standpoint, but for reasons of practicality too. Linux ships standard with a host of free, open development tools that put other operating systems to shame, making my job as a developer much easier.

Let's face it, Linux is a developer's dream. Are you a C or C++ developer? You get a top-notch compiler, linker, assembler, and debugger. Need some scripting tools? Hmm, you've got shell, Perl, Python, and many others to choose from. Oh, you're a Web developer? Well, perhaps you'll want to check out PHP or Zope. Of course, if you work with a group of developers, you'll want to have some sort of version control system in place, such as CVS. Finally, to make your daily work a little less of a chore, you'll have your choice of full-featured shells, and the indispensable GNU utilities at your fingertips.

The most important thing about all of these tools is that they are completely free, in both senses of the word. They are included in every major Linux distribution, all of which can be downloaded for free, or obtained on CD for a small price. On other operating systems, you'd probably have to pay for these tools. Some of them wouldn't even be available. I know, because I've struggled to find their equivalent. Beyond all these tools, however, is the Linux kernel itself, and the fact that it too is completely open source. With Linux, you're not limited to seeing only what some software company lets you see, such as an API. Want to know exactly how the kernel carries out some particular job? Use the source, Luke! Check it out for yourself. You won't need any costly development "subscription" to keep your development platform up to date, either. For example, on Debian, a simple "apt-get dist-upgrade" will do the trick.

So the question is, why develop for other platforms? Well, that's a very complex question that I tried to answer (in part) with my previous editorial. It would seem that all other things being equal, Linux is one of the strongest platforms for development in existence. However, not everyone programs in C, C++, and Java. Many Windows developers are accustomed to "visual" toolsets, such as Visual Basic, PowerBuilder, or Delphi -- often called "RAD" tools (Rapid Application Development). To date, Linux has been lacking in this department. While there are a wealth of toolkits available (GTK, QT, etc.), they do require C or C++ knowledge.

This may change soon, however, as Borland/Inprise will be releasing Kylix, which is essentially a Delphi port. Delphi seems to have a very devoted following on the Windows platform, and hopefully Kylix will do equally well on Linux. I think the addition of visual development environments to the Linux platform is crucial to attracting more developers to the platform. Their existence completes the evolution of Linux as the ultimate development platform, for everyone from C hackers to those using RAD tools. Hopefully, this will provide the proper motivation for development firms to switch platforms, or at least port their applications to Linux. Now, if only I could convince my firm to do the same...

Tom Dominico (tomd@linux.com) is a programmer, database administrator, and Linux convert. Cursed with insomnia, he spends his sleepless nights chatting on IRC, tweaking his Linux box, and reading everything he can get his hands on.