[plt-scheme] Re: More pedagogic stuff

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Wed Aug 13 17:56:16 EDT 2008

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


Posted on the users mailing list.