Viewing By Entry / Main
June 30, 2006
You can now download my new duck typing presentation that I gave this morning at CFUNITED, along with the handful of sample files, from the "Software" pod on my blog.

Comments

Dare I ask... how'd it go? You seemed pretty stressed about it yesterday.


It went great. I believe some people have blogged about it briefly already, but I'll certainly be taking some time to digest what he said and to make a number of posts on it.

Very clear, well laid out and compelling. Also lots of nice little hints and tips. I never knew you could treat methods within a CFC like any other key within a structure - including setting and renaming - it'll be interesting to look at the base mixin method to see an example in the non-cfinclude approach.

Best Wishes, Peter


The presentation slides are sure laid out well. Pretty easy to follow along, even for someone who couldn't make it. Thanks! :-)


I think you did just fine . . .


Peter, Dan, Lola - many thanks for the kind words!

Nathan, yeah man, I was pretty stressed about it. I like to practice on CFUGs to get a sense of the flow of the talk and the length. That it went so well is pure good luck on my part I think! :)


Sean,

The slides are well laid out and give a good idea of the flow of your talk on this topic, however, for those of us who didn't get to attend CFUnited, could you write up a blog article that expands on the slides and answers questions such as where duck typing is most effective at boosting performance and where static typing might cause little performance impact but provide extra security and validation?

I'm just wondering if in general using an any return type or argument type is more efficient when they are custom objects but the extra data validation would it better to statically type arguments and return types that are standard ColdFusion data types.

Az


Az, I don't want people to see this as a "performance" technique. It is not about that. The performance boost is an interesting side-effect of the technique. So, no, I will not blog about this from a performance p.o.v.

You should only optimize when you have established you have a performance problem and you have used load testing and profiling to identify a bottleneck in the code. Something that both Joe and I did with the frameworks mentioned in the talk.

As far as I'm concerned, "premature optimization" is a developer malady that needs treatment, not encouragement...


I see your point about premature optimizations. I was really interested to find out more about what points you were trying to highlight during your discussion. Thanks for the information in the presentation and examples. The benefits when doing unit testing with mock objects could come in handy. And the potential for performance increases could also give another avenue to explore if a bottleneck is found.


The presentation is intended to focus on the fact that ColdFusion is not Java and we should take advantage of the expressiveness of dynamic typing to do things in ColdFusion that you can't do in Java (such as the fact that CFC methods are first class citizens and can be moved around and renamed). I guess the slides don't emphasize some of the key points I made in the live presentation :)


Not really, no. And the most impressive blog entries related to your Duck Typing talk were related to the (pretty impressive) performance increases Joe got in Model Glue: Unity when applying dynamic types to some of his underlying framework code :)


Hello Az,

FWIW I just did a quick post on the performance implications of duck typing. As Sean mentioned, for the vast majority of applications this will be "interesting but irrelevant". The other implications are very cool indeed!

Full as a goog should pick up the post . . .

Sean, please let me know if I misrepresented any of the information as I really don't have a good reason to test this as I don't currently have a performance problem that it would help with.

Best Wishes, Peter


Post Your Comments
Name:
Email Address:
Comments
*** Please note that all comments require moderation so it may be some time before your comment posts to this blog! ***
Remember My Information:
 



Hosting provided by