I wonder if something like Cobertura
(http://cobertura.sourceforge.net/) could be used if we pre-compile
classes? Perhaps they'd let us contribute.
I'll see if I can find some free cycles to play with this.
--Daryl
There's a VERY important caveat right at the end of Joel's piece:
"Duct tape programmers have to have a lot of talent to pull off this shtick."
That's pretty much true of anyone who - based on lots of experience
and lots of innate talent - knows when to cut corners. This is one of
the big problems with a lot of what Joel writes: he's not talking
about the millions of average-to-good programmers who make the world
go around, he's only talking about the select handful of really,
really talented guys who enable the leaps-and-bounds advances in our
field.
Scott Meyers and I were talking years back about types of programmers
and he said something I'll never forget: in his opinion, there are
three types of programmers: "public" programmers who write
applications, "protected" programmers who write libraries and help
"public" programmers, and "private" programmers who write operating
systems and compilers and can mentor the "protected" and "public"
programmers. And those "private" programmers are born, not made -
their talent is innate: they have to program because it's in their
blood. They started young, they generally know a *lot* of different
programming languages and they write code for fun. Scott said the
ideal situation would be for every company to have a "private"
programmer (or two), several "protected" programmers and a good, solid
team of "public" programmers (but in reality there are too few
"private" programmers and they often congregate at "cool" companies).
Scott Meyers wrote the Effective C++ series (seminal books on C++ best
practices).
A lot of people I've talked to over the years don't like Scott's
opinion because they want to believe all programmers have the
potential to become excellent. My experience doesn't support that
belief, I'm afraid :(
There's also a flip side to this - and very important advice it is too
in my opinion - know what you don't know and have the strength to stay
within your comfort zone when there's a lot of risk involved with a
project. In other words, don't try to learn a lot of new stuff on a
big, important project! Learn it little by little on smaller, less
critical projects. Walk before you can run.
In the CF community, a lot of people have unrealistic expectations
about how quickly they can master - or even pick up - a lot of the
"cool" techniques that are bandied around. Not everyone can be a
"private" programmer. Not everyone picks stuff up quickly. And don't
be discouraged because "this stuff is hard" - for 'stuff', substitute
pretty much any of the techniques touted by a small, vocal group of
programmers worldwide are advocating, whether that's Agile processes,
OO, Functional Programming, Concurrent Programming... All these things
are hard to master and you almost certainly won't get to any level of
competence on your own (unless you're born a gifted programmer and
even then you need to work with teams to find out what does and what
does not work in group dynamics).
Hmm, that turned into a bit of a philosophical rant... blame it on
being the first email I wrote after falling out of bed on a Saturday
morning!
--
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