What do YOU want next for ColdFusion?

I'm sure many of you are still reeling from the release of ColdFusion 8... I know I am :). ColdFusion 8 has some tremendous features and has really taken the community by storm. If you haven't checked it out... what are you waiting for!?? ColdFusion 8 provides a deep discount for upgrades from either ColdFusion 6 or ColdFusion 7 (~50%off)... so even if its been a while since you upgraded... now is the time.

But that's not what this post is about. This post is a call to action! We're looking for more of your ideas. We are so used to our fellow developers, customers, and friends telling us everything that's missing! And... to be honest this has died down a bit... which hopefully means you love what we've built... but we can and are still making it even better! :)

So... what are the top 10 features/improvements/etc that YOU want to see in the next release of ColdFusion?

Give me your worldy and sage advice! Hit me with it, I can take it!

:) Jason

P.S. We know there are issues out there... and we'll keep working on those, but this is about making the future of the product better for all of us. Let's keep this about positive improvements!

9/18 Update: I started a new thread here to continue this discussion... looking for more of your big picture ideas. :)

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
Ben Nadel's Gravatar One of the things that I have always wanted, and this is purely a parsing issue, not a functional one (which I hope means its easier to fix) is the ability to reference returned values as "objects" without an intermediary variable.

Example to return method pointer and invoke directly.

<cfset GetMethodPoint()() />

Example to return array object and reference directly:

<cfset GetArray()[ 5 ] />

Functionally, these make sense if you store them into a variable first, but it simply won't compile. I don't use this often, but sometimes it would be very nice.
# Posted By Ben Nadel | 9/14/07 2:50 PM
Ben Nadel's Gravatar Sometimes (but not often) I think it would be cool if the CFSetting tag had a close tag and the settings only worked in the middle.... well, not all of them, just the EnableCFOutputOnly one:

<cfsetting enablecfoutputonly="true">
....
<cfoutput>#somevar#</cfoutput>
....
</cfsetting>

I you can use two CFSetting tags to turn on and then off the feature, but then you have to know about the rest of the app. The ability to segment off just one part would make the code somewhat app-agnostic.

(CF8 is already so cool, these are really minor ideas).
# Posted By Ben Nadel | 9/14/07 2:55 PM
joshua cyr's Gravatar Now that image editing is out I can see that video editing would be handy. Nothing crazy, but there would be some interesting opportunities with cfpresentation if we could manipulate video stuff. Split video, merge multiple videos together, convert, etc. Water marks... titles. wooo

Compiling a CF app into an AIR app would be freaking sweet.
# Posted By joshua cyr | 9/14/07 3:11 PM
Raymond Camden's Gravatar To add to what Ben N said - cfsetting, when it comes to enablecfoutputonly, does NOT act like a boolean. It acts like a stack. If you turn it on twice, and turn it off once, you are left in a state where it is still on.

This leads to hard to debug issues if you don't use the tag exactly right. I'd like to see it switch to a boolean.
# Posted By Raymond Camden | 9/14/07 3:28 PM
Ben Nadel's Gravatar Also, I think it would be awesome to get the "Tag Context" stack without having to throw an exception. I am not sure if this is possible, but I have not been able to do this to-date. Something like:

GetTagContext()

Which would return an array of the previously (including current) CFM templates that have executed in the current request. Basically, the same thing you can get by dumping out CFCatch objects.
# Posted By Ben Nadel | 9/14/07 3:31 PM
Raymond Camden's Gravatar onServerStart/Stop

getSessions/sessionCount - Yes, this is in the Server Monitor API, but it should be simpler functions w/o needing to use the API

onClientStart/Stop
getClients - CF stores all client info for an app in the db or registry. Why can't CF retrieve all the client info for an app? That could be useful for data mining.

More file support - by that i mean simple stuff to get metadata out of Office files, or check Office files, like, isWordFile, etc. A bit like what you guys did for PDF/Images. You don't have to go as far obviously.
# Posted By Raymond Camden | 9/14/07 3:32 PM
Todd Rafferty's Gravatar * Being able to stich images together to make an animated gif / swf / mpg / mp4, whatever.
* Further CFimage tweaking / speed increase, etc.
* CFVideo - Being able to save / create an video stream.
* CFAudio - being able to save / create an video stream.
* Password for CFZipped files.
* Someone mentioned being able to actually send mail through the cfexchange tag. <cfmail> isn't the same thing.
* Integrated excel file creation / cfexcel.

I'll think of more later.
# Posted By Todd Rafferty | 9/14/07 3:43 PM
Brian Rinaldi's Gravatar I think the next version should be all about positioning CF firmly as *the* choice for building RIA - be it Flex or AIR. Now, you might say, isn't it already that, and I would say, let a man dream :).

First, and I have mentioned this before, I think being able to deploy something as AIR (whether JS or AS) is very important. Yes, the runtime is large, but who really wants the *entire* runtime available in an AIR app...what we need is a small subset. And what if there was some built-in communication between AIR and CF - as in, what if AIR could look to see if the user was connected and if so call a CFC on a remote server, and that server would respond with some format AIR could understand without having the need to build it using Webservices or REST.

CF8 brought some tighter CF - LCDS integration but I would love it if the standard CF/Flex integration were more compelling...something to give it more of an edge over using other languages than simply automatic data type conversions. For instance, what if my CFC to VO conversion went beyond passing property values and included the ability to innately call CFC methods within the VO? What if I could do something like &lt;cfflexevent&gt; and trigger some sort of event announcement in a Flex app (as in, what if Flex didn't just know about CF but CF knew about my Flex app).

Anyway, feel free to tell me I am nuts, but I just figured I would share some ideas that have been bouncing around in my head.
# Posted By Brian Rinaldi | 9/14/07 3:44 PM
John Farrar's Gravatar Ray,
The onServerStart/Stop... those type of functions are now in CFApplication. Applications terminate before the server, so where would you tie that function to something else? It seems the same thing would be true for client also. And how would you define client start/stop?

The getSessions is part of enterprise only isn't it? (Which lead me to my concept of making things more global in that subject. Currently we just have a section of application that manages those things for some of our customers. Limited of course.)

See you and anyone else coming to CFUnited/Chicago in a couple of weeks!
- - - - - - -
(This is my wish list ... heh, so others can complain about some of these. They usually do.)
CFScript Enhancements... (native rather than UDF)
* complete try catch throw handlers
* abort
* location (to redirect like CFLocation)
(Think of it this way, when you use tags rather than script is it because you prefer tags or because there is a functional shortfall in the completeness of cfscript?)

Open CFR report files for generation of new report without manual passing through reporting tool.

Current Flex builder that takes flex and generates SWF files ready to go. (Or even AIR!)

Full functionality of EXT rather that pieces it now has. (Esp. in version 2.0)

Make the AJAX so it supports plug-ins! (Like jQuery.)

I would still like to see a community version of CF. :)
# Posted By John Farrar | 9/14/07 3:56 PM
Raymond Camden's Gravatar @John:
onServerStart/Stop would be accomplish by specifying a CFC to run in the CF Admin.

clientStartStop: WHen you enable client management, CF knows when you are a new client. Therefore, it should be trivial to run onClientStart. As for stop - well it would need to know what code to run when it performs cleanup. That may not be as easy.

The Server Monitor API is Enterprise only. One more reason I want a simpler getSessions.

I mean shoot - CF makes the sessions. It knows the sessions. Why can't I just grab them? Yes I can do that now manually by copying stuff in onSessionStart/Stop.
# Posted By Raymond Camden | 9/14/07 4:01 PM
John Farrar's Gravatar I like the features on everything you asked. And server side the only issue with sessions is how would you connect a session to a user? This is the main thing that would need to be resolved.
# Posted By John Farrar | 9/14/07 4:22 PM
Rob Brooks-Bilson's Gravatar Here's a partial list that covers enhancements to the ColdFusion scheduler that I'd like to see:

Enhance the CF Scheduler so that it can operate in a cluster. I want to synchronize events between servers in a cluster so that you can setup a scheduled task on any server, and it would replicate out to all the other servers (similar to the buddy server concept), but the event would only fire on a single server, not on all of them at once

Further enhance the cf scheduler to use its own thread count (as opposed to the one that's defined in the CF Admin now). This would allow the scheduler to use a different threading model than "active" applications on the server

Add a new status column in the CF administrator for scheduled tasks showing if a task is currently active or paused. CF 8 added the ability to pause scheduled tasks via an icon/button, which is awesome. The problem is that when you pause a task, the icon changes, but it's hard to tell just by looking at the lsit which tasks are active, and which may have been paused. A status column would make this a lot easier to deal with.

Addition of weekday and weekend only durations. Currently, you can schedule a task to execute daily every n hours/minutes/seconds, but there's no way to specify you want this to occur only Monday through Friday (business days) or only on Saturday and Sunday. Sure you can code this into the pages you are executing, but that code has to be used with each task. It's much better if this can be made part of the scheduler.

Task execution redundancy. Currently, if a scheduled task fails to execute (for instance if the server is being rebooted during execution time), there's no mechanism in place to automatically attempt to re-run a task. I've built this type of redundancy into several applications I've written that have scheduled tasks, but again, it has to be done on a per application/per server basis.

Better reporting on task execution. I'd love to see a new column on the ColdFusion Administrator page for scheduled tasks that shows the last date/time the task was successfully executed as well as the next date/time the task was scheduled to execute. This would be invaluable for monitoring and troubleshooting.

Please, please, please make the column list in the CF Admin for scheduled tasks sortable. I want to be able to sort my tasks by name, interval, status (active vs. paused), etc. This is super simple to do and would be very valuable for those of us with hundreds of scheduled tasks.
# Posted By Rob Brooks-Bilson | 9/14/07 4:30 PM
Todd Rafferty's Gravatar +1 to the features that Rob Brooks-Bilson mentioned.
# Posted By Todd Rafferty | 9/14/07 4:36 PM
Aaron Longnion's Gravatar Lot's of great ideas so far...

My $.02:

1) Setting a Client Timeout to mimic SessionTimeout (http://cfzen.instantspot.com/blog/index.cfm/2007/4...)

2) A cflocationDebug attribute (see http://cfzen.instantspot.com/blog/index.cfm/2007/4...)

3) http://cfzen.instantspot.com/blog/index.cfm/2007/3...
*** to be able to cut and paste the SQL statements from the classic debug output *even* when it you've been using cfqueryparam
*** the listed stack of templates that ran were sorted by the order they ran, instead of in descending order by longest-running
*** highlight cached queries and QoQ
*** figure out a way to speed up CF debugging, so that it doesn't bog things down so much when you turn it on in a CFC-heavy app (debugging CFCs seems to be the worst culprit)

4) something built-in that's more like http://cfcdoc.riaforge.org/ than the current way it's done

5) built-in support for CFUnit/CFCUnit

6) built-in front-end automated testing tools (something like Selenium IDE for FF)

7) default "Site-wide Error Handler", "Missing Template Handler" and " Site-wide Error Handler" template, so people who forget (or don't know) to always put at least something in there don't give users error information they *shouldn't* have

8) in the Server Monitor, the ability to log slow running pages/queries to a DB (like with SeeFusion)

9) also, like SeeFusion, de-couple the Server Monitor from CF itself, so if CF dies/hangs, the monitor can still effectively capture what happened

10) This one's a wild one, but I like to think big on wishlists. CF could somehow either alert me or prevent me from doing something that's a "BAD" practice (at compile-time, not run-time I suppose). Not all programmers are as *perfect* as you and I (*grin*), so it would be cool if CF would notice if I put more than, say 10K Evaluate() or CreateObject() calls within a loop, or if I didn't var function-specific properly in my CFCs, or unnecessarily put pound signs around variables. Just thinking out loud... er... via a blog comment.

thanks for asking what we want next!
# Posted By Aaron Longnion | 9/14/07 5:53 PM
Phillip Senn's Gravatar When others zig, I zag. I'm sorry! It's just my nature!
So when you asked for a feature wishlist, I thought "What I really want isn't a feature at all".
I wish that there were some type of mentorship program available that takes newbies up to production level code.
There is a vast difference between reading about cfquery and actually using it correctly by instantiating a session scoped function.
As a matter of fact, I try to not use cfquery at all, but rather use stored procedures.
If you're going to spend dollars on resources, I would say to spend some of them on building a tighter ColdFusion community.
You might say that there's plenty of information available from Devnet to Lynda.com.
But part of the problem is that there's too much information available. The two manuals that come with CF are each over 1000 pages.
So after reading 2000 pages, where to begin? I know there's a Getting Started, but I'm thinking more along the lines of turning in an assignment and being graded.
I guess if ColdFusion isn't being taught in the schools we need to have a classroom of our own.
# Posted By Phillip Senn | 9/14/07 5:58 PM
Raymond Camden's Gravatar PSenn: Don't forget that Adobe does offer classes (as do their partners). The Fast Track classes are intense.
# Posted By Raymond Camden | 9/14/07 6:01 PM
TJ Downes's Gravatar 64bit CF for Windows.
# Posted By TJ Downes | 9/14/07 6:02 PM
TJ Downes's Gravatar Todd mentioned sending mail with the cfexchangemail tag. At the very least this should have the ability to write mail to a mail folder. This way even if you have to send using cfmail you can still record the message in the user's sent files. I have had this request with existing applications already
# Posted By TJ Downes | 9/14/07 6:12 PM
Steve's Gravatar I think that a cfjava tag would be a nice addition to make working with Java objects more Java-like.
# Posted By Steve | 9/14/07 6:29 PM
Terrence Ryan's Gravatar I second both video manipulation and the ability to generate AIR applications.
# Posted By Terrence Ryan | 9/14/07 6:32 PM
Sami Hoda's Gravatar Similar to Railo: "per app" cfadminstrators
Lucene integration
64 bit Windows
# Posted By Sami Hoda | 9/14/07 6:34 PM
Devin's Gravatar I don't think we should be working on another version of CF until we have an IDE. I'm talking about a real IDE.
# Posted By Devin | 9/14/07 6:50 PM
Mike Rankin's Gravatar .mars to .pdf conversion and the reverse. Batch processing of the conversions. Add .mars files to file types that can be indexed by verity (it might already be possible, but I haven't tried it yet).

Implicit constructors in cfcs that make use of the cfproperty tag to actually establish properties. Make them default to private properties and allow us to set other protection levels. Add something like a cfNew tag/function that lets you both create an instance of the object and pass in named parameters.

Implicit getters/setters of properties/variables in the private scope. They would be invoked in the form of myInstance.getMyProperty() and myInstance.setMyProperty(newValue). Data typing would be controlled by the corresponding cfproperty tag. If the developer actually writes a getter or setter, it would override the implicit one.

Add support for cftouch, cftaste and cfsmell tags. That way we can impact all 5 senses, although I'm not sure I want to see how some of you use them. I don't expect to see many of these (especially those last three), but, hey, I didn't expect to see interfaces either.
# Posted By Mike Rankin | 9/14/07 6:57 PM
Ian's Gravatar I second the excel integration. I have been working with custom tags but none of them are really great and the guy who wrote the one I use now has never responded to any question I asked after I purchased it.

The reason I would like this is that we need to create spreadsheets that can be imported into quickbooks. So I'm thinking a tag that can loop over data, drop in a column name list, loop over some more data, create a math function somewhere and give me something I can then dump into Quickbooks.
# Posted By Ian | 9/14/07 7:00 PM
Mike Kelp's Gravatar Wow, thanks for asking for the next version feature list already! You guys rock!

Anyway, I've been using Flex quite a bit and now that I have gotten to use some of the nice features of AS 3 I would be interested in seeing:
- E4X type XML support to make getting info out of xml incredibly easy
- Implicit getter / setter functionality for CFCs;
I love the code being ignorant of whether I actually have a get or set function altering what goes on. Its clean and lets the developer think about what they are doing, not the object's logic.

Some other items:
- True inline structures and arrays that don't have a limit about putting function values in them, forcing named arguments when using an inline struct as function param, etc.
Currently, I'm accomplishing this on all versions of cf with a function accomplished this way:
<cffunction name="struct" returntype="struct" output="false">
<cfreturn Arguments />
</cffunction>
I have accomplished this with arrays, though less conveniently by looping over the Arguments to build a new array. Would be nice if this was built into the language

I love the new returnFormat ability of CFCs. This fits in perfect for making services available that any client can use easily. My only qualm is there is no returnFormat=XML. This would be really round out that list of formats with all the standard needs.

Also, what about really opening up some of the Ajax support added in 8, in terms of making a more standard means of upgrading the cf ajax tags and associated JS libraries, or even a simple way to add JS libraries to the header with tracking, so we can also check if they are already loaded for the page. This way when we create custom tags or modify CFs existing JS (like upgrading FCKEditor, etc.) our code does not break, and it really maintains flexibility.
# Posted By Mike Kelp | 9/14/07 8:08 PM
João Fernandes's Gravatar I already posted by whishlist here: http://www.onflexwithcf.org/index.cfm?mode=entry&a...

With the FMS3 announcement it makes even more sense having CF dealing with a lot of video manipulation.

Also, Make LCDS deparmental as part of CF Enterprise.
# Posted By João Fernandes | 9/14/07 8:22 PM
Matt's Gravatar +1 to features mentioned above:
1."CFScript Enhancements... (native rather than UDF)" dump, abort, location,throw...
2."Enhance the CF Scheduler so that it can operate in a cluster"
3"de-couple the Server Monitor from CF itself"
4.to be able to cut and paste the SQL statements from the classic debug output *even* when it you've been using cfqueryparam
5.make working with Java objects more Java-like
# Posted By Matt | 9/14/07 8:22 PM
Neil Middleton's Gravatar Make it free? ;)
# Posted By Neil Middleton | 9/14/07 8:26 PM
barry.b's Gravatar @Ray:

"onServerStart/Stop would be accomplish by specifying a CFC to run in the CF Admin"

What, like the Application.cfc itself? I think that what John is getting at. A way of automatically initialising the server or application (esp their scopes) on power up and reboot.
# Posted By barry.b | 9/14/07 9:30 PM
barry.b's Gravatar Query - of - queries

native insert, update and delete functionality via SQL of the underlying query structure (instead of using QueryAddRow or work-arounds querying out the data you don't want for updates and deletes).

not exactly ADO.NET feature-rich but it'll help get there...
# Posted By barry.b | 9/14/07 9:38 PM
Tim Elsner's Gravatar +1 for " Implicit getter / setter functionality for CFCs;
I love the code being ignorant of whether I actually have a get or set function altering what goes on. Its clean and lets the developer think about what they are doing, not the object's logic."
# Posted By Tim Elsner | 9/14/07 9:42 PM
Raymond Camden's Gravatar Hey Matt - you mentioned being able to cut and paste the SQL from classic debugging. The debug templates are CFML, unencrypted. You could edit the file yourself (or better, work on a copy) and make that change. I agree that it woul dbe nice.
# Posted By Raymond Camden | 9/14/07 10:10 PM
Raymond Camden's Gravatar @Devin: CFEclipse is very much a "real" IDE.
# Posted By Raymond Camden | 9/14/07 10:13 PM
Jim Priest's Gravatar 1) Make Verity easier to use or replace it with something that is
2) +1 for CFScheduler improvements
3) CFVibrate (for Ben) :)
# Posted By Jim Priest | 9/14/07 10:15 PM
Sean Corfield's Gravatar @Mike Rankin - with onMissingMethod() you can easily write automatic get/set methods that can be overridden. Watch out for my article in FAQU 5 - the CF8 edition - and you can download my magic component.cfc that does this from Google Code:

http://org-corfield-cfmx.googlecode.com/svn/trunk/...

@Jason - my #1 request, now that cfscript got so many enhancements in CF8, would be to enhance the function declaration in cfscript to support access, return type and argument types so I can say things like:

public void function foo(string arg, date when, path.toCFC object) { }

Then I get closer to writing my CFCs entirely in cfscript (see, for example, the ggcc55 example I posted on my blog for the new Fusebox 5.5 release).

I'll second the fn()() and fn()[5] syntax stuff that Ben requested too.
# Posted By Sean Corfield | 9/14/07 11:00 PM
Sean Corfield's Gravatar Oh, and figure out an *easy* way to call CFCs from Java - provide a nice Java wrapper that hides all the Reflection stuff and make it as easy as:

ColdFusion.runtime.call(cfcInstance,methodName,methodArgs)

where the latter is a HashMap. Or better still, add such a call() method directly to the CFC compiled Java type so you could say:

cfcInstance.call(methodName,methodArgs)

(so I wouldn't need the funky call() method in my base component.cfc :) )
# Posted By Sean Corfield | 9/14/07 11:04 PM
PaulH's Gravatar basically what i've wanted since mx:

- further enhance cfscript to make it == to the tags.

- resource bundle functionality.

- set timezone functionality

- and oh yeah, use icu4j for cf's i18n bits :-)
# Posted By PaulH | 9/14/07 11:55 PM
João Fernandes's Gravatar @brian Rinaldi - You already can notify and dispatch an event in flex by using the flex messaging gateway.
Regarding AIR, there is already API to provide those functionality you mentioned. Take a look into air.net package.
# Posted By João Fernandes | 9/15/07 4:58 AM
Doug Hughes's Gravatar Off the top of my head, I think the admin needs a functional overhaul. I hate the sections where you've got the colored icons with the abstract symbols. (Think the archives section.) I can never remember what they do. It' be nice to get text they clearly says what the icon does.

I'm sure I'll come up with more. :)
# Posted By Doug Hughes | 9/15/07 7:05 AM
Doug Hughes's Gravatar Sometimes I wonder about CF... maybe rather than tweaking it you could do something bizzare like director did a few years ago. Add an AS3 parser so that rather than writing code in tags we could write code in stronly typed AS3 which essentially compiles down the same java bytecode that CF already does.

Why? Well.... I dunno, really. It's just an idea. I think it might help CF's appearance to the rest of the programming world. It might make it easier to leverage tools that are excellent already like flexbuilder. It might provide some easier to debug errors when compiled (at runtime!). Maybe I'm nuts. I dont know.

Oh - I really want to see more useful tools from Adobe. I've said it before and I'll say it again. I want to see ColdFusion Builder. I'll pay separately for it if need be (if it's good). The argument against this because of the excellent CFEclipse doesn't hold water in my opinion. (The Alagad Image Component was quite good too, if you get my point.) TOOLS! Make my job easier.

Oh - and make anything that is currently even vaguely hard and make it stupid easy. For example: connecting to and using LCDS. Anything anyone ever complains about being hard or tricky should be simplified and clarified and cleaned up.

Please go back and search the internet for complaints about each feature and see if you can log and fix them. For example, the wonkyness of cfdocument. Or the painfulness of xforms or the uselessness of flashforms, etc, etc. Bone up everything that's existing and take them to the next level in terms of usefulness and completeness.

That should be my last two cents for the moment.
# Posted By Doug Hughes | 9/15/07 7:19 AM
Gary Fenton's Gravatar In no particular order except for the first suggestion...

1) VoIP capabilities - this would catapult CF into a new and fast growing market where it could dominate given everything else that CF can do. We're talking about the ability to get CF to run call centres, automated messaging systems, etc. There are so many possibilities if CF has this truly enterprise feature. And it's about time that CF branched out a bit more to capture a new user base. Adobe, think of the $$$$! :-)
2) Fairer licensing for using CF Std on a VM.
3) Free or VERY cheap license for students. I haven't been a student for 16 years but I recognise how important it is to get new people using CF. (MS are selling Office Ultimate to students for $80 or $25/year. Win them over while they're young and impressionable!) Today's students are tomorrow's developers.
4) Improved documentation including shorter example code (more like snippets and include the output/results so people can see what it does without having to copy, paste & execute).
5) Scheduling over a cluster (as Rob says)
6) Improved IM interface so CF is ready to work with Windows Messenger (formerly MSN) as well as Yahoo, ICQ, AOL, etc.
7) CF Ent customers should receive a card or email from Adobe Ent Customer Services introducing themselves and providing contact details to call if the Ent customer has a problem. I speak from personal experience and years of frustration.
8) Full SSL v3 support in CFHTTP (if this isn't already included in CF8?)
9) CFAUDIO to join, chop, mix, and convert audio files. Needs to work with files and audio in memory (binary obj). This would go nicely with CFVoIP functionality.
10) Brightness, contrast, gamma, colour balance functions added to CFIMAGE.
# Posted By Gary Fenton | 9/15/07 7:24 AM
Andy Matthews's Gravatar @Gary Fenton...
ColdFusion is already "free" for students via the ColdFusion developers version. WHy would a student need anything other than that to learn CF? While I personally am not the biggest fan of CFExclipse, it IS very powerful, and it's free. The combination of the Developer version of ColdFusion and CFEclipse are everything a student could need.
# Posted By Andy Matthews | 9/15/07 8:45 AM
Raymond Camden's Gravatar I know it's a small point, but I want to ditto Doug Hughes comment on the icons in the Admin. If you view source on the mappings page, for example, there is no ALT/TITLE attributes for the buttons.

Heck - it would be a good use of cftooltip. :)
# Posted By Raymond Camden | 9/15/07 9:21 AM
Mike Kelp's Gravatar I thought I would mention that making cfscript more like ActionScript wouldn't be a bad idea at all. It's really not that far from it now, and you could in fact make it support optional typing the way that actionscript does.

Again, I think this would round CF out a lot in terms of richness. Right now, going to Java is quite a leap in complexity for things many developers like to do in a script format. Maybe instead of making a script version of everything, you could have a standard way of interacting with the tags that would make that cleanly possible and keep from writing different versions of all those tags for cfscript.

Keep up the great work!

Mike.
# Posted By Mike Kelp | 9/15/07 11:05 AM
Mike Kelp's Gravatar Oh, I'd also like to second / extend the comments about an onServerStart and End method. I would honestly like to also see a CFC somewhere in CFs web-inf that I could put code into.

One reason for this is there is a lot of functionality I would like to generally extend to all the sites hosted on my servers, some of which are functions I would love to see added to CF and some just really nice functions that Adobe may never have interest in building in to the language. So if on server start I could essentially add some functions to the language and store items like states and countries tables for all sites, etc. Again making CF a great tool, but an extendable tool that lets us really integrate with the language.

I'll really just have to blog post this stuff. Sorry for my comment quantity hehe.

Mike.
# Posted By Mike Kelp | 9/15/07 11:10 AM
dc's Gravatar A return type of JSON from a CFC when using access="remote".

Possible behaviour:
- if called via normal HTTP fashion, it returns an automatic serializeJSON call on the return variable and prints to the page buffer (and does not do wddx encoding, which is the current behaviour when calling a CFC method over HTTP)
- if called via CF invocation, it returns the variable without serialization
- if called via SOAP returns the SOAP encoded value of the return variable
# Posted By dc | 9/15/07 12:37 PM
David Brannan's Gravatar Since Cold Fusion handles action script, flash forms, flash remoting I was hoping for tighter integration with flex. Making RIAs in Cold Fusion should be as simple as creating regular apps in Cold Fusion (some argue it is, but the learning curve is very steep).

I've done a lot of this with www.examprofessor.com, but it wasn't for the faint of heart and required a lot of help from Laura Arguello. It is a flex type app using cold fusion remoting, flash forms, action script and I hoped Cold Fusion would continue in that direction.

To me, Flex and Cold Fusion should merge into one product.
# Posted By David Brannan | 9/15/07 12:53 PM
Mike Kelp's Gravatar @dc
CF 8 already does this with the returnFormat parameter.
Ex:
http://yourserver.com/demo.cfc?method=yourmethod&a...

I love this because the client can decide how they want the data back. Now if only it also had XML serialization.

Who would have thought that Ray Camden already has a blog post on this :-P
http://www.coldfusionjedi.com/index.cfm/2007/7/5/C...
# Posted By Mike Kelp | 9/15/07 12:55 PM
Joe's Gravatar One request, the ability to return the progress of an upload, to allow easy Ajax upload progress bars using only CF (to poll the progress) and JavaScript (to update the view with the progress).
# Posted By Joe | 9/15/07 1:28 PM
Gary Fenton's Gravatar @Andy Matthews
Why would students want to spend time learning CF if they can't show their work to the rest of the uni or world? With PHP/.NET they can create something cool and show it off or let other students use whatever app they created. Their work has an instant effect and they can enjoy the feedback. If they're using CF Dev then their work is restricted to their eyes only which is absolutely no fun and possibly pointless to a student.

When I was a student (pre-web) I used to write fun demos (music+gfx) but if I was unable to let the rest of the world see it at no cost to myself I wouldn't have pursued it for long or bothered to become better at it.

If Adobe don't want to give away free or dirt cheap copies of CF then how about providing just 1 free copy to each Uni that requests one for all students to use on a shared host? Or Adobe could offer students free hosting. Sorry to bang on about it but I want to be sure that I can find plenty of fresh CF talent to hire in the years to come.
# Posted By Gary Fenton | 9/15/07 1:44 PM
Terrence Ryan's Gravatar I had another thought, all Coldfusion generated HTML would be compliant to XHTML standards.

If that would break other features (like backwards compatibility with old browsers) then a choice of standards or non-standards version.

I'd also like to see the source of the admin opened up, not necessarily open-sourced per see. But I'd love to be able to change the authentication/authorization model if I wanted to. Sure I can write a app to do this with the admin api's but why should I when all I want to do is tweak the admin.
# Posted By Terrence Ryan | 9/15/07 10:58 PM
Peter Doyle's Gravatar As a non-programmer who trys to use coldfusion to get things done at work I would say the biggest thing is make the help better. CFDocs is ok but limited in the examples it gives - especially in what limits there are on a tags use or how to get a tag/function react to other tags.

What would be really really nice would be within the code hinting to have a taghelp that called up the relevant examples/snippets.

For me as a newbie being able to use the functions in the software to their full potential is the biggest advance that could be done. How many of us have trawled google for how to get a tag to do something and either found the help on an obscure blog or never found it? This type of help should be included at launch.

My pennies worth.

Keep up the good work by the way as Coldfusion is superb.

Peter
# Posted By Peter Doyle | 9/16/07 3:31 AM
Sean Corfield's Gravatar Can you make the location of component.cfc configurable on a per-application basis so that applications can easily override it and provide their own version (Railo supports this!).
# Posted By Sean Corfield | 9/16/07 4:09 PM
Kurt Bonnet's Gravatar Add a new CFFINALLY (try, catch, finally) tag for use in error trapping that works like Java's try/catch/finally

Make the new syntax introduced in CF8 that allows you to define CF structs and arrays in a JSON - like format able to handle nested structs and arrays. And if you can swing it, CFCs too.

Transactional email sending. I have a way of doing this right now, but I'd like something built in. Basically, if I have the scenario below: <cftransaction> <cfquery>..</cfquery> <cfmail>..</cfmail> <some code that bombs> </cfstransaction> I want the email that was sent via CFmail to NOT be sent it the cftransaction did NOT commit. Adding a new attribute to CFMAIL like "transactional=true" to enable this functionality would be nice. Maybe by default, if cfmail is located within cftransaction tags CF would automatically make it transactional unless the transactional attribute was specified (so you can have a manual override if needed and the convenience of not having to thing about making the email transactiona)l.

I'm sure I'll have more ideas soon.
# Posted By Kurt Bonnet | 9/16/07 8:38 PM
Mark Mandel's Gravatar I'll put a +1 next to any and all cfscript related enhancements.

I'd like for cfinvoke to be able to translate numerically keyed argument struct into the appropriate arguments. I.e. when you get back a argument struct from onMissingMethod, if it wasn't called via a name param, you get them back in the struct keyed as '1', '2', '3'... 'n'.

Currently you have to map them back on the fly to the named param on the function, which is painful, and slow as you have to do a metadata call, and then matching. Be much nicer for doing dynamic invocation if cfinvoke did that for you.

I would LOVE to see a tool like JavaDoc for CFCs that will output Html CFCDocs for you.

I would love to see some sort of in built 'cluster' scope, or cluster cache. I have *no* idea how you would actually implement this, considering the network issues, but it would be very very cool.

That's all I can think of right off the top of my head, cf8 is a great piece of software!
# Posted By Mark Mandel | 9/17/07 12:36 AM
Mark Mandel's Gravatar I knew I forgot one -

I would love to see in cfscript that the for(a in collection) support arrays, as well as structs, for easier looping around collections.

We now have it in <cfloop>, but it would be handy if it was also in cfscript.

If that syntax is bad, the for(a : collection) could be a nice alternative, as per Java 5.
# Posted By Mark Mandel | 9/17/07 12:51 AM
samjones's Gravatar A secure RDF implementation. Adobe recommends not unsing RDF on production Servers for security reason. Make it secure, so it can be used on production servers.
# Posted By samjones | 9/17/07 2:32 AM
Harry Klein's Gravatar CFHTTP: Support for authentication schemes NTLM, Digest, and others.
# Posted By Harry Klein | 9/17/07 3:48 AM
Jared Riley's Gravatar update the ajax UI stuff to use the EXTJS 2.0.
http://extjs.com/blog/2007/09/06/ext-20-a-preview/...

It looks really good.
# Posted By Jared Riley | 9/17/07 12:01 PM
Richard Davies's Gravatar ++ Terrence Ryan's comment about XHTML valid code.

My number one request at this point is that ColdFusion should generate valid HTML/XHTML code. It's sad that in 2007 ColdFusion is still generating invalid markup.

I'm not going to reiterate all of the reasons and specific complaints in this comment. For more information see:

http://www.richarddavies.us/archives/2007/08/coldf...
http://www.numtopia.com/terry/blog/archives/2007/0...
http://www.numtopia.com/terry/blog/archives/2007/0...

Because the definition of "valid" depends upon the particular doctype the developer is using, maybe there should be something like <cfsetting doctype="XHTML 1.0 Strict"> to allow the developer to declare what doctype they are using and allow CF to adjust it's markup accordingly.
# Posted By Richard Davies | 9/17/07 12:56 PM
Nathan Strutz's Gravatar Some of my favorites above that I would vote for are:

- CFScript enhancements. We had discussed a language="" attribute a while back, but with it or not, I think being able to declare types and accessors via script would be great. I would probably prefer AS3 syntax over java.
- Resource bundle functionality
- finally / <cffinally>
- cfscript java5 style looping for collections
- ajax UI updates with ext
- generate XHTML valid code by default, always

And off the top of my own head...
- OCR
- Flash video converter
- maybe some light video editing tools like merging, clipping, extracting audio or stills
- Eclipse plug-in enhancements: Fix the text editing for the SQL editor, needs basic functions like syntax highlighting, block indenting/deindenting, etc., give it some love.
- Hire some programmers for Mark Drew & CFEclipse. Great tools = great experiences.
- Enterprise messaging i.e. JMS - implement both server & client

Thanks for listening, I can't wait to hear what Adobe decide on.
# Posted By Nathan Strutz | 9/17/07 6:29 PM
Doug Hughes's Gravatar Something else just popped into my head for a feature too. Something like a JAR file for CF. IE, something I as a developer can wrap a bunch of assets into and distribute. Not like a CAR though, this is something I want to be able to drop into my webroot (or some other folder) and just start using like it's a collection of folders in the file system.
# Posted By Doug Hughes | 9/17/07 11:19 PM
Jason's Gravatar These comments are awesome... please checkout my follow-on post!

http://www.cfinsider.com/index.cfm/2007/9/18/Futur...
# Posted By Jason | 9/18/07 3:08 PM
Rachel's Gravatar I was going to launch into a marketing diatribe about how if you ask your customers what they want, they will always tell you bigger, better faster of the same...because they don't really know what they want :) but you probably already know that.

I'd really echo Doug Hughes' sentiments... CF could benefit from a major image overhaul that might include changing the name and/or the language, to drastically improve perception in the business and development world. Being able to write in an AS3-style script for CF services would be sweet. Being taken seriously by the rest of the development world wouldn't hurt either!

Also continuing to improve on features that are great ideas in concept (like what you've done with CFFORM, CFDOCUMENT) but leave something to be desired in execution (CFREPORT - disclaimer - I have not used CF8 for reports yet!). I know it's impossible to know every bastardization of a use that your customers will try before launching -- I don't think anyone expects perfection the first time around -- but the important part is that once you get the feedback, that these features continue to move forward. I know of many cases where a company looked at a feature like CFDOCUMENT and said that's great, but "we really need XYZ so we still have to go with a third party product". That's where making improvements to previously implemented features can make a difference.

A proper IDE would do wonders too.
# Posted By Rachel | 9/18/07 4:28 PM
Adam Ness's Gravatar 1) implicit getters and setters in CFCs. This is the one feature that I like out of .net that I wish was in ColdFusion. Even VBA has them.

2) Windows Authentication. I would really, really like to be able to carry over the windows login credentials that the browser submits through to <cfquery> <cfldap> and the Outlook integration tags in CF8
# Posted By Adam Ness | 9/19/07 12:04 PM
Jim Priest's Gravatar Make CFAnt a supported tag.
# Posted By Jim Priest | 9/19/07 12:08 PM
Adam Ness's Gravatar I thought of a few others as time wore on as well

3) Ability to build CFCs which implement native ColdFusion interfaces such as Queries, Structures, etc. For example, I'd like to be able to create an object which implements the Query interface, so I can <cfloop query="..."> over it.

4) In fact, a few other options in <cfloop>, such as <cfloop array="">

5) Virtual functions in CFCs would be nice, but not a big deal in my mind.

6) queryGetRow(query, rowNum), queryDeleteRow(query, rowNum) and queryInsertRow(query, rowNum, rowvalues) functions

7) CFCs as native cfscript, so I can <cfcomponent language="cfscript">public void .... </cfcomponent>

8) Possible support for a more python/rubyeseque CFScript language. Semicolons and curlybraces are comfortable for C/Java/C# folks, but there's less and less reason for them with modern compilers.
# Posted By Adam Ness | 9/19/07 3:31 PM
Ben Nadel's Gravatar I think it would be awesome to use Relative Paths for Extends in CFCs:

<cfcomponent extends="../../Application.cfc">...</cfcomponent>

I am not a fan of mapped paths.
# Posted By Ben Nadel | 9/19/07 3:41 PM
Terrence Ryan's Gravatar +1 on Ben Nadel's Relative paths for parent folders in component Extends.
# Posted By Terrence Ryan | 9/19/07 4:26 PM
Steve Moore's Gravatar I'd also like to see Query-of-Queries expanded to include more JOIN syntax for doing further SQL queries. I really needed this today when trying to find missing records between two different datasources. If I could have loaded both tables into memory and done the query there, I wouldn't have had to do a cfloop over one query with a query to the other datasource.
# Posted By Steve Moore | 9/19/07 5:23 PM
Richard Davies's Gravatar Speaking of query of queries, this reminds me of another feature that I'd like: support for insert and delete statements in query of queries. I know that you can accomplish inserts using a fancy union statement and that deletes can be done by excluding the deleted rows with a 'where' clause, but why make it so difficult? CF is supposed to make our lives easier... so please just support the standard SQL we're used to. :-)
# Posted By Richard Davies | 9/19/07 6:11 PM
John Blayter's Gravatar I know this is a bit more of the underlying J2EE server. But I would like to see a little bit more control and viability of the instances running under the cluster. Specifically I dislike when you have 2 servers in a cluster and sometimes when the HLB sends you to Server A but the clustering sends you over to Server B's CF instance. This makes it an absolute pain to reset your application variables after a code push without having to restart the service or do some nasty hacks with the coldfusion.runtime.ApplicationScopeTracker.
# Posted By John Blayter | 9/21/07 11:00 AM
Tony Petruzzi's Gravatar I'm going to repeat myself from the last time this question came up.

Don't add a thing, fix what is broken now.

Seriously, the CF dev team keeps adding more and more crap to this product. Just fix the stupid thing so it doesn't crash and runs like a champ. And if they add one more stupid AJAX tag, I'm going smack someone.
# Posted By Tony Petruzzi | 9/24/07 10:26 AM
Mike Henke's Gravatar Please add an ANT TO DETECT POTENTIAL PROBLEMS in the ColdFusion build process like http://code.google.com/p/jslint4java/ .
# Posted By Mike Henke | 9/24/07 11:22 AM
David Lakein's Gravatar something I didn't see come up yet:

How about adding a Java class whitelist to the sandboxes?
I know about 8's new option to prevent using CF's server classes, but might be extremely useful in hosting if the Admin could enable createobject(java) for a sandbox but limit it to some list of relatively safe classes/packages, like StringBuffer, java.util.Date, etc, but not Runtime or other hosting nightmares. Since we use a string of the classname to create the object, maybe we could have a textarea to enter a list of classnames?
# Posted By David Lakein | 9/24/07 5:38 PM
Mark Mandel's Gravatar @David Lankin -

I think this is actually a really bad idea. Lots of people develop with Java inline with ColdFusion, and being forced to whitelist all the possible classes that people *could* use would be a nightmare - especially once you get into custom Java code!

The current CF8 restriction covers all the security issues (although it is a little over zealous in my opinion, I mean, you can't cfdump a Java object with it on!), so why would you want to lock it down further?

The power of Java with CF is one of its strongest features IMHO, so why would you want to restrict it even further?
# Posted By Mark Mandel | 9/24/07 7:13 PM
Adam Haskell's Gravatar 1) Code Coverage statistics ***By far the biggest thing I want right now***
2) full support for jsp1.2 (yes I know jrun will need updated)
3) +1 on Seans comments about invoking CFCs easier from java
# Posted By Adam Haskell | 9/25/07 11:49 AM
Adam Ness's Gravatar A recent thought that struck me:

The ability to do java style "imports" with packages, or at least do some sort of package mapping. It's annoying to have to type long package names, and hard-code package names in my code.

Also, it would be nice to just be able to use a "new" language construct instead of createObject("component","...."). If you could make the "new" construct check if there's an "init" method, and call that too, that would totally rock.
# Posted By Adam Ness | 4/28/08 4:30 PM
Eric Miller's Gravatar Definitely the above improvements to the scheduler, but also the ability to schedule down to 1-second intervals. We have a few things we need to check or execute every 1 second (very short running tasks) and have yet to find a great tool to solve this issue. The mail spooler check can run every 1 second, why not the scheduler?
# Posted By Eric Miller | 9/7/08 4:58 PM
john's Gravatar Proper cluster management.
A single admin interface for all servers in the cluster. Sharing settings that need to be shared and managing things like timed jobs to run on the server that is active.
Separation of the performance monitoring tools from the admin interface so that you can view the server when it is having problems.
# Posted By john | 11/17/08 10:37 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.9. Contact Blog Owner