100% test coverage for Swing and database apps

A recent post about in-memory database unit testing by Mike Bosch reminded me of a presentation I wrote but never published about developer testing and how to achive 100% test coverage for nasty applications. High test coverage for most parts of an application is easy, for some parts it's difficult to do. The hard parts are Swing parts (which Jemmy can help with) and database parts (which hsql in-memory can help with). With the tips and tools in the presentation it's possible to reach 100% test coverage. But I conclude that most of the time 100% test coverage not needed.

cintoo Messages moved to Java 5

I moved cintoo Messages to JDK 1.5 because of several reasons. I know this will reduce the potential user base, but with Mustang on the horizon, a lot of projects are moving to 1.5 now or in the near feature. Beside I really like generics (being a strong opposer for some years, though IDEA could make code less noisy and hide generics completely) and Java 5 has varargs and outoboxing. This makes dealing with String formatting much easier.

Instead of:

format("{0} of {1} files removed",
new Integer[] { new Integer(3), new Integer(7) });

(there was a helper in Messages which took int[] )

now you can write

format("{0} of {1} files removed", 3, 7);

which is mapped to

public String format(String text, Object... args);

The Object... is syntactic sugar and is automatically mapped from "3, 7" to Object[] with
autoboxing 3 and 7 to objects.

Those Ruby Google trenders again

Those ruby google trenders again. As said before, if everyone is already using Java, noone will search for "Java" in Google 😉

The search volume is basically the increase in mindshare, not the mindshare. So Java has probably much more mindshare than AND the mindshare is increasing twice as fast. And if you search for ruby alone in Google trends, then it's clear that a lot of search volume comes from the word "ruby" not from people searching for the programming language (News found for Ruby includes "Ruby's remount row rumbles on", "Ruby Tuesday, Inc. Reports Second Quarter Diluted Earnings Per Share of $0.28" ... Compare this to the Java news which mostly concerns the Java programming language)

Ever more complex software stacks

In the last 30 years the software stack has grown from year to year. When I started coding in Z80 machine code, there was no software stack. Just the programmer and some hardware registers. No other software involved. Direct access to the machine.

From there software stacks grew, to compilers and libraries - I've experienced this with Pascal on CP/M and later C. With Java the stack grew to JIT compilers, virtual machines, garbage collectors, byte code compilers and plattforms.

To close the gap between the machine and the customers requirements one solution for many seems to be to grow the software stack even further. With MDA and containers the software stack grows to unprecented complexity. From PIM with transformations to PSM to a Java EE container, with AOP and compilers to Java, with byte code compilers to the VM with GCs. Then with JIT compilers to machine code (and from machine code to microcode). Where will the stack move next?