Developer Paralysis

11 views
Skip to first unread message

Ben Koshy

unread,
Jul 15, 2009, 1:35:57 PM7/15/09
to Object-Oriented Programming in ColdFusion
Great podcast guys. But it did rock my world. Again.

Being a bit of a dinosaur in the CF world, I've been developing
applications mostly in Fusebox 2 then 4-5.5 (skipped 3, yuck!) and
never fully went down the CFC path other than to utilize some pre-
written APIs or functionality provided generously by other
developers. I attended Jeff and Hal's Fusebox class oh so many eons
ago and it mostly solidified what I was doing but gave me some good
Waterfall / Lifecycle practices as well. In reality the project I was
working was moving at such a fast pace, I was unintentionally
practicing agile without knowing it :) Heck, until about a year ago I
was still Coldfusion Studio 4.5 :D I was working on a large eCommerce
system receiving about 20k-30k orders/day clustered...and what would
be known today as a "social networking site" ... we called them
portals back then which was receiving about 1 million pageviews/day in
those days not clustered.

I watched with a bit of trepidation as the CF-OO space got more and
more complex. M-G, MachII, Reactor, Transfer, ColdSpring, Coldbox.
On top of all of these changes in the CF space, Adobe was pushing Flex
down our throats as well being the new holy grail to develop business
application... that was a whole bunch of new stuff and all "OO"
supposedly. I said to myself: "Ok, I need to keep on top of this
because on the next application I'm gonna go all out and use these new
techniques and my life will be so much better!" I bought Hal's book
on CFCs -- one of the clearest descriptions of OO concepts i have read
to date, btw. I read hundreds of blog posts, attended many online
sessions, went to conferences, and I was just waiting for something...
that something was the proverbial "lightbulb". Something that was
going to show me that all this knowledge and effort was going to
amount to something that I wasn't getting. It never happened. I was
feeling more and more "left behind".

So I kept on coding in FB5 and writing little procedural scripts here
and there. Admittedly I was becoming less of a developer and more a
manager so I was touching codebase less and less so I attributed my
lack of revelation to that. Meanwhile I started to hear about
developers struggling with scalability and the numbers they were
touting seemed really low considering my old dinosaur sites were
purring along on old 2001 hardware programmed in my crappy procedural
style and only using *gasp* one framework. My doubts started turning
towards to the language itself. Am I using the right
technology? .NET, PHP, and now Ruby communities don't seem to be
struggling with these issues.
*shrug* Work is still getting done. Applications are still being
written.

I have what i call a "lazy perfectionist" mentality -- if its not
going to be done right down to 100%, then I'm not going to do it at
all. I think this saved me in the end as we come to this day. As the
usual suspects wow'd us with their demo applications built upon layers
and layers of frameworks, complexity, underlining how "easy" this was
now that we had all this "support" -- I just waited. Waiting for that
perfect stack to arrive and everyone to say:

"Wow guys, this is it! CF + Model-FuseCold Box II + ColdSring +
Reactotransobernate is THE way to develop applications in CF!"

It seemed like Ruby/Rails got that down way early and as you guys say:
"everyone drank the Kool-Aid." I love Ruby as a language, I still
find Rails development to be cumbersome compared to CF where you just
write code. I just feel more in control of what I'm doing under CF.
I was an early stored-procedure detractor because I felt it obfuscated
the code too much for the perceived benefits. I probably need to get
"under the hood" more in Ruby.

Another point is developer criticism. You always hate to hear that
someone else has picked up your project and chastised the owner for
hiring such a crappy developer that didn't use the right techniques
and now he has to start all over. Granted, there are such cases where
the code is horrible shape. Sometimes, I feel this way because I
don't use the aforementioned techniques. CFCs. Pfft. :D

What I took away from the podcast was this:

1) If you really need/want to do OOP, find another language. Or
conversely, if you're going to do OO projects with a complex object
graph, find another language. Buuuuut, maybe CF9 might nullify all
these statements.

2) Don't over-engineer. In the podcast it was noted that we often
think we'll build this website so that if we ever go back and fulfill
the website owner's dreams of being a giant dotcom we can easily scale
it up because we planned it so well. 9 times out of 10, that's never
happens. Build for today. Tomorrow is another day.

3) Frameworks are bad. In that, people tend to use them for the sake
of using them vs. having a reason to use them. I mainly use Fusebox
because it provides a community-standard for organizing an
application. I don't think i use too many framework specific features
beyond that. What really shocked me at the end is Hal now even
doubting the value of MVC frameworks. WTF! Hal! *throws self off
bridge* *falls is broken by the bodies of other CF developers piled
there*

4) Don't listen to community Gurus. They are blowhards trying to make
a buck out of taking you down a path that leads to nowhere.
Eventually, they will reach enlightenment but then where will you be?
Believe in yourself! If you are writing applications that work. You
are win! :D

5) Learning is bad.

Thanks guys! :D

Sincerely,

Oh God Not Another "Ben" Koshy

PS> Hal - when you call yourself the reluctant heretic -- is that
because you were just taking that side to be the Devil's Advocate or
you're somewhat afraid to voice these opinions because that *IS* how
you feel now?

Hal

unread,
Jul 15, 2009, 2:52:50 PM7/15/09
to Object-Oriented Programming in ColdFusion


On Jul 15, 1:35 pm, Ben Koshy <goo...@animex.com> wrote:
> What I took away from the podcast was this:
>
> 1) If you really need/want to do OOP, find another language.  Or
> conversely, if you're going to do OO projects with a complex object
> graph, find another language.  Buuuuut, maybe CF9 might nullify all
> these statements.

Fair enough analysis.

>
> 2) Don't over-engineer.  In the podcast it was noted that we often
> think we'll build this website so that if we ever go back and fulfill
> the website owner's dreams of being a giant dotcom we can easily scale
> it up because we planned it so well.  9 times out of 10, that's never
> happens.  Build for today.  Tomorrow is another day.

Brian might feel that way, I'm not sure. I hear a lot of criticism
about "over-engineering". YAGNI, etc. I don't buy that. I believe that
part of my job as a developer is to put myself in the place of the
client. That means I need to understand what their business is, how
they're doing things now, and how they think the web can help them. Of
these three things, the third is usually the one where they're least
helpful. As I see it, that's where I come in. I need to envision new
ways to make the web work for them -- then I need to make sure that
the software will support that vision. Is that over-engineering? I
certainly don't think so. But if by that term, you mean making it
scalable a la twitter, then I can understand the prohibition against
over-engineering better.

>
> 3) Frameworks are bad.  In that, people tend to use them for the sake
> of using them vs. having a reason to use them.  I mainly use Fusebox
> because it provides a community-standard for organizing an
> application.  I don't think i use too many framework specific features
> beyond that. What really shocked me at the end is Hal now even
> doubting the value of MVC frameworks.  WTF!  Hal!  *throws self off
> bridge*  *falls is broken by the bodies of other CF developers piled
> there*

LOL. No, I certainly do NOT think frameworks are bad. I'm in the
process of writing yet another one as we speak. I think that when a
developer is told that in order to build a robust app, they need to
combine 3 or 4 frameworks, then yes, I think that's overkill.

> 4) Don't listen to community Gurus. They are blowhards trying to make
> a buck out of taking you down a path that leads to nowhere.
> Eventually, they will reach enlightenment but then where will you be?
> Believe in yourself!  If you are writing applications that work.  You
> are win! :D

Uh...no. Guys like Ray Camden, Ben Nadel, Joe Rinehart, Brian Kotek,
etc. are anything BUT blowhards. (Well, maybe Brian...;-) Rather, I'm
saying that as a group, the aggregate message is "All OO All The
Time". And THAT is a bad message. But do I believe that you should
"believe in yourself"? Guilty. I've become very aware of late of the
large number of developers who feel terribly disempowered by the
constant drumbeat of "OO".

>
> 5) Learning is bad.

Undoubtedly learning IS bad. It leads to dissatisfaction. It makes
people want to try new things. It challenges orthodoxy. Now, I ask
you: do we really NEED that?

> Thanks guys! :D

You're most welcome.

Hal

unread,
Jul 15, 2009, 2:58:47 PM7/15/09
to Object-Oriented Programming in ColdFusion
On Jul 15, 1:35 pm, Ben Koshy <goo...@animex.com> wrote:
> PS> Hal - when you call yourself the reluctant heretic -- is that
> because you were just taking that side to be the Devil's Advocate or
> you're somewhat afraid to voice these opinions because that *IS* how
> you feel now?

No, it's because I realize that many will perceive me as suddenly
reversing my position on OO. I apparently had a "road to Damascus"
experinece -- or simply lost my mind. Or perhaps am in the employ of
Proceduralists R Us. None of those are true. What has changed is that
I see that trying to learn OO (tough enough on its own) AND implement
it in CF is leading to great frustration among developers. And for
many CFers writing business apps, their time would be MUCH better
spent doing what they're comfortable with on the server (assuming it's
working for them) and concentrating their efforts on creating great
user experiences in the browser. And that means JavaScript. If I had
100K to hire one developer for a large project, I'd look for the
person with excellent JS skills.

Peter Bell

unread,
Jul 15, 2009, 3:44:22 PM7/15/09
to coldfu...@googlegroups.com
On Jul 15, 2009, at 2:58 PM, Hal wrote:
> What has changed is that
> I see that trying to learn OO (tough enough on its own) AND implement
> it in CF is leading to great frustration among developers. And for
> many CFers writing business apps, their time would be MUCH better
> spent doing what they're comfortable with on the server (assuming it's
> working for them) and concentrating their efforts on creating great
> user experiences in the browser. And that means JavaScript.

OK, to save me from listening to the whole podcast, what you're *now*
saying is don't use OO if you're currently coding procedurally and
it's working for you? Well in that case I've also had a revelation.
Javascript is a complete waste of time (assuming that a UI without
Javascript is working for you) :-)

OO is designed to solve problems and/or to enhance valued traits like
maintainability and testability. Javascript is designed to solve
problems and enhance valued traits like usability. If you don't have
problems that need Javascript or OO respectively you shouldn't use
them. If you do, you should consider them while taking into account
the learning curve and cost benefit analysis.

We needed a podcast and a google group to get to this?!

Peter


Sean Corfield

unread,
Jul 17, 2009, 4:13:01 AM7/17/09
to coldfu...@googlegroups.com
On Wed, Jul 15, 2009 at 11:52 AM, Hal<hal....@gmail.com> wrote:
> Uh...no. Guys like Ray Camden, Ben Nadel, Joe Rinehart, Brian Kotek,
> etc. are anything BUT blowhards. (Well, maybe Brian...;-)  Rather, I'm
> saying that as a group, the aggregate message is "All OO All The
> Time". And THAT is a bad message.

I don't think that is the message out there. I don't believe anyone is
actually saying that at all. I think that's a distortion of what's
really being said. Now, it's an easy distortion to claim since it
plays on many people's fear and it glosses over any in-depth analysis
of what the "group" is saying - but that doesn't make the distortion
true. So far the only people I've seen actually nailed to a cross for
the "All OO All The Time" message with any specifics are Matt Woodward
(definitely a distortion of his beliefs) and to a lesser extent Brian
Kotek (again, a distortion of his beliefs). Who are these "AOOATT"
zealots then?
--
Sean A Corfield -- (904) 302-SEAN
Railo Technologies US -- http://getrailo.com/
An Architect's View -- http://corfield.org/

"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood

Sean Corfield

unread,
Jul 17, 2009, 4:18:38 AM7/17/09
to coldfu...@googlegroups.com
On Wed, Jul 15, 2009 at 11:58 AM, Hal<hal....@gmail.com> wrote:
> No, it's because I realize that many will perceive me as suddenly
> reversing my position on OO. I apparently had a "road to Damascus"
> experinece -- or simply lost my mind. Or perhaps am in the employ of
> Proceduralists R Us. None of those are true. What has changed is that
> I see that trying to learn OO (tough enough on its own) AND implement
> it in CF is leading to great frustration among developers. And for
> many CFers writing business apps, their time would be MUCH better
> spent doing what they're comfortable with on the server (assuming it's
> working for them) and concentrating their efforts on creating great
> user experiences in the browser. And that means JavaScript. If I had
> 100K to hire one developer for a large project, I'd look for the
> person with excellent JS skills.

The cynic in me says you were finding folks weren't signing up for
your OO courses so you switched to teaching JS instead (and whilst
that is a tongue-in-cheek accusation, I will say that someone did
complain to me that they went on one of your CF/OO courses recently
and were disappointed that you spent an inordinate amount of time - in
their opinion - pushing JS in general and event-driven programming in
JS in particular).

So, you've changed your focus... bully for you. None of that
invalidates OO any more than it validates JS. As Peter Bell said,
there's no point in using (or not using) a technique / technology to
solve problems you don't have.

If you're just saying JS / UI stuff is great, that's fine, but you
really do seem to be pushing it at the expense of OO instead of in
addition to OO... and I do find that shift in message to be both
contradictory and somewhat hollow. It seems you're just adding to the
confusion of CF developers who are already overwhelmed by options...

Hal

unread,
Jul 17, 2009, 8:29:14 AM7/17/09
to Object-Oriented Programming in ColdFusion
I guess you missed the "aggregate message" part?

On Jul 17, 4:13 am, Sean Corfield <seancorfi...@gmail.com> wrote:
> On Wed, Jul 15, 2009 at 11:52 AM, Hal<hal.he...@gmail.com> wrote:
> > Uh...no. Guys like Ray Camden, Ben Nadel, Joe Rinehart, Brian Kotek,
> > etc. are anything BUT blowhards. (Well, maybe Brian...;-)  Rather, I'm
> > saying that as a group, the aggregate message is "All OO All The
> > Time". And THAT is a bad message.
>
> I don't think that is the message out there. I don't believe anyone is
> actually saying that at all. I think that's a distortion of what's
> really being said. Now, it's an easy distortion to claim since it
> plays on many people's fear and it glosses over any in-depth analysis
> of what the "group" is saying - but that doesn't make the distortion
> true. So far the only people I've seen actually nailed to a cross for
> the "All OO All The Time" message with any specifics are Matt Woodward
> (definitely a distortion of his beliefs) and to a lesser extent Brian
> Kotek (again, a distortion of his beliefs). Who are these "AOOATT"
> zealots then?
> --
> Sean A Corfield -- (904) 302-SEAN
> Railo Technologies US --http://getrailo.com/
> An Architect's View --http://corfield.org/

Hal

unread,
Jul 17, 2009, 8:33:43 AM7/17/09
to Object-Oriented Programming in ColdFusion
Ah, yes the argumentum ad hominem. Sure, Sean, that's my motivation.
Very wise and insightful on your part.

On Jul 17, 4:18 am, Sean Corfield <seancorfi...@gmail.com> wrote:
> Railo Technologies US --http://getrailo.com/
> An Architect's View --http://corfield.org/

Steve Bryant

unread,
Jul 17, 2009, 8:44:25 AM7/17/09
to coldfu...@googlegroups.com
On Fri, Jul 17, 2009 at 3:13 AM, Sean Corfield<seanco...@gmail.com> wrote:
> I don't think that is the message out there. I don't believe anyone is
> actually saying that at all. I think that's a distortion of what's
> really being said. Now, it's an easy distortion to claim since it
> plays on many people's fear and it glosses over any in-depth analysis
> of what the "group" is saying - but that doesn't make the distortion
> true.

From my perspective, it isn't that most ColdFusion bloggers are
telling people that they must use "All OO All The Time". Rather, it is
that the prominent bloggers are smart people working on hard problems
- often the very sorts of problems that do lend themselves to OO
solutions. Consequently, their blog entries focus on using OOP to
solve their problems.

The message (implicit though it may be) often seems to be that one
should use OOP. This is compounded by the fear-mongering "If you don't
learn OO, you won't be able to find ColdFusion work." message. It may
not have been Brian's intent in this recording to give off that
message, but that is what it sounded like he said to me (apologies,
Brian, if I misinterpreted your message).

The real problem, however, is that people like me (who aren't doing
"Full Blown OO") haven't been blogging about how we develop ColdFusion
applications. If we had been, we would be offering a little variety to
the conversation. I don't blame people who use OO for blogging about
it, I blame those of us who aren't for staying silent (my new "OO
Principles" series is part of my attempt to correct this on my part).

James Allen

unread,
Jul 17, 2009, 8:53:53 AM7/17/09
to coldfu...@googlegroups.com
Very good point! I intended to blog all about my discoveries from late 2007
but never got round to it.. I have found my own way with all this and I know
it's nowhere near being 'pure' in any shape or form. However, I do feel that
how I develop now has opened many doors of understanding. I can now follow
along when reading OOP discussions or utilising open source developments
(Mura CMS, Mangoblog etc).

I think balance is in order here.. We should not just write off OOP
techniques, nor should be chase OOP purity at every turn. The right tool for
the right job springs to mind or the concept of constantly improving the way
we code.. If I had stuck with my old codebase and coding style I would still
be at the same point I was a few years ago which is this industry is very
dangerous indeed..

---
James Allen
E: ja...@jamesallen.name
Blog: http://jamesallen.name
Twitter: @CFJamesAllen (Coldfusion / Web development)
Twitter: @jamesallenuk (General)

Sean Corfield

unread,
Jul 17, 2009, 2:58:35 PM7/17/09
to coldfu...@googlegroups.com
On Fri, Jul 17, 2009 at 5:44 AM, Steve Bryant<sebt...@gmail.com> wrote:
> The real problem, however, is that people like me (who aren't doing
> "Full Blown OO") haven't been blogging about how we develop ColdFusion
> applications. If we had been, we would be offering a little variety to
> the conversation. I don't blame people who use OO for blogging about
> it, I blame those of us who aren't for staying silent (my new "OO
> Principles" series is part of my attempt to correct this on my part).

That would be great. I know Steve Bryant said he was planning to write
a series of "non-OO" blog posts and I definitely think that would help
address the balance to some extent.

Reply all
Reply to author
Forward
0 new messages