At last year's JavaOne Chris Oliver gave a presentation on JavaFX in which he discussed how he was interested in programming Java2D not in terms of JComponent paintEvent methods that launch into graphics.drawLine(…) or graphics.drawRect(…) code, but instead by allowing the develope...
The finest programmer I've ever worked with told me recently that she was giving up coding altogether. The reason – a succession of inept and incompetent managers had just destroyed her faith in software development. Recounting her experiences over the past couple of years, she categ...
Before Java I was a Smalltalk guy. I remember switching from one language to the other and the tipping point that you reach when you've mastered the new language and how many months it takes, not to mention the years, to do really good design and know-how, which patterns to apply and h...
One of the things I really enjoy at the moment is the recognition and adoption of agile programming as a fully fledged powerful way to deliver quality software projects. As its figurehead is a group of very talented individuals who have created the agile manifesto (http://agilemanifest...
An acronym occurs when the first letters of a phrase are combined into a shortened form that becomes an abbreviated way of describing the original. In science, they are often used to take a fairly verbose and complex concept, such as Light Amplification by Stimulated Emission of Radiat...
Hippocrates, one of the founding fathers of modern medicine, realized that those who trained to become physicians were not only able to use their skills for good and for progress, but also might be inclined to misuse all they had learned. To protect against such abuses, new grads back ...
Imagine you are a contestant on a TV game show and your grinning quiz master pops the question: 'Name the one thing you most associate with Google?' Think about your answer - write it on a card (don't show me yet). Turning your card over, it's likely to be one of the following...Great ...
One of the most fundamental design principles of Java is captured in its motto 'Write Once, Run Anywhere.' It describes how a .class file encodes its instructions at the bytecode level, allowing portability between different machines that, through a specific virtual machine implementat...
Once upon a time, software developers wrote code and ruled their kingdoms. Good programs had few bugs and performed their tasks efficiently and with style. The elite programmers went on to become designers who would lead others in their wake, instilling in them good software practices ...
Often in software I find myself preaching restraint to those who wish to move platforms for no apparent reason than to keep up with the IT fashion industry; however, even harder than the silver-bullet chasers is dealing with organizations where change is required, not only in a company...
The other day when I arrived at work my phone's voice mail light was lit up. Cool, except that after pressing the voice mail button I was asked to enter my password. Issac Asimov's first law of robotics states that 'A robot may not injure a human being or, through inaction, allow a hum...
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...
A number of very significant development efforts are underway that bode well for Desktop Java's future. On the language side is the Java FX script project http://www.sun.com/software/javafx/index.jsp. Java FX is neat because it provides a high-level scripting interface that runs on top...
Mike Milinkovich, executive director of the Eclipse Foundation, has been kind enough to answer some questions for Java Developer's Journal. Rather than rattle off the usual ones about the name, about why Swing wasn't used, or how much influence IBM still has, Mike has fielded questions...
Having attended two conferences in the past three weeks and seen untold presentations, I've come to the conclusion that irrespective of the subject matter, each presenter invariably falls back on the same technique to impress the audience: to rely on the skills of a conjurer or circus ...
Mike Milinkovich, executive director of the Eclipse Foundation, has been kind enough to answer some questions for Enterprise Open Source Magazine. Rather than rattle off the usual ones about the name, about why Swing wasn't used, or how much influence IBM still has, Mike has fielded qu...
In Bernard J. Baar's book 'A Cognitive Theory of Consciousness,' he describes the brain as having a single conscious area that can be occupied by one thought at a time. The unconscious part of the brain stores memories and experiences and, like the conscious brain, is capable of perfor...
At the moment there seems to be an extremely unhealthy obsession in software with the concept of architecture. A colleague of mine, a recent graduate, told me he wished to become a software architect. He was drawn to the glamour of being able to come up with grandiose ideas - sweeping ...
The phrase 'not invented here,' or NIH, when applied to technology, describes a resistance by a group to use a perfectly valid solution to a problem they're encountering because they'd rather build the answer from scratch than adopt something existing that already does the job. Assumin...
At the annual Alan Turing memorial lecture given by Grady Booch in London last month, he chose as his subject, The promise, the limits, and the beauty of software. It was an excellent address in which one of the themes was that for each of the incredible advances that software has brou...
The Standard Widget Toolkit (SWT) is the GUI toolkit used by Eclipse. The same folks that worked on the Common Widget (CW) library for IBM/Smalltalk developed it, this time for Java. Now, it's maintained as part of the Eclipse Platform project and distributed under an open source licen...
I am always in awe of people who develop hardware. They're the real engineers of our profession, the ones pushing forward the speeds at which things work, their size, and their connectivity. For example, in 2005 there were more computer chips produced worldwide than grains of rice harv...
The year 2006 marked the tenth anniversary of the Java language and for me is the most significant in its history. The most important event was the announcement that a GPL version of Java SE will be available sometime in the first half of 2007. If nothing else, all the back and forth '...
Ted Nelson, inventor of, among other things, hypertext, once lamented that software development today is at the same evolutionary stage film making was at 100 years ago. Back in the 1900s, when the technology of film production was in its earliest stages, the cameraman was the person i...
Abstraction, as defined on dictionary.com, is 'considering something as a general quality or characteristic, apart from concrete realities, specific objects, or actual instances.' It's a powerful concept that underpins software reuse. When you implement a problem, if, instead of starti...
Recently I was able to talk to Tim Cramer, executive director of tools at Sun, about NetBeans. Tim started in engineering doing supercomputer compiler work, moved to more generalized hardware compiler work, and naturally moved to JIT/dynamic compilers in Java during its first few years...
In 1996, Sun created Java and the terms under which it is distributed. Since then, the Java Community Process (JCP) has emerged, allowing companies to participate in shaping language changes, but the ownership of trademarks, licensing agreements, branding, and other fundamental product...
Computers can generally be characterized into two types: ones that are designed to have more than one user attached and those intended for a single user. In the beginning almost all computing was done on large multi-user machines, partly due to their expense, which precluded their use ...
I've used the map to store things in a keyed fashion and want to iterate over the keys and the value for each. Problem is, each time I do it I find myself thinking how inefficient it must be. The keys iterator returns the keys so it has to walk the keys, however the get(key) has to loo...
One of the phrases that has always puzzled me is 'business logic'. It seems to crop up a lot in presentations, articles, sales pitches and so forth. The one I saw it in most recently was a talk about how great web servers are because they keep all of the business logic on the server w...
First one today from 'Visa services' who'd insisted I entered my credit card details and password on their web site today to avoid irreversible instant deactivation of my account. Only problem is I don't have a Visa card and their URL had a Zambian IP address so I quickly deleted it.Ne...
The problem with the web has always been that despite anyone trying to convince you otherwise, it's a page based latency bound transaction model that is a dressed up graphical mainframe. Works well because the transport protocol is neutral and ubiquitous allowing heterogeneous end poin...
Back in 1996, Java was originally hailed as a way of making the Web more appealing through applets, and, with its 'write one, run anywhere' philosophy, as the holy grail for desktop apps that would be truly cross platform. The truth is that both were oversold at the time. With the comb...
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...