FishEye

FishEye has been public for a while now but I thought I’d write a quick note about from my perspective as a user. FishEye was recently released by the company I work for, Cenqua. I’ve not been involved in FishEye development but I have been using it for ages in my Clover.NET project work. We’re big on eating our own dogfood, as they say.
Continue reading “FishEye”

Is JDK 1.5 too clever?

I read Matt’s latest blog with some interest, yet, in the back of my mind, I couldn’t help wondering if Java is becoming too complex, a little too clever, in places. Is Java in danger of entering the C++ realm?

In the C++ projects I worked on, there would be some on the team who would know how everything worked – how the compiler found templates, conversions, when temporaries were created, etc, etc. These people were language lawyers who slept with the ARM under their pillow. OTOH, there would also be that part of the team who didn’t really grasp clearly how many things worked – how auto_ptrs worked, how the handle-body templates worked, whatever it may be. Ignorance is not always bliss and such projects, I feel, would be particularly fragile during their maintenance phase.

Of course, there will always be things that are complex in a language. There will be people who get it and people who muddle through. Classloaders probably fall into this category from even early versions of the JDK. As a language’s complexity increases, I feel the gap between the the two groups of people grows and the systems they work on become more susceptible to the unintended impacts of changes made to the system. Even the language lawyers sometimes slip and are surprised at what the compiler would do.

Most of this is just based on my gut-feel. I haven’t yet had the time to look in detail at JDK 1.5. However, when I see someone as cluey as Matt say “Now, WTF does that mean”, I wonder if that is a warning sign.

Overall I suspect that generics will be a boon for Java developers but some of the more clever constructions will just not get used that much, at least by the bulk of developers.. How many will really understand what

Enum<E extends Enum<E>>

means?

EJBs – you’ve come a long way baby

I haven’t blogged for ages for a few reasons. Mainly I have been working on some new developments at Cortex and not a lot of time to spare for other things.

This project is a J2EE project and surprisingly it is actually a long while since I really had a lot to do with a J2EE system. I’ve been doing lots of other systems around J2EE systems. Anyway, this is an EJB based system. I don’t really mind EJBs. They do have lots of issues but I understand those and overall they work OK for me. One thing for sure is that the advent of usable CMP and xdoclet cut down the amount of boring boilerplate code you need to produce.

I modified a few of the xdoclet templates in the area of value objects to suit my preferences. I can now mark some properties as readonly so they still appear in the value object but are not rewritten when the value object is set. Also, rather than aggregating related value objects, I can choose to just aggregate their primary keys. I find that often that is all I need.

Modifying xdoclet templates is a bit hairy but not impossible. The XML templating is a little cumbersome but the results are effective. I shouldn’t complain, xdoclet is writing more code than I am.

For the webapp famework, I am using a few OpenSymphony technologies. WebWork2/XWork is working out well. I’ve found a few bugs most of which I have worked around. OSUser provides a nice and simple method of defining users and groups. Finally we are using Sitemesh to add a lot of common UI stuff to the pages. I have to say that Sitemesh really rocks. It means that I can ignore most of the HTML fiddling on most of my pages.

I’m having fun getting back into J2EE development. It really has come a long way since we started at Cortex with Weblogic 4.5.1