From ...
From: Erik Naggum
Subject: Re: garnet performance issues
Date: 1999/02/13
Message-ID: <3127887848401925@naggum.no>#1/1
X-Deja-AN: 443920516
References: <8790e57nju.fsf@soggy.deldotd.com> <4naeyky0bd.fsf@rtp.ericsson.se> <3127777371842834@naggum.no> <36C4B9B4.CCB73C37@fisec.com> <3127866695326571@naggum.no> <36c52b83.86210201@news-server.austin.rr.com>
mail-copies-to: never
Organization: Naggum Software; +47 8800 8879; http://www.naggum.no
Newsgroups: comp.lang.lisp
* 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 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