Some Assembly Required

During the last two weeks I have been on a very exhausting and frustrating journey through the world of Java web and persistence frameworks. I have been looking at a lot of different platforms, libraries, and APIs, and the reality is, it’s hard to get all of these beasts to play together well. These frameworks are simply not very composable, and the Java platform in general doesn’t provide the kinds of mechanisms to make disparate systems easy to snap together. Of course, such language features aren’t very appealing to work on, so they tend to get short shrift anyway, but the cost in development effort is very large.

The interesting thing is that Java does have the potential to provide snap-together capabilities, because of its binary portability, powerful class-loading abstractions, and the ability to create well-described modules (i.e. the whole JAR format). But it just hasn’t happened, and now everybody is just kind of used to manually working out all of these issues. People grumble a lot, but we’re all used to it by now.

Anyway, that is a big topic, and one that would require a great deal of thought and effort to devise an appropriate solution to. But with the explosion of containers, and persistence mechanisms, and web-service frameworks, and so forth, the need for something to make it easier to compose these systems is only going to increase. Even if it’s just something akin to a thread analyzer, like a classloader/dependency analyzer that will monitor your system and tell you exactly what is messing everything up.

As for me, I’m going to go with something much easier to get working, because I have a deadline! :-)

Leave a Reply