Stop me before I bloat some piece of software again.
All of the cool features have been added to a product. There are no flashy enhancements left to add. All that are left are the little updates necessary to keep the software running on the latest OS releases. What fun is that?
If you have a stable but loyal user base, this can be a real problem. The users need the software to continue to work but what's in it for the development team. This isn't just a problem in the open source world. Recently, this has come up on the OzTeX list. OzTeXis a Mac implementation of the TeX typesetting system that has a one time shareware fee. I think a couple of years ago there was noise on the list from people saying we should pay again and many of us did. There is again discussion that it would be helpful for users to voluntarily pay a subscription fee. Some people buy new versions of the CD to help support the development even though they could download the updates for free.
Commercial apps would add new features and the software would grow bigger than it needs to be. Once a piece of software is feature complete it would be nice to not feel compelled to add more to it just to get people to buy the latest version. As developers we know how much work goes into support and maintenance for software. I'm happy to see OzTex avoid this bloat, but want to know how we help an open source or share ware project while it is in a long term maintenance phase.
Also in Java Today, Swing offers highly-customizable default GUI components and the ability to create your own. As Andrei Cioroianu writes, "there are situations where you have to build your own components from scratch, which requires a thorough understanding of the internal mechanisms of AWT and Swing." In Creating Custom Desktop Components, he goes through the steps of developing custom painting, modelling, and event-handling code for components in his image-annotating demo application.
We've opened a new forum discussion on that asks what do you put in a help wanted ad. This recent ad posting on the MacroMedia site sparked a thread on whether or not they went over the edge. How clear should you be about what you are looking for? When looking for a job, how carefully do you check that you meet the conditions described in a job posting. Note: the original posting was removed but has been reposted by a reader if you scan the thread for a lengthy response you will find it.
Ozgur Akan writes that the OS Community is Cultural Creative in today's Weblogs. This phrase is used "to describe people whose values embrace a curiosity and concern for the world, its ecosystem, and its peoples; an awareness of and activism for peace and social justice; and an openness to self-actualization through spirituality, psychotherapy, and holistic practices."
Jimothy writes about including failure-capture information in detailed messages
In today's Forums. "That's a good start, but you can go further by including specifics. For example, FileNotFoundException tells you what file was not found. An exception thrown by a parser (e.g., SAXParseException) can tell you the line and column number of the failure.[..] The line number from the stack trace alone doesn't help, because that line of code is executed multiple times. Help the exception help you pinpoint errors."
Hlovat says sometimes you do want to ignore exceptions. "There are circumstances when program termination with an error message is the best that you can do. EG if a compiler can't access a file because of a hardware problem there is little point continuing. For a GUI program I find a top level catch clause that reports the problem to the user very useful."
Moderator Ron Hitchens writes that "We should keep in mind that the "throws" clause in a method header also serves as documentation. Do you enumerate all the checked exceptions a method throws, even if some have a common superclass? Do you ever use "throws Exception" to reduce the clutter? If a method throws so many different exceptions that it's cluttered, is that a red flag?"
In today's java.net News Headlines
- Final Relase: JSR 94 - Java Rule Engine API
- Oracle ADF Faces
- ThinFeeder Initial Release
- Pebble 1.5.1
- CodeRuler Update
- MultiJava 1.3
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using
our news submission
form. All submissions go through an editorial review before being posted to the site. You can also subscribe to
News RSS feed.
Current and upcoming
- August 19
Fort Worth Java User's Group: Runtime Code Generation for Java and Beyond
- August 25 UML Modeling with Java Studio Enterprise Webinar
- August 27-29 Central Ohio Softare Symposium
- September 8, 2004 Tools Support for JavaServer Faces
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.
Archives and Subscriptions: This blog is delivered weekdays as the
Today RSS feed. Also, once this page
is no longer featured as the front page of
java.net it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.