Geoff makes a couple blanket statements in his post about how the Java world doesn’t understand CFMX. I don’t agree with a couple of them:
· ColdFusion remains the only answer to making Java accessible to a mass of non comp-sci web developers — I don’t have a computer science degree, neither do 3 of the other 4 developers at Mindseye (all of whom have written Java applications and all of who have spoken at DevCon) and I’ve created a couple sites using Java & JSP technology so to say that non comp-sci web developers can’t understand Java is patently incorrect. I think it also bears mentioning that Java is considered by some to be a language for the masses:
“The advantages of Java is that it easily serves as a lingua franca – everyone can read a Java program and understand what is going on…“,
· …most Java developers fail to see where CFMX fits into their world of programming… — Why should they care? There are a number of other scripting languages that work with Java, PHP being one of them. Java developers have enough to worry about… they’re too busy choosing between web frameworks (struts, tapestry, webwork2), persistence models (obj, castor, jdo..) and templating mechanisms (velocity, cocoon..). It’s commonly mentioned/demonstrated that ColdFusion is easy by showing how few lines it takes to query a database, but has anyone ever asked an enterprise Java developer how many queries they put into a JSP? .
With that said, I think that Geoff has the right attitude, starting a “.. post-positive campaign highlighting CFMX/Java symbiosis” is a great starting point. Go one step further though. Build a J2EE application, learn Struts, use OJB. Geoff claims that J2EE people don’t understand CFMX. How well do CFMX people understand J2EE?
Well, learning some J2EE is exactly what I am doing right now (I have a webdeveloping/scripting background, no computer science degree). It helps expanding my horizons even if the vast majority of the apps I build are very far from being enterprise level.
I also almost immediately started leveraging Java in CFML for tasks that in the past required COM, CFX or, more in general, were not possible with plain vanilla CFML. I am manipulating images, zip/unzip files, using the DOM in XML, pass parameters to XSLT templates, validating XML files, all exploiting Java in CFML and I plan to do more.
While I think complex frameworks like struts, or technologies like EBJ are overkilling for 99% of my own projects, I slowly try to learn a bit about the more sophisticated aspects of J2EE too. I sincerely think that we can all benefit from crosspollination between CF and J2EE
Don’t get me wrong — you don’t have to have computer science to get into Java. Many of us who started out before comp-sci was even a respectable degree clearly didn’t bother with it. But the barrier to getting into Java is simply way higher than the barrier of getting into CF. One of CF’s biggest detractors historically has been bad CF generally works, bad Java tends not to work at all.
“How well do CFMX people understand J2EE?” — As a CF developer matures they gravitate to the engine underneath. I guess I’m trying to point out that more J2EE developers have disdain for CFMX than the other way around. Hell, I love CF and Java! I just want more Java folk to recognise the benefits of CF.