Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!gatech!udel!haven.umd.edu!socrates.umd.edu!socrates!rockwell From: rockwell@socrates.umd.edu (Raul Rockwell) Newsgroups: comp.lang.misc Subject: Re: scheme [Re: What does an anti-perl look like] Message-ID: Date: 22 Jun 91 06:45:35 GMT References: <2714@amix.commodore.com> Sender: rockwell@socrates.umd.edu (Raul Rockwell) Organization: Traveller Lines: 95 In-Reply-To: skrenta@amix.commodore.com's message of 21 Jun 91 16: 01:37 GMT Rich Skrenta: Looks like I rubbed a scheme zealot the wrong way. :-) I have a little trouble accepting this idea. Partially because this is in response to one of my articles, and partially because there are languages I find much more suited to my purposes than scheme. (Scheme is too akward at expressing higher-ordered functions for my taste :-). Raul Rockwell (me): > "Write only" languages tend to be ones you don't understand. > Programmers who can't debug programs don't earn high marks in > anybody's book (except, perhaps, their own). Rich Skrenta: Strong words, but little insight. Of course you have to understand a language to debug it. No kidding. But given equal proficiency, could a programmer debug a similar algorithm implemented in Algol or Forth faster? How about C vs. Assembly? Scheme vs. teco? I seem to recall a team of Forth programmers winning a "recent" programming contest -- they were the first to come up with a working program which displayed text on a moving LED bar, or something on that order. I don't know if anybody even attempted Algol. The C vs. Assembly argument is basically that there are so _many_ assembly languages that it becomes difficult to learn all of them, let alone learn many well. C is not the end-all on portability, however. I'll let scheme and teco fans argue about the virtues of those two languages. Anyways, the point [or the "insight", if you prefer] was that "write-only" is a reflection on programmer skill in a language more than a reflection of the language itself. Rich Skrenta: It seems clear that some languages open code written in them to inspection and understanding. Ah, yes, like scheme... ;-) Other languages seem to swallow code in a black goo of obfuscation. Obviously refering to C, here... ;-) It's possible that the Magical Power of Lisp-like-languages outweighs the disadvantages of folding every syntactic construct onto the pattern f(a b c). I'm suspicious, though. The Scheme crowds' arguments sound an awful lot like all of the excuses I heard for using Forth. Well, if I pointed out the language that *I* prefer (and find clear and easy to use), you'd probably choke to death. Let me just say that I do prefer infix notation. [This is me:] > [And an inability to debug in an interactive environment suggests > a severe lack of discipline.] [And that's Rich:] This statement inspired such wonder in me, I couldn't choose between my responses: 1) My interactive enviroment is Unix and vi, does that count? :-) to the degree that the environment is interactive, yes. 2) Good thing all of those nasty undisciplined Fortran programmers debugging their card stacks between batch runs are gone. Why? I was simply pointing out that an interactive environment provides many opportunities for debugging -- if you have the insight to use them. A batch environment has fewer opportunities for debugging and so enforces a sort of discipline. 3) What on earth does discipline have to do with using debuggers and code viewing tools? And here I thought you were using Unix and vi. ;-) Anyways, if you get lost in the wonder of it all, you aren't going to get much debugging done. On the other hand, if you know exactly what you want to do, and only breakpoint/trace/single-step/dump the key sections of code, your debugging goes a lot faster. Once you've been using an environment for a while, this all becomes second nature, but since the topic seemed to be write-only languages (which, by definition, are not well understood) I don't think I was out of line with that comment (3). For instance, breakpoints, and code viewing, are trivial with scheme. -- Raul