Fetter, Brad wrote:

> Oliver,
> 
> What area of CF did you find frustrating? What kind of project?

First the kind of project:

The project is a Quality Assurance system (bug tracking, development 
requests, yadda yadda yadda) for which we are using CFCs extensively, 
hence a lot of my discontent comes from dealing CFCs.

This project is 'my baby', as it were, and will remain so for the rest 
of my stay at this company. It will be extended to well beyond the 
current spec therefore I will have to use CF a lot.

The choice of language was not left to me so I have not looked forward 
to developing the system, which only serves to exacerbate the annoyances 
experienced with the language.

Now the areas. It's a long set of areas, so you may wish to skim or 
avoid them at all. Once again I state that this is my own personal 
opinion derived from many long hours of CF.

If you disagree but can find no constructive comment, please abstain 
from commenting. If you have a suggestion that may help me, please make 
it. If you can help solve one or more of my problems it makes my time 
with CF more pleasurable, tolerable and makes me less likely to consider 
putting my hands through a cheese grater.


Problem Areas:

Object orientation (or lack thereof) and the implementation of it in CF, 
performance of CFCs (found it can take 3ms to call a method!), 
functions, general CFML syntax, lack of commands that are in CFML that 
aren't in CFScript, sessions doing weird things (may be my fault), lack 
of control (see the 'control freak').

Errrm, what else... Ah, if you put an object into the SESSION variable 
it not only stores the data, but the methods associated with it as well. 
Therefore change the class and it doesn't change in memory. If I could 
work out how to serialize the data at the end of a request I'd do that, 
but I've no idea. Instantiating an object can take ages. If CFMODULE'ing 
a template that includes, say common.cfm, and the CFMODULE'ing template 
also includes the same file and in that file are funcitons, then a 
'function cannot be declared twice' error is raised and I can find no 
way around it.

Oh, there are no equivalents to C's "#include" nor PHP's "Define()". 
CFSWITCH can only take constants in it's cfcase's, therefore as you can 
apparently define nothing how done one test for return values from a 
CFC? By hard coding the values (though perhaps I should return strings 
for error codes). Errm, CFCASE's cannot fall through to the next CFCASE 
and therefore not the the DEFAULTCASE but you can do it in CFSCRIPT. One 
cannot 'break out' of CFSCRIPT to CFML in the middle of a control block 
(i.e. if(){</cfscript><!--- Blah ---><cfscript>}else{}).

No constructors, no true private/protected variables, CF compiles the 
CFC not to a class by to a series of .class files, one for each method, 
no getter/setter, you cannot define a method as fully as you can in 
CFML. Oh, and you cannot call a parent method without creating an 
instance of the parent class, copying over the relevant properties and 
then calling the method on the parent instance and then copying back the 
properties.

output="false" from a calling function applies to the called function 
even if the called function does output="true".

One may say that as CFCs are a new feature then it should be 
understandable that they are not well implemented and I did hope that 
with 6.1 it would be somewhat solved. Nope. Being a PHP-head, I say that 
  objects were well implemented from 4.0 (though I would love being able 
to raise exceptions like you can in CFC, oh hold on, that's in PHP 5).



-- 
  Oliver Tupman
  Key Systems Geotechnical

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq

Signup for the Fusion Authority news alert and keep up with the latest news in 
ColdFusion and related topics. 
http://www.fusionauthority.com/signup.cfm

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to