This post originated from an RSS feed registered with Java Buzz
by Anthony Eden.
Original Post: JDJ Editorials of Interest
Feed Title: All Things
Feed URL: http://allthings.mp/
Feed Description: Blogging about Java, Python, technology and generally anything which is of interest to me.
Out of that advertising Mecca that is Java Developer Journal has come two editorials of interest this month. The first editorial is from the ever-controversial and musically-inclined Joseph Ottinger. Joseph's article titled "Where are the Components?" asks a very good question. There are several reasons why component reuse is not as prevalent in Java as it should be.
Lack of Tools
The first and primary reason is a lack of tools which provide a good environment for component-driven development. Bad-mouth Microsoft as much as you want but they do have a pretty nice development environment in Visual Studio. Most of the Java IDEs focus on code editing and refactoring with little or no support for drag and drop component development. Yes, I know tools exist but frankly everything I have tried has not been easy enough to use to make it worth the effort which brings me to problem number 2:
Java is an "easy" programming language
Once you are comfortable with Java it is very easy to crank out code. It is so easy to code your own components that both novice and experienced developers alike will roll their own solution either because they don't bother to search for an existing solution or because existing solutions don't meet their needs exactly.
Lack of Component Repositories
Granted if you are looking for open source Java components you can often look to Apache or SourceForge but beyond those resources there is not much in the way of component repositories for Java. Java would benefit greatly from a CPAN-like repository where well-known, well-tested components could be collected and where obtaining those components would be easy and painless.
Java the language has everything it needs as far as component-models go. JavaBeans, introspection and reflection provide all the necessary infrastructure for developing Java components. The hurdle which we must overcome now is to actually put those techniques to use on a regular basis and I don't think this will be possible until better tools are available.
The other article of interest from JDJ, titled "Live and Let Live" is written by the bile master, Hani Suleiman. Hani's opinion piece points out that open source is not the end-all be-all solution for software development. The last paragraph of the article is enough to understand what Hani is saying:
Whatever your choice is, have the courtesy and foresight to acknowledge that there is no "one size fits all." Open source has its place now and always will. The same applies for commercial software. Neither model is going to die out anytime soon, but if you must make a decision between one or the other, consider all the hidden costs, not just the price tag.
Unfortunately when businesses look at open source software most see it as a cost-cutting measure. Its the "free as in beer" which makes it enticing to them. Unfortunately I don't think that this is sustainable. As software developers continue to be commoditized and their salaries drop they will either leave the industry or will put in just enough work to get by...unfortunately most open source software is written because of desire from the developers and as more developers become disenchanted with the industry the number of new open source projects will dwindle as well.