Essential to the development of complex systems are tools that help the
developer locate, analyze, and fix problems. Debuggers provide support for
this by letting a developer inspect the internal state of a program at
runtime, as well as suspend and resume execution statement by statement.
The originators of the Java programming language defined a debugging
architecture, but since its conception Java has advanced into new areas of
deployment topologies and optimization technologies that present a further
set of problems. This article covers some of the background behind these
issues as well as the activity in the Java community to provide solutions.
Examples of debugging solutions are drawn from the IBM VisualAge for Java
integrated development environment (IDE), al-though the issues are applicable
to other environments as well.
Java source code is w... (more)
In a recent presentation I attended, the speaker warmed up with a couple of
bulleted lists that outlined the agenda of the session before moving onto his
third slide that was clearly many days, work of stitching together powerpoint
glyphs and figures in a sort of three dimensional loop that attempted to show
the progression of software APIs around the evolution of networked computing.
It was utterly baffling and the more I stared at it, the more I felt I was
looking at some kind of latter day Escher drawing. I gazed around the room
and saw most of the other attendees on their lap... (more)
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, giving an SWT program
a native look and feel and a high level of integration with the desktop. In
addition, SWT includes a rich set of controls such as tree, table, and tab
folder. This article introduces SWT by describing some of the basic concepts
Hello World: A Simple SWT Program
The e... (more)
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 representation of the
object based on its internal state. When an object is serialized, it must
also serialize the objects to which its fields refer - resulting in what is
commonly called an object graph of connected components. Although the
transient keyword can be used to control the extent to which the
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.
In the Turkish alphabet there are two letters for "i," dotless and dotted.
The problem is that the dotless "i" in lowercase becomes the dotless in
uppercase. At first glance this wouldn't appear to be a problem; however, the
problem lies in what programmers do with upper- and lowercases in their code.
The two lowercase letters are \u0069 "i" and \u0131 (dotless "I") and are
totally unrelated. Their uppe... (more)