I was talking to my boss Kevin, and we were talking about how concise ColdFusion makes certain rote tasks, and he mentioned trying to duplicate CFHTTP in Java. He talked about how it went on for line after line, after line. I figured he was talking about something in the order of magnitude of about 2 or 3 times as much code.
He forwarded me a post on making HTTP GET and POST requests in Java. As the post shows it takes 12 lines of code just to import all of the classes you need. When you’re all said and done it takes about 30 or so lines of code to actually make a GET request. So it takes about 42 lines of Java code to duplicate the functionally that can be called in 1 line of ColdFusion using CFHTTP. I never noticed it was that big a difference. All that versus:
Now, I’m sure there are easier ways of doing this. And after you build the class and method once, you can just reuse the object repeatedly. But in this day and age of SOA, SOAP, and REST, that seems like something that should be built into the language.
I’m not trying to make this a bash Java post. Really I’m not. Java can do lots of things ColdFusion cannot. In fact Java networking is this verbose because it has more options; it can do low level socket communication. I know, when I’ve needed it in ColdFusion, I’ve dropped down to Java to write it.
But as developers, I think there are lots of places where we don’t add value, but are still forced to work:
- Getting reporting data out of a database? You add value by writing good complex SQL, but not by writing the database connection code.
- In basic database applications, you add value by designing the database, but not by writing CRUD code.
- In a REST and SOAP world, you add value by mashing up services people have thought of combining, not by making the HTTP call to get the data.
I know frameworks, libraries, code reuse, and other encapsulation techniques are ways around this.
ColdFusion as an abstraction layer on top of Java is another way. It’s the way I do it. And because I do it that way, I never have to write more code then I have to for an HTTP GET request, or email, or database connection, or .NET integration, or Exchange call, or Spreadsheet creation, or …
4 thoughts on “CFHTTP equivalent in Java. Really, Java, Really?”
I agree about Java and other lower-level languages. Why waste your time?
Anyways, here is a cool UDF for making socket calls via Java with CF: http://www.cflib.org/udf/easySocket
I really don’t know anything about CFHTTP in Java…
Is there any kind of help for me…?
Is there any ideas about it…?…What exactly it is..?..
If any information, post here….
That is pretty righteous. Java is the elderly, wise grandfather who you can turn to for the occasional tidbit of obscure knowledge or trivia, and ColdFusion is the 20-something heavyweight that can knock most obstacles out of its way with a quick hook or uppercut. Sure, the grandfather can gradually debate his way out of any predicament, but it takes way longer than it has to, and you get bored out of your mind with it. ColdFusion doesn’t stop to argue. It bastardizes programming tasks first, asks questions later.
Java = Jeff Goldblum
ColdFusion = Chuck Liddell
URL url = new URL(“http://www.y.com/url”);
InputStream is = url.openStream();