I'm an RIA Developer who owns a motorcycle custom paint shop, who loves to race anything with wheels. I also enjoy woodworking, cooking, fine wines, liqueurs and dark beers. So if nothing else my blog should be eclectic.  
May 9 2008

ColdFusion 9 Feature Request: Drop Ajax/JS libraries

Posted by Russell Brown at 11:35 AM
18 comments
- Categories: ColdFusion | Development | YUI | JavaScript

Yes, I said it. Going forward I do not think that Adobe should waste time on implementing JS Code libraries. Ext, YUI and others exist so you can easily integrate them into your code already. In the last few months alone I believe there have been 2 or 3 version upgrades alone of the Yahoo YUI tool and a 1 major version upgrade for Ext.

If you want to have an AJAX driven drop down, write it yourself or download a custom tag, or better yet; write the custom tag yourself and distribute it freely. I would much rather see the time spent by engineers working on ColdFusion spent working on the server side portion of ColdFusion vs. doing these seemingly 'cool' integrations. Don't custom tags exist for this purpose alone? Why build it into a server side product?

I'm tired of seeing posts and emails and requests to implement further feature sets, upgrade versions or change libraries all together. ColdFusion does not need to be my meeting ground of technology. If you had spent 2 more minutes writing your code you could have implemented the Ext library yourself, probably done a better job and you won't be beholden to a server side technology for your client side code...

Flame on

 

Comments

Sana

Sana wrote on 05/13/08 4:34 PM

Hi Russell

I am 200% agree with you, I was thinking about this stuff, even 8.0.1 is not that cool for ajax stuff.

Adobe should offer better tools ...... might be complete integration of hibernate, video, audio capabilities etc
Chris H

Chris H wrote on 05/13/08 4:36 PM

ah, finally!
seriously, what's next, CF writing bloat HTML for me so i don't have to design my own websites? i learned ExtJS pretty quickly and that's what you will have to do if you want to get any real power out of the Grid, Tree, or other components.
i can only agree, focus on the server side, like the performance boost and cfimage tag in CF8.
John C. Bland II

John C. Bland II wrote on 05/13/08 6:00 PM

I completely disagree. In this case you could nix a whole lot of CF tags simply due to the fact that you could just write the Java code yourself.

Just as with the underlying Java, CF makes it easy to build a web app by wrapping the Java functionality into simple to use tags. That's the heart of CF.

Consider this:
cflayout type="tabs"
       cflayoutarea title="MyTab" source="includes/somefile.cfm"
/cflayout

Now, in Ext you'd have to write this:
      // second tabs built from JS
      var tabs2 = new Ext.TabPanel({
            renderTo: document.body,
            activeTab: 0,
            width:600,
            height:250,
            plain:true,
            defaults:{autoScroll: true},
            items:[{
                        title: My Tab',
                        autoLoad:'includes/somefile.cfm'
                  }]
      });

You don't like the Ajax stuff...don't use it. Very simple fix to the issue. Remember, not everyone "gets" JS just like not everyone understands communicating with LDAP, sending email, manipulating images, etc with Java.

[/flame]

:-)

(btw, I can't see the submit button for the comments and the "Remember my information" is partially cut off by the blue footer bg. just an fyi.)
John C. Bland II

John C. Bland II wrote on 05/13/08 6:00 PM

My comment looks crappy without line breaks. What up wit' dat?
Russell Brown

Russell Brown wrote on 05/13/08 6:07 PM

@John: When I get a chance I'll fix your comments, not sur whats up.

Yep I would nix all of them. CFForm, CFInput, CFLayout.

Sure they are great, but I also feel like too much focus has been taken away from server side features in lou of these cool client side features. Let some 3rd party company build these as custom tags and sell them or give them out for free...

I'm more afraid of ColdFusion loosing focus and trying to take on too much. Why blur all the lines, let some products stand on their own...
John C. Bland II

John C. Bland II wrote on 05/13/08 6:29 PM

Ok...now I would agree with you regarding them taking precedence over server stuff. I wouldn't nix'em or send'em to a 3rd party but I agree they shouldn't be in the top 10 of to do's for cf9.
Adam Haskell

Adam Haskell wrote on 05/13/08 8:19 PM

Port them to customtags and Open Source them, or if CF is extensible like OpenBD just opensource those Java classes. Things like cfajaxproxy are nice but cfgrid and tree I think those are the types of things that should be community driven and open source.
Adrock

Adrock wrote on 05/13/08 10:36 PM

I guessed you missed the announcement at cf.Objective() regarding Adobe's partnership with ExtJS. So, in short. No. It's not going to be dropped and Centaur has a lot of new Ajax features in the works.

I recommend you take John's advice and just not use them if they don't meet your needs. This is specifically why can be called manually, we don't want to force a set of UI controls on you if you've got something that already works for you.
Russell Brown

Russell Brown wrote on 05/13/08 11:35 PM

I take no issues with not using them, and that's not the point. It's more about effective use of the ColdFusion Dev team.

I'd rather have them spend more hours working on making the ColdFusion Server faster, fixing bugs and expanding the server side functionality.

I can't fix Adobe's CFThread to work the way I think it should (easily), but I could certainly write my own CFContainer tag...
Adam Haskell

Adam Haskell wrote on 05/13/08 11:38 PM

@Adam (ok that feels odd) I brought up the ExtJs announcement else where (maybe in my share comment on google reader). I get Adobe's value add here but it is frustrating with Yui's (or other library) release iterations being much shorter than Adobe's. I'm assuming (ney hoping) the new deal with ExtJS will probably mitigate the lag a bit thought?!?

Since its not going away I hope Adobe has 1) a lot of focus groups smoothing out easy use with a big target on easier customizations   2) Is employing usability experts that can validate that the default behavior of the ajax controls are indeed usable. I can say with experience our UI guy (used to be with IBM) is not a big fan of CF8s outpoop, some to do with CF8 some to do with ExtJs's behaviors.
Chris H

Chris H wrote on 05/14/08 2:56 AM

there are already multiple extensions for ExtJS (2.0) support, so the point is that the CF team shouldn't waste time on implementing a library that is updated and changed every few weeks and concentrate on improving the server-side architecture, like cfdocument, because it still can't produce PDFs that look the same as in the browser.
and i agree, drop cfform, cflayout, etc., it's all just bloatware...
Andrew Powell

Andrew Powell wrote on 05/14/08 8:24 AM

My problem with this is that most of the AJAX libraries try to stick to the KISS principle.   Why should CF try to make it even easier?   At some point, you have to, as a server platform, stop trying to hold developer's hands and let them use what's out there on their own.

Flash Forms was an attempt to do the same thing with Flex, and you see where that ended up.   It might as well be deprecated at this point.   Why do I have the feeling that the CF AJAX stuff will go the same direction?
Raymond Camden

Raymond Camden wrote on 05/14/08 11:03 AM

I don't agree with this. Even though I ripped out a lot of the Adobe Ajax stuff from http://www.coldfusionbloggers.org, I only was able to do so because I've gotten more familiar with Ajax. The ease of use is far more important then I think most people realize. Those of who blog, and read blogs, are the upper crust compared to most of the CF developers out there.

I'll also add one more point. Adobe's Ajax support isn't just UI stuff, but plumbing as well. I still say that cfajaxproxy is one of the most important features ever added to CF. Being able to use my CFCs via JS with one simple tag is incredible.
Russell Brown

Russell Brown wrote on 05/14/08 11:09 AM

I wouldn't put cfajaxproxy and cfform in the same context. I believe that holds that special in between ground, both are very different IMO.

Your right though, it is often some times too easy for us to forget the newer developers and how one of ColdFusion's biggest pluses (and sometimes negatives) is how easy it is to use and learn and the immediate power it gives an FNG.
John C. Bland II

John C. Bland II wrote on 05/14/08 11:27 AM

Andrew, you're right about Flash Forms but wrong about the Ajax stuff. As Ray pointed out, cfajaxproxy rocks hard!

Again...CF makes things easy so we, as CF developers, can easily get things done. It isn't about "how easy [your favorite JS library] is to use" but how CF can help you get from 0 to 60 REALLY fast. Look at my first comment regarding the cf tabs. (thanks for fixing my comment Russell)

Still...don't like it...don't use it. It isn't forced upon you nor is, to my knowledge, the CF team putting Ajax stuff before more important server work. Based on that last statement this is a non-issue, according to the original post.
ike

ike wrote on 06/10/08 1:29 PM

I've always rolled my own AJAX widgets because the ones built into ColdFusion have never been very good... at least not in my opinion... and I wouldn't expect them to be because it's a one-off thing for the ColdFusion team -- it's not their top priority, it's just something they do as a bell/whistle at the end of the day. There was a lot of fanfare about the updates to CFFORM in version 7(?) and I remember hearing the team lead (I'm not remembering his name right now) talking in a presentation about how they'd wanted to update CFFORM for a long time to make it faster and better, but they couldn't get to it because they never had the time. Because - as it should be - it's not a priority for them. The one thing that really came out of that was XML forms (and possibly Flash forms although I don't use them). I don't use CFFORM still because even the XML forms implementation wasn't as flexible as I wanted.

But I'd be plenty happy to have them not only stop working on javascript features, but for that matter remove CFWINDOW. They won't for obvious reasons, but CFWINDOW has just unleashed a hideous evil on the world because people use it indiscriminately, not remembering that people stopped using popup windows left and right in the first place because users were complaining about their indiscriminate use. CFWINDOW just takes us straight back to those good old days of pages cluttered with popups -- with new and improved popups that have more bugs in them like they don't play nice with Flash. I'd much rather see carefully considered and well implemented AJAX.
ike

ike wrote on 06/10/08 1:32 PM

I agree with Ray about cfajaxproxy though.
adrock

adrock wrote on 06/10/08 7:19 PM

@Ike

There isn't a single feature that is treated as a one-off bells/whistle. Adobe has updated CFFORM with every release. Back in the CF5 days it generated some nasty HTML. CF7 specifically did a bunch to clean up the html, so whomever told you that it's wasn't worked on was flat wrong. CF8 also updated CFFORM as CFGRID and CFTREE are part of that.

Yes, Flash Forms have pretty much been deprecated. At the time Flash Forms were added to CF, Flex was a server product that cost $20,000US. Now Flex is open source and the Builder is around $250US. Flex is recommended solution for flash forms. Exactly what wasn't flexible enough about xml forms? Maybe we can fix it for you in CF9?

I understand that many people like to roll their own, but understand those people are in the vast minority. Writing cross browser AJAX is a pain in the arse and most people prefer to spend thier time solving problems that haven't already been solved. In fact, Adobe's not the only one who understands this need as OpenBD just announced their intent to support Google Web Toolkit.

At cf.Objective() 2008, Adobe announced a commercial partnership with ExtJS and their intent to overhaul the AJAX widgets in CF8.

As far as CFWINDOW goes, that a personal opinion. I find it very handy when creating Master/Detail style applications. To say that we unleashed a hideous evil is a bit over dramatic.

Write your comment




(it will not be displayed)








Categories

Monthly Archives

Tech Blogs I Read

Motorcycle Links