No, this is not "that" post.
Since my post a while back about the new features of Java 5 (or Java 2 1.5 5.0 SE, or whatever the hell it's called), Sean Corfield and I have had a couple IM discussions about languages, development environments, developer mindset, tool support, frameworks, and various other things.
We were talking this evening and he pointed me to his post about Web Services, ColdSpring, and Reactor that I'd missed while I was ill last week. I made the comment that I'm doing much the same thing, except with Spring, Hibernate, JUnit, and SpringMVC (to his ColdSpring, Reactor, cfcUnit, and Model-Glue:Unity). He responded by saying, and I quote, "except in evil java rather than wonderful coldfusion ;)". As you can surmise, we have differing opinions on some things, though at least from me, great respect for the other's viewpoint. ;)
I happen to very much like compile-time typechecking, though largely for the improved tooling it allows (though I do enjoy JavaScript very much). I like strong IDE support. I don't mind a little extra complexity for some additional flexibility, especially if I can ignore the complexity up front.
Sean likes his SmallTalk. Later in that same conversation, he said "I never really liked the over-intrusive Java IDEs". He'd also said something about how evil the EJB3 spec's use of in-code annotations for persistence was, even though they're fully overridable via external configuration/mapping files.
What's utterly fascinating to me is that we both get the job done (and it's almost the same job!), but approch it with such different mindsets. It's not that we were trained differently, there's just some innate difference in the way we approach a given problem. Something to remember next time one of those "religious" debates comes up on some list or another. Almost always at least one wrong answer, but very rarely a single right one.
Should have signed up for Psychology, not Computer Science, eh?
I always find the "this is way to do things and everything else sucks" arguments idiotic.
If one solution was truly superior in all cases, the others would fade away into oblivion.
Gus
Hello Barney,
Given your choice of technologies ("Spring, Hibernate, JUnit, and SpringMVC"), you should take a look at the appfuse project (appfuse.org). I guess by now you're past the start up phase that appfuse is meant to help you with, but i'm certain you'd find a few interesting new ideas in the framework or the surrounding community (imho one of the highest signal to noise ratios around).
Regs,
/t
If it's any consolation for the CF'er – I spent about 4 hours this saturday editing a JSF component's "renderer" implementation. After all was said and done I couldn't help but think about the simplicity of CF's custom tags.
To me CF vs. Java boils down mostly to the size & type of the project (especially when there's existing code to levarage) and other environmental factors (skillsets, infrastructure, etc). Both have their place and it's obvious that the *right* way to do something is not language-specific.