Is it worth of learning cfclient API for mobile application development?

417 Views Asked by At

I am ColdFusion developer working in ColdFusion since last 2 years. Recently before few weeks i have started learning cfclient API of ColdFusion Splendor as I am always interested in Mobile application development. But today after reading comments on the blog

http://blogs.coldfusion.com/post.cfm/coldfusion-mobile-features-are-not-just-about-cfclient-but-it-is-necessary#comment-08603915-B031-CC32-1C2DE6521C233F65

I am in big dilemma, Is it worth of spending time for learning cfclient. Some of conclusions that I found after reading the comments on the blog are.

  1. Adobe never have a good track record on generating JS. They generate very ugly looking js.
  2. cfform and cfgrid were introduced with some client side functionality.But now a days no one loves to use it because they have not been updated since long and we can get more flexibility using custom js library.The same may happen to cfclient.
  3. It's a crappy decision from Adobe to focus on mobile application development instead of making the server side language more robust and fixing old bugs.
  4. cfclient inspires the developers not to learn JavaScript.
  5. Adobe is trying to solve a problem that does not exist.
3

There are 3 best solutions below

0
BKK On
  1. True, But if you're using CFClient, you're not wanting to write JS anyway, so what do you care what it looks like on the client.

  2. I believe Adobe has promised that we would be able to update the core underpinnings of CFClient (probably PhoneGap/Cordova) and other JS libraries.

  3. Agreed.

  4. I don't know about inspires.

  5. I disagree here. I'd love for a way to quickly deploy to mobile.

PS> I'm sure since this question isn't code related, it will get downvoted / deleted; Might be a better topic for the CF-Talk mailing list or some ColdFusion forum somewhere.

0
Adam Cameron On

I think you've answered your own question here, to be honest: don't waste your time.

Basically <cfclient> is, by Adobe's own admission, just a hook into the language to tell how the compiler should treat the code: translating it into JavaScript instead of compiling it to bytecode like with normal CFML. And it's a really crap way of achieving that.

The other reason is that they couldn't work out how to implement the hooks into ColdFusion Builder to make all its mobile-dev workflow work.

Another problem is that the Adobe guys are just... not any good at writing anything other than Java. This has been borne out by every single foray into anything other than Java that they write (this includes CFML, incidentally: they can't even write that).

So do you really want journeymen developers who aren't comfortable in the language writing wizards to write your JS for you? No.

Do yourself a favour, and just learn to do it properly. <cfclient> is just an example of Adobe having not learned their lessons over the years after all the <cfform>, AJAX-enabled layout widgets like <cfpod>, and Flash forms. They have never had the skillset to do this work properly, so don't put yourself at their mercy.

Oh, and I'm also voting to close the question as it's not one that can be answered objectively.

1
James A Mohler On

This is my take on it

  1. Even if it were good approach today, it is not future proof. New browsers will come, new javascript features will come. I fear that this won't move ahead.
  2. I could not agree more
  3. And some of the existing bugs really need to be addressed.
  4. <cfclient> asserts that client side development should be in cfml. IMHO, Coffeescript covers some of those concerns.
  5. There is a demand for Mobile friendly websites. If I had to pick ONE thing to move ColdFusion forward in this arena it would be: Can we get the JSON functions to work right

There are many ways that Adobe could have moved forward on the mobile application front. If they promoted various community based solutions that would be useful. I know Bootstrap + FW/1 + ColdFusion. But I don't know PhoneGap/Cordova + ColdFusion. I would be good to see those work together.