Subject: Re: In praise of Java.
From: Erik Naggum <erik@naggum.net>
Date: Sun, 02 Dec 2001 02:14:09 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3216248047172065@naggum.net>

* Erik Naggum
> C++ is a language that encourages such cheating and lying because you
> _have_ to tell your compiler something you cannot possibly know, yet,
> such as the type of all your variables and functions, and then you make
> up a reality that fits the lies.

* Thomas Stegen CES2000
| Are you proposing to start writing the code before you know where
| the program is headed?

  No.  How did you arrive at the rather peculiar position that I might?

  Hint: Just because you equate certain things does not mean they are even
  remotely connected, much less the same.

| One should know all these things before one starts writing code.

  Wrong.  How did you arrive at this rather peculiar value judgment?

  Hint 1: You may know you need a number, but whether it is a floating
  point number or an integer might not be known early.  Hint 2: If you
  think you need an integer, you probably do not know its range, yet.
  Hint 3: If you need an integer without easy hardware representation,
  getting a type with sufficient range might require special libraries that
  impact a lot more than your specific algorithm, such as its interface to
  its callers, which will also have to use this library.

| Of course this is not easy, and almost invariable will adjustments need
| to be made.

  You are making my point, now.  If you did not make statements about types
  prematurely, you could _narrow_ the type specification down as you went.
  In Common Lisp, we have the universal supertype t atop the _hierarchy_ of
  types, and many levels in the hierarchy, and we do not need to specify
  the lowest possible type in the hierarchy right away.  Until classes came
  along in the C world, all of C's types were disjoint because they reflect
  hardware "types".  This is simply bad programming language design.

| But I don't believe this is not the case in Lisp as well.

  You can believe whatever you want for all I care, as you have obviously
  made up your mind, already, but please do not tell me what I believe.  I
  make an effort to be precise and accurate in what I write.  You could
  make the effort of paying attention in return.

  Where did you come from?  Is there a C++ conference next door that sends
  out missionaries to defend their obviously broken language from critique?

///
-- 
  The past is not more important than the future, despite what your culture
  has taught you.  Your future observations, conclusions, and beliefs are
  more important to you than those in your past ever will be.  The world is
  changing so fast the balance between the past and the future has shifted.