Wednesday, April 9, 2008

My CF IDE Wish List

I drafted this awhile ago and never published it ... but as I was cleaning out some comment spam I came across it and thought I should put it out there. So here goes!

[In response to a a community-published survey about a ColdFusion IDE] I appreciate the reasons for doing a survey, but I really don't see the value in this particular survey or its predecessor from Adobe. My answers were basically... Yes. All of that. Important. Happy to pay for it. What else?

The features listed are basically what's available to us now, although not in a single IDE and perhaps at varying levels of quality. Although it would be a big improvement to see those things done right in a single environment, I think there are a lot of additional features that would really make the IDE worthwhile. Some things I would like to see – pie in the sky – are…

Integrated support for CF Reports – not a separate development IDE – it may or may not be a good idea from a performance standpoint, but it sure would be convenient! Or alternatively, opening up the CF Report format (CFR) into an xml-type language that can be generated by any number of tools - either community created, or perhaps, if I may be absolutely ridiculous, InDesign?! Reporting IDEs across the board are atrocious, but a single one, done right, could be revolutionary.

Integrate the server into the IDE so that the CFML you write is being actively compiled/interpreted sort of like it is in FlexBuilder. Then I can catch errors and typos as they are written – when I’ve mistyped a method name or not included a dependency. I believe this is a really complicated thing to do, but it would truly enhance productivity.

Improve support for SQL code. I know this was mentioned, but I want to emphasize it. I think the current workflow most developers use for writing SQL sucks. I don’t want to have to switch to my database IDE – that does nothing for me when I’m writing dynamic queries. The RDS Dataview query builder in FlexBuilder is ok, but limited – it doesn’t understand complex queries and is not intuitive for use with parameters/variables. And I want SQL syntax highlighting within my CF IDE.

I think the CF Extensions for FlexBuilder for generating CFCs are nice, a good start, and I’d like to see them enhanced and customizable. The XSLT or CFML approach that Brian Rinaldi uses for Illudium PU-36 CFC Generator templates works well for me. In fact, I really like Illudium, but if it was all within the CF IDE, even better. I'd also like to see some options to generate CRUD forms based on database tables. I realize you can sort of do this with the application wizards, but I'd rather be able to do it in small pieces, which I can then easily integrate into my application or site, instead of having to build the whole shebang, extract out the small parts I need, and then modify it so heavily I may as well have written it from scratch. In other words, I'm sick and tired of hand coding forms...

I think this one should be simple…fast access to CFIDE/Admin console from the IDE! Maybe sort of like the RDS approach – list all the CF instances you can connect to, and then click once to get to that particular admin. Or be able to browse admin settings right within the IDE.

This may make some hard core developers squirm or perhaps vomit…but I think having some well written “starter” applications bundled with CF would be useful. Sort of like Access comes with database templates for several common types of applications – contact management, inventory, project management, issues database, survey, blog, simple CMS… the same idea, but web-enabled. One key factor: have a well designed model that can be ported to various frameworks with minimal effort. It would be difficult to choose one particular framework, but if it was done right, it could be easily customized.

I understand there are probably good reasons to not do many of these things, but I’m just saying, as a developer/designer, these things would make my life a lot easier, and that’s what CF is all about, right?

No comments: