Future features of ColdFusion
I posted a request the other day asking you, the ColdFusion community, to give me your ideas on what we need for the future of ColdFusion. The entry and your comments are here.
I have to admit, what I see is overwhelming. The vast majority of ideas are around language constructs, cfscript enhancements, application framework items, etc... which is great, we need those ideas. I did see a few requests for audio and video features... respectable additions but none of them are going to be the "Big" feature for any future release. And yes, yes, we do need an IDE. A really great one to make our lives easy! I hear you! But, what I don't see a lot of is... well... features! :)
I mean, we all love the javascript style operators in ColdFusion 8... but could you convince your boss to upgrade to CF8 for that, or was it because the PDF and AJAX features made something very difficult or costly, cheap and easy?
What I'm driving at is this... Should the next release of ColdFusion be about making everything we already do well, better? Or are there still functional problems that we can help you solve?
And if so, what are they?!
Don't get me wrong, I love the comments on the older post, I just want to see if I can get some thoughts on some "bigger ticket" items. :) Not that I don't have my own ideas, but I want to hear yours!
Cheers! Jason

Let start asking big:
1) Bundle CF with A Limited connect server and LCDS Deparmental.
2) Add CFMeeting and generate a connect meeting room on the fly
add eventgateways to support listening for behaviors inside the meeting (like voting, chatting, enterRoom etc)
3) Eventually an interface to communicate with a SIP gateway?
4) Unlock all XDD limitations for CF9
5) Add policy server capabilities into CF
overall I think CF should be the aggregator of Adobe Enterprise Technologies
For me, CF9 should contain what it does now, but improved. Almost a CF8++. For sales though, you'll need that "killer" feature. For me, I don't know what that is, as I don't come across a huge amount of problems day to day, other than doing heavy lifting on the data tier.
Including, but not limited to, doc to pdf or flashpaper. And yes flashpaper is important (for embedding in Flex apps for instance).
2. A Flex based interactive log reader, kind of like http://flogr.riaforge.org ;)
That's all I have right now.
Did my boss care that I could now stitch together multiple PDFs without a 3rd party app and such? No. There's a line to what is important and every company's line is different. I think Adobe needs to keep going what what they did in CF8 and follow that path.
<cfimagecropper> (http://cfimagecropper.riaforge.org)
<cftimeline> (http://cftimeline.riaforge.org)
A sweet Ajax based CFC Explorer that lets you test your CFCs (yeah i know i didn't win anything in the best of scorpio, but i've fixed some of the bugs) http://cfcexplorer.riaforge.org/
Seriously though...I do like the idea of CF8++ (maybe 8.5) that builds on the 'making difficult stuff like ajax easier' concept. For example there are so many YUI things you guys could have tapped into that would have rocked my world...like <cfcontextmenu> or a YUI flavored <cfslider>. I'm all about this kinda stuff - though I'm probably the minority??
Being able to code 100% in a script based format. Either Actionscript 3/4 or CFScript. I also think that would go a long way to improving CF's reputation...
Video: I still think that a suite of video tags and functions will be a killer feature. I know it might cut into Premiere but I don't think they really are in the same market. Allowing companies to create their own YouTube has some value. We've been doing video for awhile, and CF would have been a huge help to us: http://spike.wharton.upenn.edu/media/
Standards and Excessibility: Recylced from before but certifying that ColdFusion HTML output will be compliant and accessible would be a great feature.
Search: Alternatives to Verity would be great. I recently kludged Verity to work,because I didn't want to bother with Lucene, but that would be a cool additional tool to have in my toolkit.
Enterprise Integration: I frequently have to drop down to Perl to deal with an legacy application with a bizare interface. In most cases I could have coded an alternative if I had a cftelnet, cfsocket or cfsnmp tag to use. I would think being an easy bridge from old technology to all of the new options you have included would sell some units.
Identity and presence Management: I spend a fair amount of time coding the connections to tie this IM account with that domain account with this application user. I don't know if there is anything ColdFusion can do to make it easier, but figured I would add it.
Was that more of what you had in mind, Jason?
I love the SIP integration idea.
Ability to consume gzip'd content with cfhttp, cffeed, etc.
+1 on multiple search engines:: lucene
Leverage Java Frameworks such as ehCache and Acegi
Round 2:
11) cfDrupal
12) I'm not an OO zealot, but for those who are... give them as much OO capabilities (keep them *optional*) as possible. We don't want to continue the trend where OO developers from Java or .NET backgrounds completely ignore/ridicule CF because it isn't fully OO.
13) CF .NET - I know you can integrate somewhat with .NET in CF8, but Adobe should put together a BD .NET version that blows the BD version away because it has all the CF8/9 capabilities, including Event Gateways, Flash Forms, Flex and AIR integration, etc.
14) hooks into PHP and Ruby (and possibly other major languages)
15) to add to other comments about a "real IDE"... I'm guessing they're talking something as robust (though better than) Visual Studio .NET.
16) cfCaptcha
17) thinking of ways to bring folks from other languages to CF.... maybe like .NET let's you write in C#, J#, VB etc. and it compiles to .NET, CF could do something similar with cfscript syntax?
18) cfGoogleAPI and cfYahooAPI
19) cfAIRWidget - wrap it around stand-alone CF/HTML/AJAX/Flex code. Save it, and it compiles into an AIR widget that you can distribute to customers and the like... Then, us CF developers can start distributing our own ideas for FTP clients, mini browsers, IMs, IDEs, media players, DB clients, etc... and we wouldn't have to learn .NET, C, or Java to make it happen.
20) cfVOIP
21) cfMakeMeDinner
22) cfGetMeAGirlFriend ;D
fix nested cfloop on query
cold fusion studio 6 (yes, i'm still using cfstudio 5)
Some of this is a little high-level/abstract - I'm not sure what level of detail you are looking for.
1) Better integration with Adobe Chats. What I want to be able to do is offer webcasts from inside my branded site.
2) Workflow extensions. I know that Adobe has workflow tools - can we integrate them into the CF framework? Many CF installations support intranets. Adobe has great document support. CF now has document/PDF integration. The next logical step, for me, would be introducing workflow.
3) Extend CFPresentation - allow better user interaction, for example form submission. I want to show a user some slides, and get their feedback via form submission. I was told I could do some Flash remoting for this, but the CF integration with a flash form would be better. Also, maybe branching based on user feedback (to different slides)
4) A built in Survey tag (CFSurvey), that supports branching.
5) Built in SAML support (CFSAML)
6) Reporting enhancements. I have to be honest, I have to look further into CF 8, but this is what I'm thinking. Flex has great flash based graphs, but they are quite a bit of work, when it comes down to it - with labels, tips, etc, etc. CF reporting is easy, but a little too static.
Here's a quick example of how to enhance charts, is to enable "binding" on charts. If I click one area of a CF chart (or CF report) another chart will change / get populated. Kind of like with Flex, but it doesn't need to be super complex.
Also, introduce AJAX features into CF Report. (yeah, sorry, I know I'm vague)
I'm in the healthcare industry, and I can't tell you how important reporting is.
7) AIR Support
I know the last one is a hot button category, but consider this: The end result of a CF app is HTML/AJAX. I know that its server based. However, if there were guidelines for creating AIR apps (example, not in-line SQL, need to use back end CFC's). The CF/AIR "wrapper" will need to know the base URL for the CFC's and will access them as web services. I'm not expecting it to be a "one-step" process.
Well, you asked for "big picture" ideas, and there you have them! I'm thinking off the top of my head here - so some ideas are a little incomplete (or just plain crazy). I'll post more thoughts if I get them, or maybe we could catch up for a beer at MAX (I'm on intronetworks).
Cheers,
David
I agree that there needs to be a mix of features and general improvements. I think general improvements are easier to find... I think most people could come up with 10-20 improvements for CF off the top of their head.. and that includes the entire CF Engineering team. :) But, the tricky part, is to look outside what you are doing today and think about what you want to do tomorrow... and how your life could be made easier by putting a few simple words in the comments here! :)
I'm not trying to figure out what features would "convince you to buy" the next version of CF... I want to know what you or your company sees value in. I mean, I love my car... I own a 5 year old Passat... my previous car was a Passat... my next car... will not be a Passat. Why? Because they haven't done anything to the latest version that make me see additional value. So... I will opt for a change... might be good, might be bad... but if I don't see value in just having new, why buy?
What I want to supply you with, is a compelling set of reasons to upgrade... I think you should feel like "this is just too good to be true", "We can't live without this". That was our target for CF 8 and I think we did a pretty good job of it. And I believe we (Adobe and the ColdFusion team) have the ability to deliver that again... we just need create the plan to do it. With your help, I think we can make the next version of ColdFusion even more compelling. Isn't that what you want from your software? To be convinced that you need it? Not just to have something that looks newer... but something with more value. I know that's what I want...
So, feel free to tell me that language features would provide a compelling reason for you to upgrade. Hell... I'm a developer, I love those ideas. But, at the end of the day, realize that your probably not the one deciding whether or not you get to use that new feature... and I need a set of compelling reasons for that person as well. :)
Cheers and please keep the great ideas rolling!
Jason
P.S. Perhaps I will setup Soundings when I have some time to add polling features. :)
The video suggestions are really something... Yahoo Video, GOogle Video, YouTube, etc... are all based on Flash Video, and who knows more about manipulating Flash Video than Adobe?
Seriously, ability to input, merge, reencode, and clip video together, then output a video player swf would be pretty cool. Of no use to me in my daily work, but then most of the "Killer Features" really aren't.
While I think the <cfgoogleAPI>, <cfdrupal>, KTML, EXT2 are fun ideas, It seems odd to me to integrate support for specific software packages that only a select group of folks are using into the core language. One of the big advantages of ColdFusion used to be that it worked with any database server, and you didn't have to change your code (much) if you were moving from Oracle to MSAccess to SQL. Likewise, it would be nice if <cfsearch> worked with Inktomi, Google Applicances, K2, or Lucene, and <cfexchange> was deprecated in favor of <cfpim> which would talk to Exchange, Lotus Notes, iCalendar, or any of a variety of PIM softwares.
Setting up stuff like a schedule to move failed mail into the spool of each instance is a pain just now because our Round Robin keeps catching the requests and "randomly" throwing them around.
That and updating stuff like the server configuration of each server which we currently have to keep throwing constant CFHTTP requests at until they're all done.
We're researching the design/develop workflow here, and on the face of it, the CS3 tools look great (specifically, we're looking at starting with Fireworks). The end result seems to be HTML, which is great, but I'm not too sure it takes advantage of the great new CF features - cfimage, just as an example, or some of the AJAX controls included (there is spry integration, though, I guess).
Again, I'm being vague, I know, but I wanted to spark some thought (as you requested). Let me put this into perspective - we're trying to be more of an "agile" development department, and the particular methodology we have selected hinges on creating the UI templates first - storyboarding, if you like. Eventually, we'll have to get that over to CFML, and the details in between are a little murky right now. So, it may not be a CF9 feature, per say, but could be an integration effort.
Again, hit me up if I can be more specific, or just hit me, if I'm talking jibberish.
Cheers,
Davo
Also exposing this grouping of servers & instances via the admin api so we could write things that may not be included in the admin console. Like getting all instances for one app/cluster and hitting a certain script on every instance, to pop cache maybe...
Parts of this are already there in the monitoring piece, its just going beyond that to an enterprise management console.
I know that's all something I could do myself today with CF8, but it's needed over and over in so many applications that I'd prefer to just have the tool prebuilt in CF9 so that I just need to configure and run in my own apps.
Preferably the File and Image browsers would support multiple libraries as well. (So that we could have different libraries per user rather than one big library per application.)
For me, these changes would make CF infinitely more usable..i.e the core is extremely fast and capable for the simple things, but there is still the "hard stuff made easy" aspect as well.
This is more based on a preference over Redhat based distributions.
I've noticed that CF8 seems to plug along very nicely on my Ubuntu development machine, so I am hoping you guys are already half way there.
Granted it's pretty well documented, but it is a security feature, changing the process from command line app to a gui in the administrator might reduce barriers for people using custom CA. You could then add that as a bullet point to your security pitch.
A way to do java scripting.
A transaction manager.
x = new Component(args)
and if args are passed just call .init with those args.
video conversion tags
Server level application firewall security similar to mod_security or even mod_security support
gzip compression - ability to turn on/off gzip compression at the server/application level
form, url, query
so that I have to use: form.var, url.var, query.var
To start out with, how can CF be interesting to attract more developers. One area to do this is to expand
usage by web hosting companies. This involves both price points and manageability. The goal is for web hosting
companies to be able to offer CF hosting with MySQL database connectivity for the $5 per month range. The details
is in how to get there. CF Hosting should be on par with PHP hosting, even with the fact that PHP is free. The key is
in the configuration and manageability, and the ability handle shared hosting environments better than PHP.
A second area to attract developers is to beef up free developer IDE resources. This most likely means concentrating
energy to make CFEclipse environment work great with the product and to release basic Flex IDE as free. View CFEclipse
as your entry level tool, like Microsoft has with its Express editions. Paid tools can have add on's, such as CFC Class building
wizards (e.g., Data Access Layer Wizard).
With CF product itself, you need to continue to make it that Intranet platform of choice. This means more connectivity to
other products, like you have done with Exchange. Examples of features to add are: built-in tags to work with Microsoft
Membership and Personalization Database/Sharepoint databases, built-in tags to work with various workflow products (in
addition to Adobe's own workflow, such as Microsoft's baseline .NET3 workflow provider), and built-in replication services, so
that one can replicate website content among clustered web servers. Along with features, the other biggest factor that would
be of great benefit is in documentation. Adobe already provides great documentation, but more is needed for setup and tuning
in clustered environments. This area is rather skimpy in the documentation. This is an area where CF can shine.
Other ideas are:
- Get rid of JRUN as base J2EE engine and instead use open source J2EE engine (Tomcat, Geronimo, JBoss, etc.)
- Offer middle-tier pass through of client authentication (e.g., Oracle Impersonated login, Trusted SQL Login) for true client to database auditing
- Add request auditing/logging features (to answer meet Government and other audit requirements such as HIPAA)
- Expand Web caching in product (e.g., similar to Oracle Cache)
- Management of Server instance separate from server instances being ran
- Replication of Server instance settings (for Clustered servers, i.e., set CF Server settings on one server and have deployed to all clustered servers)
I have found that the cost of ColdFusion at times falls into an unfortunate middle ground of expenses. It's not the typical item that has to be carefully considered in a multimillion dollar annual budget (like a datacenter expansion). At the same time when the question is asked "What can we cut from the budget?" the expense of ColdFusion does stick out enough in an itemized task group budget that it often gets singled out (at least in my experience). And these discussions often do not include advocates of the platform. It is the Directors and VP's that have a budget to balance that make these decisions.
This proposed free version of ColdFusion would have to have enough functionality that it makes sense to use in a production environment. This version would be targeted at small to mid-sized businesses, particularly companies that are not IT/software companies or companies that do not run mission-critical applications on ColdFusion. The current Standard/Enterprise editions would still be targeted to business that run mission-critical applications.
My second suggestion is a bit more radical. It would be to take a more Microsoft-type approach. ColdFusion Server would be free (all editions) but Adobe would build and sell a world class IDE for ColdFusion. This would be designed to outpace all current free or inexpensive offerings available to ColdFusion developers (specifically CFEclipse, Dreamweaver and HomeSite+). In order for this to work, however, the IDE would have to be nothing short of life changing for ColdFusion developers. This is because the tools we currently have (at the minimum) reach the level of "good enough".
The potential advantage to this approach would be an apples-to-apples cost comparison with the Microsoft tools. No longer would the cost of the server come into consideration. At this point, management would consider the cost of Adobe tools against the cost of Microsoft tools. Management would never ask the question "Why would I buy ColdFusion when ASP/PHP is free?" because management would be purchasing the same type of product whether they go with Microsoft or Adobe.
I admit that these suggestions are radical, and in the end may not be practical, but I think Adobe needs to do something radical in order to take the ColdFusion platform to the next level. I look forward to the days of ColdFusion version 15 or 20 but Adobe may need to consider an unconventional approach to secure the future of ColdFusion.
Right?
Many in the community call for a free version of CF, with scaled back functionality – personally, I think this will just dig CF into a hole. The FUDers will simply compare ASP/PHP to the free (scaled down) version of CF, and we’ll be spinning our wheels.
The personal concern I have is regarding the future of the enterprise version of CF, which is something our company uses. Now, as a package (JRUN, CF development platform, CF Monitor), CF Enterprise is one of the cheapest J2EE solutions out there. Adobe needs to get out of the “Challenger” category and into the “Competitor” category though. I’m concerned with the announcement that JRUN will no longer be developed – will I need to buy BEA or Web Sphere to support CF Enterprise in the future? If so, that would be a HUGE burden to shoulder.
I don’t know how MS gets away with its “Free” tag. I mean, Visual Studio Pro costs as much as CF Standard. How is that free? At least CF scales well – add another developer, costs stays the same, but not so with MS solutions.
Still, I’d impress in Adobe to push the pricing model for CF9 – get it to less than $1k, if possible, and show the IT world a move in the right direction. It’s a tough line to walk, though, better features cost money, and I’m glad we have all the features we have.
Cheers,
Davo
Thank you for your response. You are correct. That is the admitted challenge with this approach. As I mentioned the IDE would have to be "nothing short of life changing". Of course I know that's easier said that done. I'm sure Microsoft has spent an unimaginable amount of time and money to bring Visual Studio to where it is currently. Microsoft must have considered these challenges when they released their Visual Web Developer Express product, a free slimmed down version of their main line of development tools. There's also a ton of community driven IDE's for ASP.net and C#.
I can't help but notice that Microsoft's bait approach seems to be successful for them. They give the developers a ton of "free" tools and include enough functionality to learn the technology but exclude enough functionality that they will want to upgrade. SQL Server Express is another perfect example. My SQL friends tell me that SQL Express addresses the "free" issue with MySQL. Small companies could deploy SQL Express and if they grow enough, they could easily upgrade to SQL Standard.
I also concede that it may be difficult for Adobe to go in this direction when they try to calculate their ROI on the time and money spent on free server software AND the time and money spent developing a world class ColdFusion IDE. Adobe might end up having to charge so much per license that users would continue to use current tool set. I haven't compared quarterly reports, but it may be safe to say that Microsoft might have a little more capital available for this kind of R&D (not to take anything away from Adobe).
At this point I think I have successfully argued against my own suggestions. However I think my overall suggestion would be to encourage Adobe to not be afraid to go in an unconventional direction. For example, if we take a step back from specific features and look at all the major technologies (HTTP, XML, encryption) and buzzword technologies (AJAX and the like) that are out there, ColdFusion already can work with all of these. And if it can't, we have access to the underlying Java technology (and now .NET integration) to build our own feature set. There is very little that ColdFusion can't do.
Of course there will always be those "propeller-head" type features that hard core developers might want and Adobe should always take care of their current customers. But it may take something more than new features or the "Big" feature, as you stated, to get new customers. In my experience, it still comes down to a .NET vs. CFM debate. Why do developers choose ColdFusion (we already know why), but why to business executives choose the Microsoft platform (even though we know the TCO is higher)? I think it comes down to brand recognition and a perceived higher level of reliability. Executives see Microsoft as the brand name and ColdFusion as, well, sometimes they don't know what a ColdFusion is. They hear reports from their task group managers that the applications are have some trouble. In their mind the answer is simple, switch to Microsoft.
Before my response goes into infinity (to late, I know) I would point your readers to Brian Meloche's blog (http://www.brianmeloche.com/blog/index.cfm) and a post from Larry Clarkin (a Microsoft guy) http://larryclarkin.com/MicrosoftGuyAtAColdfusionB.... Ultimately Adobe needs to not only be willing to be unconventional with the product but also aggressively (and I mean really aggressively) go after business executives and break the Microsoft barrier. I really care about the future of ColdFusion but when ASP.NET/C# jobs out number ColdFusion jobs some times 30 to one, it's difficult for me to see the future of the platform.
Thank you,
Matt Riley
- IDE again: I'm still using Homesite+ but Adobe should CF stronger bundle with eclipse for an easy quick start
- CFCONFERENCE: A CFML web specification - to have CF in the news (even BlueDragon, Railo and Smith are good for business)
- I personally don't like CFSCRIPT but it seems people are too familiar with messy code looking like php or asp. So give it to them.
- Don't forget: http://www.teratech.com/blog/index.cfm/2007/10/18/...
It'll be a great feature to sell Coldfusion for medium and big teams.
I've said this several times now, but the two features I see making a huge impact for CF9 are thus:
Pluggable search engine... make it easy to remove Verity and use other engines, from Lucene to Bob's Phat Search Server... maybe even integrate the API with Google's search API? I know it can't be 100% open because you'll have to implement a wrapper for every engine added, but, perhaps in the spirit of event gateways you can expose a Java search API that could be extended by anyone to use a new search tool.
This is my big one... my legacy if you will:
Add Administrator extensions and tags in the vein of CFQUERY/DSNs to allow people to more easily integrate payment gateways into their applications. Provide a list of the most popular ones like you do with databases, then config options for auth keys, etc., and add <cfauthorize />, <cfpayment />, etc., to make using ColdFusion THE PLATFORM for doing ecommerce sites! w00t!
- Inclusion of something like Sean Corfield's Scripting for ColdFusion 8 project so that we can more easily integrate PHP or Ruby applications in to our CF applications. There are a heck of a lot of developers (and their bosses) who would see value in being able to utilize popular tools like PHPBB in a relatively simple, straightforward manner inside of their larger CF apps.
- Inclusion of process management akin to what's in LiveCycle. It would be great to be able to use a service like that for routing, state management and notification within our ColdFusion apps (rather than having to build something on our own which will be far less feature-rich and not nearly as robust).
- Really expand the capabilities of <cfpresentation> to include automatic PPT to <cfpresentation> conversion. Corporate, scientific and education presentations are done in PowerPoint (well, in Keynote too, but to a far lesser extent). Being able to rapidly generate Web-based presentations without having to make the content HTML would be a big benefit.
- Leverage Connect and what they're doing with CoCoMo. If you have the license to run the Connect server locally or if you have a service agreement with the hosted version of Connect, make it simple to create users, meeting rooms, send invitations, or, via CoCoMo (which will be live before CF9) encapsulate pre-built Flex apps that do things like just show a whiteboard and users, or just show the audio/video chat and the text chat. There are a lot of Web applications that are dying for presence and collaboration and Connect is a great tool to make that happen. There's an API in Connect for doing a lot of the administration -- just wrap it up and make it easy, 'cause that's what CF does best.
create variables for URL and FORM scopes, so that I have to type URL
or FORM.
Same goes for query when looping.
Also, new framework for building pages.
for example the page would look like:
<CFPAGE EXTENDS="MyBasePage">
<CFFUNCTION Name="OnLoad">
<CFFUNCTION Name="OnInit">
<CFFUNCTION Name="OnAuthenticate">
<CFFUNCTION Name="DoSomething">
</CFFUNCTION>
<CFFUNCTION Name="OnRender">
<CFBUTTON OnServerClick="DoSOmething" Value="TEst">
</CFFUNCTION>
</CFPAGE>
The current JavaScript implementation is next to useless as it only supports dynamic SQL and therefore is open to SQL injection attacks. It also doesn't support things like CFLDAP etc. ActionScript 3, fully integrated into Coldfusion, would be brilliant for developers working in Flex. Then integrate support for server-side ActionScript 3 into Flex. Developing everything in one language and in one IDE would be a significant step forward.
2. Strong FMS integration
The current FMS gateway requires setting a single connection in an XML file. Collaborative applications in FMS require creating multiple and dynamically changing application instances. Coldfusion needs to be able create and manage multiple NetConnection objects on the fly. We need an elegant way to create NetConnections and Remote Shared Objects on the fly and manage them - including their callbacks - without stepping down into writing large complex Java helper classes such as a NetConnection Manager.
3. Choose some (open source?) Java engines, wrap a rich API around them, and ship them as modules that can be accessed as needed in Coldfusion. Just the engines NOT full applications with a user interface and business logic. For example do a little work to integrate something like JackRabbit as a CMS engine. Build it in already packed with an easily accessed ActionScript 3 API and ready to go. Ideally, you would have engines for calendars and scheduling, wiki and blogs, workflow and BPM/BPEL, presence and instant messaging, identity management (every app needs it and does a mediocre job of it), document translation, etc...
Thanks for asking!
-Brian
Integration. I think further integration with other Adobe and non-Adobe products would make Coldfusion a much stronger product. Before you think 'more of the same', integration can fundamentally shift the role of Coldfusion - most importantly into the consciousness of key decision makers.
Most radically, consider including features from or bundling express versions of FMS and Livecycle. Most people has no idea how easy Flex combined with FMS makes 2-way videoconferencing. Nor do they see much of anything about Livecycle. Allow people to taste these products in Coldfusion. This increases the value of Coldfusion, but it is also an entry point into the dedicated server versions.
Regardless of whether you bundle the functionality or not, other Adobe server-side products should be ridiculously easy to use in CF. Its great that you included LCDS express in CF8, but it still isn't trivial to use. AMF, Flex Messaging, data push, Actionscript proxy etc are all terms that confusion the hell out of me. Simplifying the CFADMIN screens and including testing tools (eg. a testing flex client) would be make the whole technology more accessible.
Imagine writing a Flex 2 or Air application in MXML on a CF page. What does CF add to that equation? Maybe the CFMXML can have remote connections to CF or LCDS server cooked into the SWF. Maybe flex libraries (SWC files?) can be automatically generated by the server based on a data CFC?
Similarly for FMS, I can imagine that having defined a (bundled or remote) FMS server in CF admininistrator the user could immediately start working with high-level CF-style productivity code like <CFVIDEO> (inserts a flex movie player in the current page) or <CFWEBCAM> (inserts a flex application for 2-way only video conferencing).
I don't know a lot about LiveCycle, but since it is an Adobe technology, CF should be able to talk to it natively using powerful tags to recieve and update information. I think Adobe should consider including PDF form rendering in CF, since investing heavily in PDF forms probably increases the value of LiveCycle, rather than the opposite.
For AJAX integration, although I appreciate how far we are down the road of using YUI, I think CF should seriously consider forming a strategic partnership with Spry. What stands out about Spry as a library is that it ridiculously simple to do amazing things (like Coldfusion). From your perspective developing CF tags for spry is a simple activity too. Being an Adobe product you can influence its development, share some budget and maybe rest easy knowing that your entire javascript codebase is consistent, well managed, compatible with other libraries and has a stylistic appeal that sometimes gets lost in other brute-force CF solutions.
(And have you noticed the number of designers working in Spry who really need an easy back-end solution? )
I think deprecating CFSCRIPT and moving on to the latest flavour of AS is another radical idea that has merit. How many flex developers find themselves writing some form of backend code? I would guess a lot. Increase the incentives to choose CF as a backend server by using AS on the server side...
... Which implies the availability of a complete API exposing all the functionality exposed by tags. Recognise that CFScript (and AS if it comes) is generally used by power users. There is a tendency for CF to lose valuable developer mindshare when they "graduate" from Coldfusion. Enhancing their language tools and access to high-productivity libraries means they won't wake up one day and discover they work mostly with Java objects and may as well be working in a pure java shop.
A high level API would also allow CF developers to retain the CF productivity boost into their 'power-user' days, and I imagine it would help with the CF Team's development and debugging efforts as well.
Anyway, I have other comments RE integration and what it might do for Coldfusion, but I need to go to trot on. This is turning into an opus anyway :)
- Url Rewriting built into the server. Rules could be set in the CF admin.
- Scripting syntax for writing CFCs ... actually, making a lot of the non-UI tags available to cfscript. I always found the tag-based syntax clunky for non-html files.
I've been doing CF development since version 2 on floppies but after using AS3 for the past few months with Flex the suggestions about replacing CFSCRIPT with AS3 sound great. Otherwise I'd vote for making CFSCRIPT a first class citizen with non-udf access to everything available in CF tags.
Either way I'd like to see more effort put into making the Flex/AIR - CF RemoteObject setup simpler and easier for beginners to access (the XML and cross domain hoops could be better documented and integrated into the CF administrator / Flex/Eclipse interface).
Obviously full featured LCDS functionality would be great to have included in CF. It would be a gift to developers (one install process gets you the whole local dev environment without Tomcat etc.) and would give CF server a built in advantage over PHP / Rails / .NET which would still need WebORB, etc. Including LCDS in CF server could make those services available from existing shared CF hosting providers at a much lower cost of entry, greatly increasing their exposure and use by the developer community. CF server should be leading the way in this area for Adobe.
If Adobe really wanted to boost Flex / AIR development they could merge CF and LCDS into one server product, make AS3 (or 4?) an available standard language across everything, and even reduce the server price tiers so that the PHP / Rails / Java / .NET alternatives would look much less attractive in comparison, especially to small shops / independent consultants.
I'm sure there are many financial and technical hurdles to this kind of thing happening but this is a wish list right ;).
I re-read many of the previous posts and it's clear that my understanding of the current LiveCycle offerings is limited. I just went to try and get a copy of LCDS to install on my dev environment alongside CF8, unfortunately there seems to be no support for OS X.
After more digging I noticed that CF8 includes some version of LCDS...and felt pretty dumb. Thanks Adobe for including this, I am excited to dig into it. I should have done some more reading before I wrote the message above but I'd still love to see AS3 support in CF server.
I agree that cffeed has to support gzip, and that a free 'Express' type IDE is a great idea to encourage new users to go for CF over other languages. CFEclipse is great, but for someone just starting out with writing code are they really going to download Eclipse, then get the CFEclipse extension + Aptana etc when they can have a simple download and install msi/exe?
Video support would be a killer feature, but why not also include audio as well?
One thing that I would love to have that hasn't been mentioned is a group attribute for the cfloop tag that works like cfoutput query="x" group="y". It would make my code so much neater!
How about multi language support a bit like the SetLocale. I not exactly sure what I mean but being able to build multi language apps would be a real selling point for CF.
CFC paths - can we do it from the web app root or be able to navigate up?
AMF support for CFC webservices.
<cfset x = new NameOfComponent()>
just an easier syntax than CreateObject("Component", ..)
also, if it allow arguments and implicitly call init method, that would be great:
<cfset x = new Something(3, "helo")>
would be equavilent to:
<cfset x = CreateObject("component", "Something").Init(3, "helo")>
<CFAJAXPUSH /> - Push data to an Ajax client for use in bind expressions using an dimensionless flash object
<CFAJAXTIMER /> - Sets simple JS timeout
<CFAJAXPROXY cfc="mymanager" jsclassname="MyPrivateNamespace.mymanager" /> - Allow private object namespacing
[All Ajax Tags] - Automatic JS dependency inclusion with JS require() function (no cfajaximport required). Graceful degradation.
<CFAJAXIMPORT scriptsrc="/my/implementation/of/cf /js/interface" /> - All JS libraries loaded dynamically through CF bootstrap. Open CF JS API for customisation
<CFCACHE action="put" scope="application" value="#mycfcinstance#" key="myCfc" /> - General extension CFCACHE to handle everyday application, session, etc caching in a safe way without CFLOCK
<CFCOOKIE> - Extend to use flash shared objects
<CFIF hasJavascript()> - Self explanatory
<CFMESSAGING action="send" topic="" > - Include a reliable messaging agent with CFADMIN support for use with Flex-messaging, inter-CF, JMS, SMS, Ajax etcetera.
<CFSET application.taglibs = {} />
<CFFILE action="copy" retries="nn" compare="true" />
<CFFTP action="put" retries="nn" compare="true" />
- Ant-style file-comparison for CFFILE AND CFFTP. Option retry count for robustness
<CFANT /><CFANTTARGET><CFANTTASK name="" type="cf" />- Integrated ANT or other deployment/automation tool. Can call CF code
1. Go faster
2. Can do everything in cfscript
3. A proper IDE
The lack of these things hurts CF's credibility.
I do think that the video and stuff can be added maybe in a future release. To be honest, you should consider doing an 8.5 where everything is just enhanced and wait a while before you do a 9 release – making the 9 release a real big deal. That's what I would do anyway.
2) <cfphone number="555-555-5555" option="sms">
3) <cfphone number="555-555-5555" option="readMSG">
4) <cfphone number="555-555-5555" option="ListenMSG">
1. A general update and review of all tags leveraging third-party code to include
a) latest versions
b) more functionality from the third party
Eg. <CFCHART>
2. On the subject of CFCHART, the use of the charts to setup drilldown capability is hampered by the limitations to the URL parameters. If you could sneak an ID into a CFCHARTDATA tag for use for this purpose it would be great.
3. <CFMAP long="45.4" lat="54.6" zoom="8" googleid="XXX" /> (this would probably be cooler than it would be useful)
4. The ability to create PDF forms.. PLEASE! If the Acrobat team give you any grief, well, ignore them :)
5. I said it before but it still makes sense: Consolidate your server range (Livecycle,FMS, LCDS). Think of all the millions of dollars that could be in your budget!
6. NTLM support for CFHTTP, scheduled tasks, etc. Some of us live in M$ networks, afterall.
7. Support for some additional formats in CFPRINT: RTF, TXT, HTML, etc. (you could transparently PDF them first).
PS > Missed you at WebDU!
PPS > Where do we go to find out more information about the open process initiative?
For example, it drives me crazy that you can't conditionally disable a <cfform> control:
<cfset disabled = "false">
<cfinput type="text" value="can you edit me?" name="test" disabled="#false#" />
Since an HTML input control with a disabled tag with ANY value (even "false") is interpreted as disabled="true", cfform should not pass the disabled attribute through to the <input> tag when the value is false.
I'm sure there are lot of other little bugs and gotchas like this... but none come to mind at the moment. Going through the livedocs comments would probably reveal most of them.
<cfset disabled = "false">
<cfinput type="text" value="can you edit me?" name="test" disabled="#disabled#" />