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