[plt-scheme] Re: More pedagogic stuff
On Aug 13, 2008, at 5:38 PM, Marco Morazan wrote:
> I would argue it is on the verge of being a formal method and it is
> certainly science.
We need to distinguish what a programmer does vs what we, the
developers of the discipline, do.
1. Good programming (especially agile) uses the scientific method:
[a] develop a model (called prototype)
[b] measure it wrt to the client and user (who could be different)
[c] start over at [a] based on input from [b]
[d] the process stops when the client believes the model is
good enough to conquer a good share of the market w/o
making users hate it and wish for someone to replace it
In addition, programs are extremely abstract artifacts. Because of
very few people are good at working with abstract constructions and
because very few people have good (self) discipline, I consider even
ordinary programming way beyond the expertise of car mechanics or
even average engineers with a BS degree. Sadly that doesn't prevent
them from doing it anyway, because bad programming can be done by
everyone and can reach [d] too.
The equally sad part is that average programmers lack expertise in
"domains." Because programming is abstract, it applies everywhere.
But good applications demand good understanding of the domain.
So the fault for bad programming and software construction is both
with overconfident non-trained engineers and others who pretend they
can program and with programmers who pretend they understand all and
every application domain.
2. We, the creators of the discipline, mix tools from many different
disciplines, even if you restrict your view to PL:
-- mathematics and logic
-- engineering
-- psychology
-- sociology
-- art
-- Matthias