Friday, July 30, 2010

CF is not Java, it is a Java Framework

So the other day I saw this on a ColdFusion mailing list and I am once again reminded how over simplified some of our developers view on the (Java) world is:

Why is no one mentioning the Java argument? Ask your friends if they think Java sucks and can't handle load.

I really dislike it when people say this. It simply shows a lack of understand and blind ignorance for the technology they love. Just because the engine is written in Java does not mean it is automatically at the same level as Java. There are many places where ColdFusion sucks (performance or other wise) compared to Java. There are indeed places where ColdFusion is better than Java. This is because ColdFusion is a Java framework and it all depends on ColdFusion's architecture. Much of ColdFusion's architecture rely's on reflection, which still has a stigma in the Java community of poor performance (though that has largely gone away). Due to this reliance CF has been tweaked over the years to get performance so things like CF9's hibernate integration are wicked fast even compared to the typical Java implementations (you have to pay the reflection piper with Hibernate either way). Heavy objects though will not work as fast with ColdFusion. Yes this has become much faster but it is not Java and it will never be Java. ColdFusion is a Java framework, please stop with the it is Java argument. Yes it does compile to Java classes but recognize that those classes are absolutely useless without the CFML engine that runs as a

framework to execute the ColdFusion generated classes. The engine has it's strengths and weaknesses just like any other Java framework. In the Java community if a site crashes I immediately ask is it wicket? I ask this because I've had bad experiences with it and memory management, among other things. No one is going to say ohhh well it is Java, b/c wicket still sucks (sorry anyone that likes wicket, I've not looked at it in years so it may well have risen above stuck pig level) as a Java framework.

No comments: