Parameter parser

Scott Walters scott at
Tue Dec 3 18:51:07 CST 2002

This question is as old as programming.

3/4 of projects are considered failures - they are obsolete, hopelessly
over budget, or the market has changed - before they are finished, and before
the maintenance phase.

Brain Foote, a well spoken and frequently published writer, wrote
a "big ball of mud" pattern, off of ...

Java interests me, but I don't enjoy writing it. I've been not enjoying writing
it for over 6 years now. I also know people who work in exclusively as their
day job. 

* No language does everything, so eventually some sort of "idiom" develops.
The "Gang of Four" book documents things that don't directly exist in the language
and require shared knowledge to understand - idioms. 

* Developing abstraction in case it is needed in the future leads to code bloat
and complexity above and beyond what is required by the actual problem. The
logic of what is done and how it is done is burried in thousands of lines
of "framework", making it painful to understand an application of this sort.

* Making a heavy investment in applications development should not be done
unless there is a worthy reward. Many Java shops take this backwards: they 
refuse to write throw away-scripts. Obviously the effort put into a program
should be matched to the expected benefit. I've wittnessed horrible personally
suffering on the part of programmers that were perfectly capable to changing
the situation because of strict management policies about the creation of
code. In Perl-land, throw-away scripts often evolve into something more,
forming a new source of innovation. 

My proposed solution?

* Programmers should be accountable for their own work for works for hire. 
Specifically, trust metrics should be in place to ferret out programmers that
cause more harm than good on the whole. 

* Code should be provided without warrenty included, keeping the business of
providing warrenties an open possibility. For this to work, either vendors
would have to make the source available or include the warrenty, which is
not the case now.  Throw-away scripts should be
market as exactly that, but should not be done away with because of
notations that all code should be high quality. Joel, of,
states that it takes 10 years to write a mature application and gives numerous
examples. I agree. That doesn't mean that we should banish software to 
"pre-alpha development" for 10 years before using it.

* Code should be abstracted after the fact, and it should be abstracted again
later, and then abstracted again, into as many layers as make sense. "Proactive
abstracting" should be absolished.

* Literate programming, as proposed by Knuth, needs to be resurrected. Programmers
should make the effort to communicate the thought behind their algorithms - 
and they should write algorithms, not just code - and other programs should
take time to learn it. Idioms should be spread this way. People should study
the idioms of a language with the language (and damnit, they should read 

Perl culture is dead-on in some reguards, and horribly ignorant on
other accounts. Java has a lot we can learn, but I feel very strongly
that they shouldn't be eating our cake right now, and they are. 


> On Tuesday 03 December 2002 10:09 am, Doug Miles wrote:
> > Hal Goldfarb wrote:
> > > I highly approve of your coding style and modular breakdown (similar to
> > > mine).  Consistency is wonderful  : )
> >
> > Thanks.  I tend to optimize for readability.
> >
> > <SNIP>
> Now, if we can just get ALL programmers to agree, maintenance positions would 
> become attractive.  Problem is that certain individuals seem to think that 
> other formats are "cute", "artsy", or otherwise self-expressive.  Architects 
> have a single printing style (individuals all attempt to write the same way); 
> engineers tend to use small block lettering (more coincidence, or possibly 
> similar personality quirks); we could even argue that doctors share the same 
> "chickenscratch" language, decodable only by pharmacists and some nurses.  
> And don't even get me started on spelling, grammar, and organization.
> When 80% to 90% of the lifecycle of a system is spent in the maintenance 
> phase, I feel that my rant is well warranted.
> This is one of the many reasons I feel that our field is so unprofessional.  
> Thank you for listening to one more very frustrated unemployed software type.
> -Hal

More information about the Phoenix-pm mailing list