Subject: Re: garnet performance issues
From: Erik Naggum <erik@naggum.no>
Date: 1999/02/13
Newsgroups: comp.lang.lisp
Message-ID: <3127887848401925@naggum.no>

* dyoder@tazent.com (Daniel J. Yoder)
| Can't quite resist this one, coming from C++ land as I do.  Don't worry,
| I'm not going to try and defend C++.  I am quite enjoying working in Lisp
| after years of working C++.

  well, it was six months of C++ that made me determined to find something
  else to with my life.  I was a free-lance journalist for a while since I
  just couldn't stomach programming, anymore.  I know where you come from.

| That said, strongly typed languages aren't a bad idea by themselves.

  I try to separate "strongly typed" from "explicitly typed".  I have no
  qualms whatsoever with strong typing through type inference, à la ML,
  it's the stupid need to write these things out explicitly that I find so
  nauseating because the only thing the compiler does with it is bark at me
  for not agreeing with it.  how obnoxious.  if it already knows what it
  should have been, it should shut the <beep> up, and just do its job.

| There are quite a few kinds of applications where, however, unlikely you
| might think it is, you don't want to find out at runtime that there is
| type mismatch.

  my current application is mission critical and such errors would be very
  annoying, but of all the silly mistakes I have made, a type mismatch has
  occurred only once.  (ok, so there have been 49 programming errors caught
  by the debugger in 6 months of operation, dealing with such things as
  calling VECTOR-PUSH-EXTEND on a vector that wasn't actually adjustable --
  I'm not sure how much extra stuff I'd have to write to make that error
  detectible at compile-time, considering that the array is created by a
  wrapper that adjusts the argument list a little and applies MAKE-ARRAY to
  it, and the wrapper is passed its arguments from a configuration file...)

| It is really nice to work in Lisp where I don't have to have the
| design completely correct before I can start development.

  oh, yeah.  I used to feel as if I had to have The Perfect Class Hierarchy
  before I could sit down with C++; the cost of redesign was just too high
  to stomach.  there's hardly a weak that I don't rely on CLOS updating the
  instances after a class has been changed in a running system, these days.

| Or has it? =) 

  not that I know.  I would like to have code analysis tools that reported
  on calling patterns in my code, and with deep nesting of functions it is
  sometimes useful to see where a variable is actually used, despite being
  passed in to a very high-level function.  and lots of other stuff that
  needs intimate coupling with the compiler.

#:Erik