> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
> Of Roland Collins
> Sent: Tuesday, November 08, 2005 10:30 AM
> To: [email protected]
> Subject: RE: [CFCDev] Witnessed the power of CF
> 
> Not really that ugly, IMO:

No it is!  Horribly, horribly ugly!  Like pedophilia-colored drapes with
malignant cancer polka-dots.

(Sorry.  I get worked up sometimes.)

However, seriously, the code you posted isn't difficult to work through but
actually does require quite a bit of sophistication to do.

(I know that you were just responding to the "ugly" comment... but it got me
thinking.  Bear with me... or ignore me.  Either one, really.)  ;^)

> <%

At the very least none programmers aren't used to the marker constructs
which distinguish code blocks.  Why is this code "different"?  Why doesn't
it look like the rest of my (HTML) "code"?

> Set Mail=Server.CreateObject("CDONTS.NewMail")

Having to know both that an object is needed AND which object is needed
(especially with such a completely appropriate name!) shows a rather
advanced level of understanding.

> Mail.To="[EMAIL PROTECTED]"
> Mail.From="[EMAIL PROTECTED]"
> Mail.Subject="Test Subject"
> Mail.Body="Test Body"

Setting properties (and knowing how and what properties can be set) is
another "new" concept for HTML users.  It's not that it's hard, of course,
just (at least initially) confusing.

With this simple example we've also not dealt with common issues like the
need to escape strings when used in script and so forth.  These kind of
issues are also very difficult for beginners to deal with.

> Mail.Send

The idea of needing to initiate the action later (in other words the
concepts of firing a method on a previously instantiated object) is
definitely a foreign concept for most people suckled on HTML.

The simple fact that all these lines aren't "connected" in any way is
confusing to some.  The concept that the object exists for use and much now
be acted upon is something that needs to be understood.

> Set Mail=nothing

Lastly, the concept of needing to do something (anything) with this object
AFTER it's already done what you want, the need to "clean up", is actually
really very sophisticated.

It's not that any of this code is "bad" or anything - but it definitely is a
programming model and, even with this simple example, requires many
fundamental OO-programming concepts to really understand.

Now add to that all of the other issues that a non-programmer may face for
the first time in a situation like the one described.  It truly is a recipe
for frustration.

A fundamental concept of ColdFusion is to provide the non-programmer with
instant gratification.  To abstract complexity.

You really can get quite a bit of useful work out of CF without requiring
any programming knowledge or concepts.  (How well that trend continues into
more advanced constructs is debatable of course.)

I feel strongly that those concepts are useful and well worth knowing, but
many people just don't need them to get the job done with CF.

Jim Davis




----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to 
[email protected] with the words 'unsubscribe cfcdev' as the subject of the 
email.

CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting 
(www.cfxhosting.com).

An archive of the CFCDev list is available at 
www.mail-archive.com/[email protected]


Reply via email to