|
by Steven J. Vaughan-Nichols
September 8, 2004
Much to my surprise, IBM and Sun are at least talking about an open source Java. However, I doubt it'll happen. I mean, Sun won't even agree to play with Eclipse, and, let's face it, Java is a far bigger deal than standards for integrated development environments.
In the course of thinking about IBM, Sun, and open source Java, I've been talking to a lot of enterprise programmers and have been surprised to find an abundance of real ignorance -- even among professional coders -- about what open source is, what it isn't, and how it can help.
So, let's start by making the pledge: I will no longer refer to open source software as free software. The two aren't quite the same thing, and sorry, Richard M. Stallman, no matter how many times I say it's "'free' as in speech, not 'free' as in beer," people just don't get it. Open source software doesn't have to be provided free-of-charge or at zero profit. All the moniker "free software" does is further an already widely-held misconception.
Here's another misconception I've run into: if you work on open source, you work for free. Open source doesn't ask anyone to work for free. Yes, some people develop code gratis because they simply love it or because they enjoy seeing their name on SourceForge, but most people write open source software for the same reason they'd otherwise work on proprietary code: they get paid for it.
Still other people have recently argued that black box security is inherently better security. They argue that open source is less secure because, well, it's open. C'mon! How many Windows viruses do we have to suffer through before we finally dispel this myth? Of course, open source isn't perfectly secure, but the track record certainly seems to show that proprietary software gets exploited over and over again, not open source.
Finally, there's also been a lot of talk that having many experienced eyes reading code doesn't lead to better code. This chatter is proferred by Microsoft and security consultants who favor the black box approach, but no one's offered proof to substantiate the claim and one need only trot out Linux, FreeBSD, or Apache to demonstrate that open source simply works wonders. Arguing that open source doesn't work well is like arguing that gravity doesn't work.
Like any programming technique -- and once you get past the politics, that's all open source is -- open source can work for almost anyone. Based on twenty years of writing about IT, I have to say open source has a lot better record than any other approach I've ever seen, if, for no other reason, that you don't have to waste your time re-inventing the wheel or a Bayesian filter every time you need one.
In the long run, all those experienced eyes really do give you better programs. In fact, it's been proven. Last year, Reasoning (http://www.reasoning.com), a leading automated software inspection service vendor, found objective proof that open source has fewer bugs per thousand lines of code. And, as we all know, the fewer bugs, the better, since you then don't have to waste countless programmer hours finding and fixing errors.
So what can open source do for you? Lots. Existing open source programs can help you get your work done, and open source tools are probably already helping you produce better in-house programs.
For example, if you're programming seriously in Java, you're probably using at least one open source tool like Ant, Tomcat, NetBeans, Struts, or the newly-J2EE-certified JBoss.
When you take all this into consideration why not consider taking the next step and open source your own projects? It can't hurt, and chances are you'll start getting valuable feedback from your users on how to fix existing problems and improve your overall code quality. To me, it's a no brainer: I'd open source all of my projects.
Of course, simply putting a project up on SourceForge won't make it better -- just like reading a book on Extreme Programming (XP) won't make you an extreme programmer -- but if you use open source properly, you can produce better code.
When you put it all together, it's clear that open source produces better programs, better tools for making software, and can also improve your own code.
And, if you can't get everyone to see this, well, what the heck? If your competition wants to let you have open source as your competitive advantage, that's all the better for you.
|