From ... From: Erik Naggum Subject: Re: On comparing apples and oranges (was: Q: on hashes and counting) Date: 2000/10/23 Message-ID: <3181316785793542@naggum.net>#1/1 X-Deja-AN: 684923331 References: <8sl58e$ivq$1@nnrp1.deja.com> <8spidj$3c9$1@nnrp1.deja.com> <3181049804953878@naggum.net> <8sqa12$p6k$1@nnrp1.deja.com> <3181075346296330@naggum.net> <8t1frt$u13$1@nnrp1.deja.com> <8t1k25$1q3$1@nnrp1.deja.com> mail-copies-to: never Content-Type: text/plain; charset=us-ascii X-Complaints-To: newsmaster@eunet.no X-Trace: oslo-nntp.eunet.no 972328021 26026 195.0.192.66 (23 Oct 2000 19:07:01 GMT) Organization: Naggum Software; vox: +47 800 35477; gsm: +47 93 256 360; fax: +47 93 270 868; http://naggum.no; http://naggum.net User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.7 Mime-Version: 1.0 NNTP-Posting-Date: 23 Oct 2000 19:07:01 GMT Newsgroups: comp.lang.lisp * glauber | Sorry for the slight smart-alecky post. What i meant to say was, | C++ is mostly a rework of C aimed at allowing you to define your own | types. The classical example is, you can define a "rational number" | type and then overload all the mathematical operators so that your | new type behaves just like the old built-in types. This is all in-language stuff. I don't want to use the language do to these things, I want to make it unnecessary to do all the crap that C++ requires before it becomes a usable environment. I mean, C has an annoyingly underdesigned main (argc, argv) where you get to implement your own command-line argument processor wrong (or at least unlike every other program), or use some annoying in-your-face implementation of a general option processor that isn't because you don't have lambda lists in the language. In C++, you have to build your classes and the way they interact from scratch, because all the defaults are wrong and useless. It's like you live in this world where you have to put everything together from loose parts every time you need anything, but as soon as you're done, they revert to loose parts, and every time you put something together, you have to remember how to put it together, because there's no support for anything except putting together. (In Lisp, macros help you keep things together.) Hey, I loved LEGO as a kid, and the new robot stuff they do is fantastic, but as a kid, I didn't take everything I had built apart every night only to rebuild it slightly differently the next day. If my LEGO buildings and stuff fell apart during the night so I _had_ to rebuild everything every day, I'm sure I would be almost as unhappy with LEGO as with C++. | Of course this problem doesn't exist in Lisp. No, it isn't, but not "of course". Lisp is for building things that last. It is this that is out of vogue in the programming world more than it is out of vogue anywhere else. "Innovation", remember? But it takes more than not to remember how you did it the last time to be innovative. #:Erik -- I agree with everything you say, but I would attack to death your right to say it. -- Tom Stoppard