Welcome!

The Source for All Things Java

Joe Winchester

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


Latest Articles from Joe Winchester
When the phrase Web 2.0 came out a number of people were sceptical about what it actually means. Being objective, it's a collection of disparate technologies that make web sites more usable. Everyone wants their user interfaces to look and work better, and most of web developers' energ...
Some of the words I dread most in a meeting are: 'What if ?' They're fine in the present tense of 'What if a user tries this option?' or 'What if the database read fails mid flight?', but as soon as the future tense is introduced I begin to worry. 'What if the database and middleware c...
When someone in a corporate boardroom decides what their IT strategy is going to be, it isn't based on what language or software architecture they will use, but on how a system can provide value to their business. Very few organizations buy their hardware and OS first, and then tool up...
Recently I was called in at the last minute to help out with a sales opportunity. The team had been working hard on a proposal for many months, during which they'd built a large working prototype system that talked to the customer's actual back end systems using web services and SOA. T...
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 de...
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. Th...
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 r...
Ajax is an odd beast, because it gives a very rich user experience when compared to a traditional web page (Yakov writes wonderfully about this at http://java.sys-con.com/read/163232.htm), however apart from that it?s hard to figure out what is so great about it. Good technology wins i...
'If Java is to remain at the forefront of technology for the next 10 years,' writes Joe Winchester in his Java Developer's Journal column, 'it needs to find a way of decoupling API calls between internal code and external blocks, perhaps even introducing soft typing calls across progra...
Rumors of this name change have been flying around for a while but it is now official - the brand has been kicked into the bucket and replaced instead with a more verbose name and 'Platform.' This probably isn't such a bad thing. The 2 was sort of a year 2000 thingy (see Calvin Austin'...
Ask most people on the street what Java is and they might tell you it's an Indonesian island. If you happen to bump into some programmers, they'll probably tell you it's a language that reads like C++ but has garbage collection and a virtual machine to make it portable. The connection ...
The world's first office computer, known as LEO, was created in the 1950s by Lyons, the British teashop giant. Its aim was to replace the thousands of clerks who did the billing, invoicing, and stocktaking, and also tracked the supply and demand of sticky buns and cups of tea that the ...
At a presentation a number of years ago given by Josh Bloch he made a comment that Java as a language hit the 'sweet spot' of programming. His metaphor was based around the fact that the language was straightforward to learn and that rather than containing many esoteric coding construc...
Java has been the springboard for some of the most successful open source projects today including JBoss, NetBeans, and Eclipse. Several folks though have felt the missing piece was an actual open source implementation of the runtime. Some view Sun's stewardship of Java and the JCP as ...
The problem with defects is that while they occur, the cost of finding and preventing them has a diminishing return, so the approach often taken is that once no more serious defects can be found in a test pass, all that remains must be minor and the programming is complete. The whole a...
I witnessed a recent BOF conversation in which the general feeling was that the browser GUI and its accompanying plethora of back-end frameworks had let people down by delivering a poor return on investment and a weak user-interface experience.
Tim'O Reilly, the eponymous publisher, kicked off EclipseCon 2005 in Burlinghame earlier this year with an excellent presentation titled 'Open source business models and design patterns.' As well as documenting various failures and successes in the computing world, one message that str...
At a recent presentation given by a software engineer from a very large automotive company, I gleaned some remarkable facts:for a particular car model where the basic price goes up as the livery becomes lusher and the initials on the trunk longer, half of the increase in value comes p...
Go fast, it runs too slow, you've got to make the number show. Diddle de bop, da la de doop, sitting around and feeling groovy.
Earthdate: October 15, 1997, and the Cassini spacecraft is launched. Mission: to boldly go and explore the planet Saturn.
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 definition...
The key to building a distributed application successfully lies in a sensible partition of work across the different boundaries and devices. With a client/server program, one of the advantages it offers over a more traditional thin client is that for each task, instead of having to wai...
While at lunch with colleagues recently I overheard four very able Java developers swapping horror stories of the kit they'd cut their teeth on as junior programmers. One had used a Sinclair ZX-81 with 1K of RAM and a black and white TV and a tape recorder in lieu of a hard drive. Thin...
My first programming job was done using Report Generator Language (RPG) on the IBM System 36. The hardware was green screen, the tape decks reel-to-reel, and the printers large and noisy. The language itself was very data-centric with each program declaring formatted Input or Output da...
One of the principles of any OO language such as Java is an object's ability to encapsulate its data and provide clients with a specific and well-defined API. This is done through the visibility keywords public, protected, and private.
On a recent trip to Turkey to meet with a customer, I heard a comment that one of the reasons Java is being held back in that country is because of an almost ubiquitous local bug.
Sun has made two significant announcements recently in the Java desktop space: Java Desktop Integration Components (JDIC) (jdic.dev.java.net) and Java Desktop Network Components (JDNC) (jdnc.dev.java.net), both of which are open sourced under an LGPL.
Several years back I was watching Independence Day, a fairly decent movie about aliens invading earth. It was an enjoyable film with some pretty neat special effects, except my suspension of disbelief broke down when Jeff Goldblum decided he would infect an alien spaceship's computer d...
While software frameworks are always created with the best intentions, I believe that many of them fail for the same reason that any other software project does: a lack of clear understanding by the programmers of who their users are and what scenarios they are trying to solve.
Among geneticists there is an ongoing argument about which species is superior: humans or bacteria. Both are the end product of millions of years of evolutionary refinement; they just took separate routes on the road to survival.
Recently I was having a discussion with a colleague about traditional versus Web clients. Instead of hearing the usual defense about how much easier it is to deploy and manage a thin client application, his point was that client/server fails because fine-grained transactions don't work...
At the opening keynote speech at the EclipseCon conference last month, Erich Gamma showed the Swingset application running inside an Eclipse viewer. For me, it was a definitive demonstration of the two GUI toolkits side by side. Instead of Java GUIs having to choose, it's now mix and m...
Java Web Start (JWS) was created as part of JSR 56 and is included with JRE 1.4. The idea was to provide a way to distribute a Java application that would run in a JVM on the client, but avoid the problems associated with traditional applets. JWS does this by incorporating the features...
This talk will look at the Java desktop space, discuss the issues and technologies, and then discuss what's at stake if Java can't recapture its lost pride as a client platform...versus what's at stake if it can.
Recently I was giving a demo of Java Web Start (JWS) to a customer and while they appreciated that systems management issues had been addressed, someone in the audience said 'it's just client/client all over again - not really client/server.' Her point was that true client/server is ab...
A problem encountered by any GUI is - if the user resizes the application window at runtime, how should this be handled? The most desirable effect is that the controls flow into the new space to make the best use of it (lists and trees grow while buttons remain a fixed size), and an ov...
Reports of Java's death on the desktop may be somewhat premature. A recent Giga group report, 'Return of the Rich Clients', predicts that in the next three years browser-rich clients will grow by 350%, stand-alone clients by 250%, while HTML will decline by 50%.
Java serialization was initially used to support remote method invocation (RMI), allowing argument objects to be passed between two virtual machines. RMI works best when the two VMs contain compatible versions of the class being transmitted, and can reliably transmit a binary represent...
The first part of this article (JDJ, Vol. 8, issue 4) introduced the Standard Widget Toolkit (SWT), and showed how graphical user interfaces can be created using some of the basic widgets found in SWT. In addition, layout classes were described that allow widgets to be arbitrarily posi...
The Standard Widget Toolkit (SWT) is a Java class library that allows you to create native user interfaces. It's designed to provide efficient, portable access to the underlying facilities of the operating system on which it's implemented. SWT uses native widgets wherever possible, giv...