ColdFusion 9 Wish List
Nothing really "new" here. I've been posting my "CF9 WishList" thoughts on various other blogs, and decided I'd prefer to start compiling my list here on my own blog. The list as it stands currently...
1. Make the "private" keyword actually mean "private" and add a new keyword "protected" that means "protected".
Yes I know it will break tons of existing code. Yes I know it's "not really a best practice to mark varialbes 'private' in a lot of cases". Ya know what...I don't care. I'm the engineer, I'll decide if my code should be "private" or "protected". The fact that CF basically re-defined "private" to mean something different than it does in most other OO languages really bugs me. Even if this has to be a "switch" in CF Admin (i.e "use old style 'private' variables" vs "use new style 'protected' variables"), so it doesn't break existing apps, then so be it. But please in the name of all that is holy don't redefine terms like that! That's one of the big reasons I dislike using .NET -- Microsoft redefined so many common OO terms in C#, it's not even funny.
2. Make the "auto generate Flex code" into a real-world useful feature.
As you'll see in this blog entry, CF8 added the ability to dynamically generate Flex SWF files. As you'll also see in that post, it's not really useful in its current state. This feature can't be used for any dynamic content, since the SWF gets re-built every time the data changes. It would leave a bunch of used-once-SWF files on the hard disk. That's tacky.
Maybe a "proxy" SWF can be built instead, and the new Flex 3 RSL functionality can be used to pass "part of" a SWF into this "proxy" movie, allowing dynamically changing Flex content from the server? Anything would be better than the feature in its current state. I really want to build dynamic Flex code on the server like this; alas, we need some help from Adobe before it's a realistic option.
3. CFPodCast
I want a server-side auto-generated podcast UI widget for streaming MP3 podcasting. Not a "pure flex" widget (though if it rendered out to a Flex movie as the final product that'd be ok); I want something that "talks" to my server, allowing me to stream/buffer/pre-load various amounts of MP3s (in various sizes and sample rates, maybe other file formats too). I'd like it to start as a CF tag so I can apply settings dynamically, and perhaps have better control over security as well (maybe the UI widget knows which domain it came from so folks can't steal my SWF movie and use it on their server, etc).
Looking at item #2 again, perhaps the "proxy SWF movie" could be extended to build the CFPodCast tag.
4. CFStreamingVideo
The same concept as #3, but for streaming video ala Youtube. Can I get that in a reusable CF tag please? With all the same security concerns and customizations as the CFPodCast I noted in #3?
5. A "Null" keyword.
Yeah I'm one of those guys. I hate having to write "fake null" code (-9999 for numeric, "" for string, Jan 1 1800 for dates, etc). Please give me a NULL keyword that works for all data types, ala C++. Again, if it must be a "switch" in CF Admin so existing code doesn't break, then so be it.
6. (I saw this on another blog, but can't remember where originally.) Use ActionScript in place of CFScript blocks.
I have no problems with CFScript (aside from the usual complaints -- lacking UDF equivalents of all the CF tags, cfquery, cfdump, etc), but CFScript is only used in ColdFusion. With Adobe doing much more work in ActionScript, and extending that language (plus, hopefully, even tighter integration between Flex and CF in the future?), why not leverage that and let us write ActionScript on the server that gets compiled into my CF byte code? Something like so:
<cfscript language="actionScript"> (or perhaps <cfActionScript>... )
variables.foo:int = 1235;
session.myString:string = "I am a string in this user's Session scope";
function doStuff():void
{
trace( "this is a server side debug message that only gets rendered to the debugger, or to a log file of some sort." );
}
</cfscript>
...It may make the transition to ActionScript (and thus Flex) smoother for CF folks, and since it appears that Adobe doesn't like adding functionality to CFScript anyway *grin*, they could move those resources to ActionScript development instead.
(After re-reading that last entry, I can see how the strong-typing of AS may make this feature either ambiguous (some AS code is strongly typed but CF-AS code isn't?), or become a holy war about which flavor of AS syntax is correct. So maybe this would truly be more trouble than it's worth, unless there are plans to make CF more strongly-typed in the future, which I doubt.)





I am with you on # 3.. I'd love server side actionscript. AS3 is a very nice language and I really want a script style language on the CF platform.
DW