5. One of those very, very smart gurus can write me up a business
The issue is the 'next time'. The c guy would find a way to abstract
and reuse his methods -- so he would constantly decrease his programming
turnaround time, and increase program speed and efficiency.
The VB would be static -- it will always take 2 hours and it will never
run any faster...
Your second statement is true. The VB programmer would always take 2
hours to build his application, and it would always be slow and
piggish.
Unfortunately, your first statement is a common fallacy of the C
programming world (in which I lived for 15 years, by the way). Building
a framework for efficient production of software requires two things: a
smart programmer (let's assume we already have that), and the ability
to anticipate the needs of the business, which means you have to be a
domain expert, too. This is what many C gurus forget: it's not enough
to be a programming whiz. In order to produce a sound architecture for
a system you must also be a business analysis whiz. If you get the
programming right but the business analysis wrong, you produce a
beautiful, elegant application that your users will hate (and
ultimately not use) because it's not what they want. It won't adapt to
future needs, either.
"Architecture is a risk." If you've never heard that phrase before, you
need to read "The Big Ball of Mud" by Foote and Yoder.
http://www.laputan.org/mud/mud.html
Unfortunately, the Big Ball of Mud was "academized" years back to
appeal more to the "powers that be" at the University of Illionois. At
least I assume so because I have a photocopy of the original version,
and it was much kinder to in-the-trenches business developers and much
more jarring to academic sensibilities. Nonetheless, it's still a good
read.
So, point #1 is that it's not enough to be a smart programmer. If
you're a C guru who works 5pm to 4am and doesn't like talking to people
then you're going to end up producing elegant crap that _doesn't_ stand
the test of time because you didn't understand the problem domain well
enough.
Point #2 is that the VB hack, for all of his faults, is standing on the
shoulders of giants, as it were. As dumb as it is,
drag-drop-point-click and he's integrated Windows drag-and-drop, export
to Excel, export to PDF, and myriad other bells and whistles into his
app. Yes, it's a bloated monster, but it allows his business users to
work seamlessly between his little (fat, bloated) app and the rest of
the system they know and understand. The C guy says, "Hey, I can do
that, too! Just give me 3 weeks of sleepless nights to write the 10,000
lines of code to add all of those features...."
As I said, I thank God for C gurus. particularly when I go into a
hospital and put myself inside a CAT scanner, or when I get on board a
fly-by-wire AirBus. However, I wouldn't hire one to write business
software; it's just not he same skill set.
As well, my real-time, picky-detail embedded programming background
makes me vaguely uncomfortable with the VB guy who really has no idea
what's going on under the hood. Nonetheless, I must grudgingly admit
that he can crank out business-ready software that _gets the job done_
and that _his users love_ far faster than I can. If I see him monkeying
with hospital equipment, though, I'm making a hasty exit.