The Source for All Things Java

Joe Winchester

Subscribe to Joe Winchester: eMailAlertsEmail Alerts
Get Joe Winchester via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Top Stories by Joe Winchester

Paul Simon sings, "Every generation throws a hero up the pop charts." Each person who attempts to conquer the highly fickle music or fashion market frequently does so by merely rehashing old ideas. Trends are repeated and what was once passe becomes fashionable again, as the definitions of old and new are blurred by memory and packaging. Software is no different. Each new wave is set in motion by realizing the failings of the current technology and then trying to solve those failings. Rather than progressing in a forward direction, however, what often occurs is the very forces that drove the latest technology are also found to be lacking, and so there is a return to the old ideas. In some ways this is no different from politics where, if an incumbent is thrown out on the weakness of his/her current form, the opposition merely returns and attempts the ideas that fai... (more)

i-Technology Viewpoint: Java's Not Evolving Fast Enough

A programming API represents a documented contract between a function that provides some kind of computing service and those who wish to use it. In Java, once an API is used there is a physical contract between the two that the compiler and JVM enforce. If at some point in the future the author of the API wishes to make changes, they are limited in scope; if the author renames methods or removes arguments, programs that are bound to the previous signature will no longer run. The change can be published with the new version of the class library or framework so that users can upgra... (more)

When Fixing Problems, Look Beyond

One way in which technology is adopted is when an existing process is automated and made more efficient, cheaper, or reliable. Another is when a technique or innovation is applied to an existing process to drastically alter the way it occurs. The disadvantage of the latter is that it requires the idea being sold to someone who has to change to adopt it, and thereby carries a risk of failure. Applying a technology to merely streamline an existing process is a simpler to adopt as the implementation merely involves oiling an existing solution. Given the keystone that communication ... (more)

Where Are the High-Level Design Open Source Tools for Java?

I have just finished reviewing the book Open Source Development Tools for Java, which provides excellent coverage of such topics as log4J, CVS, Ant, and JUnit. There is a chapter on UML tools though in which the author almost apologizes for the lack of good open source design tools. There is a plethora of projects on SourceForge.net from J2EE runtime frameworks to IDE plugins, yet there is almost nothing that encroaches upward into the arena of analysis and design tools. One theory for this is that high-level design tools are the value-add that software vendors hold back from th... (more)

We Are Made to Persist. That's How We Find Out Who We Are

In Java's early years, the language received a lot of flak from its opponents over performance. Java turns its .class file bytecodes into machine instructions (MI) at runtime, something that costs cycles and is slower than a fully compiled language that creates the MI as part of the development stage. While to a certain extent this is true, the performance delta has all but been removed with the use of just-in-time (JIT) compilers that cache machine instructions in the VM and do other clever tricks to ensure the JVM runtime speed has very little slack. There was a time when JIT h... (more)