I've
been a bad boy. I was supposed to write a review of ColdFusion
8 back in October of last year, but an imminent change of job and my
10 month old boy (now sixteen months) conspired to eat up all my
time to play with CF8, let alone write a review. When ever I
did try to write a review I always ended up with writers block.
All the blog entries, by developers far more knowledgeable and
respected than I, seemed to already talk about all the great new
features in this latest, and greatest, version of ColdFusion.
So,
what am I supposed to write about? I started asking around.
Asking people on my IM list, friends and colleagues, what I could
write about. It was this process that made me realise that I
should write a kind of "nine months on" round up of what
people's thought were now that they've had a chance to actually use
the new server, rather than just "play" with it.
I've
asked a few people who's names you might recognise to spend just a
few minutes to write a paragraph of their thoughts and what their top
three most used new tags or features are.
Everyone
I've spoken to says, that ColdFusion 8 is probably the most
significant upgrade for ColdFusion yet. If you don't upgrade
for anything else, then you must
upgrade for the performance increase you will get for your cfcs and
your application in general. One thing that has to be noted,
ColdFusion 8 ships with Java 1.6 as its underlying JRE. Java 1.6 has
a bug in the class loader that causes a fairly substantial
performance hit when first loading your application.
Recommendations that I've seen from all quarters and experienced
myself recently is, downgrading to Java 1.5 will increase load time
performance without detrimental overall performance.
The
JavaScript and image enhancements are also top of a lot of people's
lists. Many of us are jack of all trades, writing applications
in ColdFusion one moment, JavaScript the next and then onto
Actionscript. Operators in CF have always been just fractionally
different to these other languages or missing common syntax, like i++
for increment. The enhancements to operators in CF8 make the
transition between languages that little bit easier. AJAX is the
technology de jour (sorry I'm a bit of a ludite and cynic when it
comes to AJAX). The addition of the AJAX functionality, using
the very excellent ExtJS library (ok so I can still appreciate the
work being done even if I am a cynic), is appreciated by many and
makes an excellent addition to cfforms.
Two
other major additions to CF 8 that have had everyone buzzing are
debugging and server monitoring.
Many of the long serving developers
who remember the debug tools in cfstudio and the newer converts from
other languages have been asking for IDE based debugging have now got
their wish in the form of a plug-in for eclipse. It's not just this
group of developers that are benefiting. Many others are wondering
how they ever managed without it!
Server
monitoring is a great new addition to ColdFusion server and compliment
to the likes of FusionReactor and SeeFusion. The CF8 server monitor
isn't just the realm of the server admin any more. It gives the
developer the abililty to see what is going on under the hood of your
application. As well as providing some pretty sophisticated reporting
on requests, variable scopes, memory usage and errors, to name a few,
there's also an email alert system, the ability to make snapshots of
the server and an api to allow you to build custom responses to various
system states.
Because I've procrastinated so long over writing even this review
(sorry everyone - I'm not the most confident writer, so it takes me a
while to be happy with what I've written) updater 1 for CF8 has been
released. Updater 1 provides up dates to the FCKEditor, ExtJS libraries, improved AJAX, CFPDF and CFImage functionality, oh yeah and full 64 bit support on all OSs.
Again, apologies to everyone involved for how shockingly long its
taken me to write this. And now I shall hand over to my friends and
colleagues to give you their thoughts on CF8.
Oh - and if you want to find out more about CF8, CFML, Flex, AIR, AJAX do I really have to tell you to get yourselves to Scotch on the Rocks at the beginning of June?? ;)
The
contributed comments:
Jeff
Coughlin - http://www.JeffCoughlin.com
Overall
I think its an important upgrade, but unless you need 64bit or new
features in CF8, I personally haven't seen the "need" to
upgrade.
I've
been liking the new speed enhancements, image manipulation, and Ajax
features.
The
fact that my JavaScript skills are poor at best and I can now build
feature-rich UI experience using CF's new built-in Ajax features is
mind-blowing.
top
3 most used tags/new features?
-
cfimage
-
cfajax (feature, not the tag)
- cfeclipse debugger plugin
Niklas
Richardson - http://www.prismix.com
Basically,
we're using CF8 as our server layer for Flex applications.
So
we're using all the features that CF8 gives us for Flex integration.
We
are also using CF8 to generate documents for our Flex applications
(PDFs, etc...) and sending out e-mails with attachments, etc...
Probably
all I can say is the most used features are CFCs ;-)
-
Flash remoting
-
LCDS in CF8
-
And that it's faster
Neil
Middleton - FeedSquirrel http://www.feedsquirrel.com/
Here's
the headlines:
-
Performance, particularly CFC instantiation and cfthread
-
Eclipse add-ons, debugger, CFC generator etc
-
JSON returntype - opens up CF to a whole load of AJAX (but
interestingly I don't have much time for the built in AJAX - I'm a
jQuery guy)
Andy
Allan - Fuzzy Orange http://www.fuzzyorange.co.uk/ - Scotch on the
Rocks http://www.scotch-on-the-rocks.co.uk/
PDF
Forms
This
has been a huge feature as it allows us to easily automate the
processing of order forms and purchase orders, and the creation of
invoices. Throw in the server side printing and it's job done in one
easy step.
Presentations
on Demand
Initially
this feature was a curious one to us. We never saw the potential. All
that changed when a client needed the ability to have dynamic content
displayed on their in house company plasma screens that keep staff up
to date with what is going on. Using <cfpresentation> we simply
took the client driven content, put it together as a Connect
presentation and slam, they had their dynamic, up to date company
news on display, and fully under their control.
Server
Monitoring
Fuzzy
Orange do a lot of server consultancy and troubleshooting, and the
Server Monitor has proved to be another invaluable tool for our
resources. ColdFusion administrators and developers have been
screaming for something like this built into the product since the
release of MX 6.0 and now they finally have it.
Ray
Camden - ColdFusion Jedi http://www.coldfusionjedi.com/
While
I'm still very impressed by image and Ajax support, I find myself
being very happy with the real small changes. For example, being able
to
loop
over an array using array= in a loop, or adding to a string using &=.
It's the small language constructs I think that I'm really grooving
too right now. Not to say I think those are the most important
features - but I'm noticing that I'm real
happy to have them in my toolbox so to speak.
Another
one is onMissingMethod, which has made my beans much slimmer.
Also
- I know I blogged quite a bit about my problems with CFFEED, but I
do find myself using it quite a bit, and when it works
well,
it sure is a nice feature to have.
Andy
Jarrett - Andy Jarrett http://andyjarrett.co.uk/
ColdFusion
8 and what it means to me as a developer
ColdFusion
8 has changed quite a few of my apps since its been released and for
several reasons. New tags and functions always change your next
project but with CF8 came some great performance enhancement which
made delivering applications even faster. Below 3 of the most used
new functions in CF8 that I find hard to live without when going back
to CF7. It's not say these are the best new features, but they
are the ones that have helped me out in my day-to-day developing the
most:
1.
Argument collections
CF8
makes working with tags that have multiple attributes with different
variations like CFFile so easy to work with. It allows you to specify
the tags attributes in a single structure and pass them them to the
tag.
2.
CFPDF
This
really made working with PDF's so simple. This tag allows you to
interact dynamically with PDF's, PDF forms, merge, generate files on
the fly.
3.
Array and structure creation improvements
Probably
one of the least exciting changes (along with JavaScript operators in
expression) to be added but I find it makes code neater and easier to
go back over.
Noteworthy
mention goes out to all Ajax and Layout tags/functions that were
introduced.
Peter
Bell - Application Generation http://www.pbell.com
By
far my favorite feature in CF8 is OnMissingMethod(). It allows me to
make my APIs much more readable while still being able to synthesize
most of my code.
I
think the AJAX feature (including cfajaxproxy) are a great way to
improve the usability and responsiveness of your applications without
having to
learn too much about AJAX and I love the cfimage features for
manipulating images easily.
I
use a lot of CFC's and have also noticed a nice performance boost
working with CF8 and overall have found it to be a painless
and valuable upgrade.
Scott
Stroz - Boyzoid http://www.boyzoid.com/ Alagad Inc.
http://www.alagad.com/
When
ColdFusion 8 was released and Adobe started its world tour touting
all the new features, it was sometimes difficult to keep track of all
the new functionality and how we, as developers, could leverage that
functionality. In my mind, I thought there were a few new
features I would use often (step debugging, AJAX integration and
CFImage), and others that I thought were cool, but really had no
current need for (CFPresentation, CFExchange). About 6 months
later, I use step debugging just about every day and to be honest, I
am not sure how I survived so long without it. Just about every new
application I create, I am using some of the AJAX integration and I
find myself using cfimage even more than I imagined I would have.
I think these 3 things are, by far, the most useful additions to
ColdFusion we have had in quite sometime.
Toby
Tremayne - http://www.tobytremayne.com
Interfaces
is right up there.
I
haven't done as much as I'd like but very useful for really big
projects with distributed development
I
also make major use of the fact that enterprise features are now all
in standard - often I only want to use something like that reasonably
lightly anyway so the threading limitation isn't a problem
I
was excited about the app specific mappings till I realized that
they're no good for me :) They happen at run time, but cfc mappings
and extends for example are compile time. (Ed's note: application
specific mappings also don't work with cfimport because of the
runtime/compile time issues with
Happy
to see the debugger in there, although haven't had much chance to use
it - I think the thing I probably use most is the improved operators
in cfscript that and cfthread. I write a lot of actionscript
these days so it's nice to have a bit more similarity with the
operators :) ooh ooh and JSON! yay for JSON!