Subject: Re: Checking for Errors Before Run Time
From: Erik Naggum <erik@naggum.net>
Date: Wed, 21 Nov 2001 18:38:23 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3215356701011266@naggum.net>

* Erik Naggum
> I disagree, probably to your surprise.  The earlier an error is detected,
> the _firmer_ the determination that it is an error is, and the simpler
> the world must be in which statements are made.

* Chris Perkins
| True, but our code does make simple statements from time to time.

  I was referring to the statement "this is an error".

| And it would be nice if the simpler bugs could be vetted out.

  As you grow more accustomed to programming in a better language, you will
  notice that you make far fewer "simple bugs".  I am serious about this.

| Anyway, I know Java and C++ are terribly brittle, and maybe as I work
| more in Lisp I'll just perceive DBC, assert clauses, and the like as
| artificial kludges for addressing the shortcomings of static languages.

  The overspecificity of these languages produces the need for tools to
  combat their cognitive load.  Having to specify so much detail so early
  it just plain wrong, so you need tools that can help you keep things
  together when you have to make changes as you learn what you should have
  known by the time you specified these things.  The nature of the problem
  you are solving becomes known to you only as you try to solve it.

  I believe C++ instills fear in programmers, fear that the interaction of
  some details causes unpredictable results.  Its unmanageable complexity
  has spawned more fear-preventing tools than any other language, but the
  solution _should_ have been to create and use a language that does not
  overload the whole goddamn human brain with irrelevant details.  Striking
  that balance between language complexity and the convenience of using it
  is amazingly hard, but I think Common Lisp is closer to this lofty ideal
  than any other I have used.  That the syntax is so predictable and so
  easy to navigate using the proper editor, causes many more benefits than
  people realize early on.  I think the best advice right now is that you
  should relax all those "needs" you have because you come from a C++/Java
  environment.

///
-- 
  Norway is now run by a priest from the fundamentalist Christian People's
  Party, the fifth largest party representing one eighth of the electorate.
-- 
  Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.