Slashdot Mirror


RMS The Coder

Andrew G. Feinberg writes "Here is a article on the LinuxCare website. " This is a cool interview just because its not dealing with the usual GNU/Open Source/Free Software stuff, but more with code, coding, and lots of other stuff that frankly just isn't political. Enjoy it.

333 comments

  1. Re:Commercial LISP by Rombuu · · Score: 2

    That does sound like a really cool application for LISP, and one where it does make a lot of sense. Now that the ol' memory has been engaged, I have been thinking back to a programming languages class I took a long time ago. We ended up writing bits of a compiler in both C and LISP and I had forgotten how much easier it was to do a number of operations (like tokenizing and parsing) in LISP than in C. (Although part of me still thinks this may be because programming in LISP via EMACS is one of the most solid, easy to use, and just well integrated programming envrionments ever put together. Hmm... I wonder if RMS did that on purpose :) )

    --

    DrLunch.com The site that tells you what's for lunch!
  2. Re:I'm tempted to try ML by Anonymous Coward · · Score: 0
    Just compiling the ML system on my BSD box was an adventure...it was a clean install, but took forever (much like Dylan).

    I assume you are working with SML/NJ then? There are a few other ML compilers that are pretty good (like ML Kit w/ Regions -- no garbage collection required!), but it is basically what all other implementations are measured against.

    I hear people rave about ML. Can you give me some more conrete information on where it might be useful in a real production environment? What types of problems does it solve?

    If you are doing any sort of programming language or compiler development nothing beats ML. It's recursive dataype representation and pattern matching (not the same type of matching as say Perl's regexes) make it perfect for the job. Admittedly your average hacker isn't working on a compiler or programming language, but it is also good for many other things as well. I wouldn't recommended it for writing kernel drivers (though there are a couples projects that are writing OSes in ML), or for the same sort of scripty tasks that you would use Perl for. It really shines through when developing application-type software. Part of what makes it so good for this is that is has a module system that allows for excellent seperation of interface from implementation (you can't truly hide "private" implementation information in a C++ for example) this coupled with functors is great for software engineering tasks.

    Another element of what makes ML so nice to work with is how concise it is compared to many other languages. It may be possible to do something similar in LISP, but for example the following code will perform regex matching using pattern matching and continuations for flow control (Slashdot has sort of mangled the whitespace):

    datatype regexp =
    Char of char
    | Epsilon
    | Empty
    | Concat of regexp * regexp
    | Union of regexp * regexp
    | Star of regexp
    | Underscore
    | And of regexp * regexp
    | Top
    | Not of regexp

    (* val acc : regExp -> char list -> (char list -> bool) -> bool *)

    fun acc (Char(a)) (a1::s) k = if (a = a1) then k s else false
    | acc (Char(a)) (nil) k = false
    | acc (Concat(r1,r2)) s k = acc r1 s (fn s' => acc r2 s' k)
    | acc (Epsilon) s k = k s
    | acc (Union(r1,r2)) s k = acc r1 s k orelse acc r2 s k
    | acc (Empty) s k = false
    | acc (r as Star(r1)) s k = k s orelse
    acc r1 s (fn s' => if s = s' then false else acc r s' k)
    | acc (Underscore) (a1::s) k = k s
    | acc (Underscore) (nil) k = false
    | acc (And(r1,r2)) s k =
    acc r1 s (fn s2 => acc r2 s (fn s2' => s2 = s2' andalso k s2'))
    | acc (Top) (s as a1::s2) k = k s orelse acc (Top) s2 k
    | acc (Top) (nil) k = k nil
    | acc (Not(r)) s k = let
    (* nacc (s1, s2) where s1 @ s2 = s *)
    fun nacc (s1, s2) = (not (acc r s1 List.null) andalso k s2) orelse tryNextSplit (s1, s2)
    and tryNextSplit (s1, nil) = false
    | tryNextSplit (s1, a::s2) = nacc (s1 @ [a], s2)
    in
    nacc (nil, s)
    end
    (* val accept : regexp -> string -> bool *)
    fun accept r s = acc r (String.explode s)List.null


    If you've ever written a regex code in C or C++ you can understand just how succient that is in comparison.

    Some examples of real world ML use include http://foxnet.cs.cdmu.edu which is a web server written in SML, on top of a TCP/IP stack written in SML too (which is on par with the performance of Digital Unix's native implementaton). CaML, a dialect of ML, has numerous applications written in it, everything from an emacs clone that uses CaML rather than elisp, to Doom and Quake-like graphics renderers.

    As I mentioned before, for those with a better understanding of mathematics, particularly logic and how mathematical functions operate, the relationship between ML and logical type theory are particularly beautiful. ML is also one of the first languages to be fully formalized, allowing for proofs of its soundness and completeness.

    I would recommend Introduction to Programming Using SML as a reasonable language reference, and ML for the Working Programmer as another interesting text too look at. There are also quite a few other good texts that relate to ML, such as Purely functional Data-structures and Modern Compiler Implementation in ML
  3. Re:Why is LISP superior? by 10am-bedtime · · Score: 1
    LISP is to other languages as DNA is to other molecules.

    you have to get infected to really grok w/ it. good luck!

    --thi

  4. Wish we'd have more articles like that. by core · · Score: 2

    This is a very nice talk showing for once, not
    just the political ideas of Richard Stallman, but
    why he deserves so much respect whatever his
    positions are: his incredible programming skills.
    I really believe he's one of the great minds of
    our time. Heck, gcc, emacs, POSIX, what else :)
    gcc sources are a good example. I don't know if he's the one that came up with the idea of compiling to an intermediate form and then having each cpu target translate the intermediate, prepackaged form to machine code, but that's a fabulous idea.

    Yet another person who put an easter egg in a C compiler; the other one (putting both a (harmless) backdoor in his C compiler, and code in the compiler that would detect unmodified C compiler sources and insert the hack as the compiler was built) was more creative though.

    1. Re:Wish we'd have more articles like that. by Anonymous Coward · · Score: 0
      Heck, gcc, emacs, POSIX, what else[?] :)

      Don't forget GDB.

    2. Re:Wish we'd have more articles like that. by jejones · · Score: 1

      No, RMS didn't originate the idea of compiling to an intermediate code and translating that into assembly or machine language. The idea was called "UNCOL" (UNiversal COmputer Language) back in the early 60s. BCPL implementations used an intermediate form called "ocode," the Cambridge Algol 68C system used an intermediate form they called "zcode" (which had a parametrizable virtual machine; you could twist a knob to set the number of registers to match the number on the target), and people have already mentioned the UCSD Pascal p-code. (For that matter, RTL isn't original with gcc; wasn't it Freiburghouse who thought of the idea?)

    3. Re:Wish we'd have more articles like that. by Anonymous Coward · · Score: 0
      For that matter, RTL isn't original with gcc; wasn't it Freiburghouse who thought of the idea?)
      Which idea - a portable C compiler (pcc)?
    4. Re:Wish we'd have more articles like that. by Anonymous Coward · · Score: 0

      if he's so great how come he can't finish the HURD already...

  5. Linux? GNU Linux? Lignux? and BSD licensing by MattMann · · Score: 2
    The GPL does not ... require one to name a product... with a name that mentions GNU. [Redhat has] chosen to call it RedHat Linux. Anything else you call it is simply wrong. ... RMS ... was unable to refute this point.

    ROTFL! The irony of this that is that RMS makes a big deal in this article about how he's been so busy getting the BSD license changed so that you don't need to mention contributors, but he then keeps making such a big deal about having GNU mentioned in the context of linux. He's so rigidly idealogical that it is deliciously funny to catch him even slightly hypocritical.

    Having had the laugh, though, I would point out that it could still be considered in good taste to mention GNU or FSF given the magnitude of their contribution. Think how upsetting it would be if MS made a distribution and called it "Windows 2001", which they apparently could if they wanted. Yikes!

  6. Re:Ever Notice? by Captain_Carnage · · Score: 1

    Man, if that #2 of RMS isn't trying to depict him as Jesus....

    :)

    (A joke! Laugh!)

  7. "more" != "brilliant" by Anonymous Coward · · Score: 0


    is their a compiler with more language/platform support than gcc? I don't think so.

    me neither, but what's yer point? it appears that he borrowed the intermediary thing. okay, fine, he borrowed C as well. no problem. so then he went and did more of the intermediary thing than anybody else. well, that's great, especially if you have to target your code to multiple architectures. fantastic, in fact. but there's nothing "brilliant" or exciting about it. it's just dilligence. admirable, commendable, enormously productive and useful dilligence. but if i write a compiler retargetable to three languages on three platforms, and RMS then comes along and does four, that doesn't make him a genius for counting one higher than me. it just makes his compiler more useful.


    anyhow, AFAIK stallman is no longer closely involved with gcc. hopefully cygnus will be bringing gcc more in line with the c++ standard. they've lagged behind MS and Borland, which is a hassle with some things. last i checked (egcs 2.95 or something), they still had weirder template problems than MSVC and BCC. all three are still noncompliant with templates, but gcc was the worst on the features i checked. it's also the slowest, but that's not a massive issue. if i use gcc, it's because i need portability, and i waste a hell of a lot less time waiting for compiles on all platforms than i would waste by making msvc-friendly code work in gcc or vice versa, if i had to use different compilers per platform. so it's a win and will remain one, assuming they get off their asses with templates (can't vouch for this, but i've read that templates are considered by far the ugliest c++ feature to implement).


    Are there any other operating systems that masquerade as editors? I don't think so.

    i certainly by-fuckign-god hope to hell not. emacs is the most bloated piece of godawful cruft i ever saw in my life. same bullshit maximalism that MS is guilty of "integrating" IE/IIS etc. into the OS. sheer cretinism. bad, bad, bad software design. and coming from RMS, the UN*X apostle! it boggles the mind, un*x is about modularity etc., not swiss army bloatware.


  8. Pssst, little boy . . . by Anonymous Coward · · Score: 0


    You tell me what you're using to generate these auto-rants, and in return I'll trade you a program that'll fix the damn line breaks.

    I'm just curious. I'm not going to use it to troll Slashdot: I write my own damn trolls, and I don't need no steenking program. If I did, I wouldn't do it your way anyhow: I'd take a big chunk of the book of Revelation, maybe some Leviticus, a little Hunter S. Thompson, a little Wilfred Owen and Ezra Pound, and a round dozen man pages. I'd then ram all that crap through a Markov chain reassembler, pick my favorite parts, and polish the results by hand to a high gloss reminiscent of fine furniture, esp. the lambent glaze in the eyes of an unhinged escritoire.


    1. Re:Pssst, little boy . . . by Anonymous Coward · · Score: 0


      I bow before your awe-inspiring trolling ability. You, Lord Trollhaugen, are crowned King of Trolls.

      Uh, ha ha. MEEPT! is the Man, if you want my opinion. Also the open source natalie portman troll has done some really admirable work, for example this faux-Williamgibsonish item.


      Please to share some of your troll-rolling knowledge. Post your email address here.

      You makin' funna me? Gee, now I feel hurt. At any rate, I troll by picking an arbitrary right-wing religious or political theme, and hammering it into the ground with bad logic and imaginary facts. I think that's clear enough from the trolls themselves.


      My trolling method of choice is this website: http://www-csag.cs.uiuc.edu/individual/pakin/compl aint

      Thanks.



    2. Re:Pssst, little boy . . . by Anonymous Coward · · Score: 0

      I bow before your awe-inspiring trolling ability. You, Lord Trollhaugen, are crowned King of Trolls. You, Lord Trollhaugen, must create a website dedicated to trolling on /.

      My trolling method of choice is this website:
      http://www-csag.cs.uiuc.edu/individual/pakin/com plaint

      Use it carefully, for it has powers beond what you can imagine!

      Please to share some of your troll-rolling knowledge. Post your email address here.

      Prince Trollsirlot

    3. Re:Pssst, little boy . . . by Anonymous Coward · · Score: 0

      Yeah, those guys are good. Now, where's that program that you were goingto trade me?

  9. Some more pictures (Re:Ever Notice?) by Anonymous Coward · · Score: 0

    Dennis Ritchie isn't much better. But if all ugly people ever invent something as useful as UNIX, they're really forgiven :) Eric Allman (Sendmail) isn't much better. Andreas Beck and Emmanuel Marty (GGI) are a little better if probably not unfamiliar with drugs ;-) Looks to me like we all have a quota that can't go to both programming skills and looks. I take the skills any day tho.

    1. Re:Some more pictures (Re:Ever Notice?) by enterfornone · · Score: 1

      I guess I better give up. I'm obviously never going to be able to program :)

      --

      --
      enterfornone - logging in for a change
  10. Asynchronous Logging by Anonymous Coward · · Score: 1
    For example, sometimes it's nice to be able to "tail" a file as it's being created.

    This is referred to as asynchronous logging, and it can't be done on NT.

    This is one of my chief nitpicks with that OS.

    1. Re:Asynchronous Logging by Guy+Harris · · Score: 2
      Oh, you mean like O_EXLOCK?

      Not exactly - the open(2) man page on my machine says that O_SHLOCK and O_EXLOCK give you locks "with flock(2) semantics", but the flock(2) man page says that they're advisory locks. The "deny {read,write,read+write}" locks on DOS and Windows are mandatory locks - if you deny read access, nobody can open the file for reading, period (I'm not certain whether even privileged users can override that), and if you deny write access, nobody can open the file for writing, period.

    2. Re:Asynchronous Logging by Anonymous Coward · · Score: 0

      You've got to be kidding! That's fundamentally idiotic. You can't run tail -f on NT? So much for POSIX, both dot-1 and dot-2.

    3. Re:Asynchronous Logging by Anonymous Coward · · Score: 0
      I'm pretty sure some of the SysV OSes had something like that. Setgid bit on non-executables or some such.

      I'm not sure what I think about mandatory locking. I understand the motivation, but to learn you can't tail a file would be really anoying.

    4. Re:Asynchronous Logging by Guy+Harris · · Score: 2
      You can't run tail -f on NT?

      You couldn't run a program to do something such as tail -f if whoever was writing to the file opened it with a mode that prohibited other processes from opening the file for reading.

      Programs aren't obliged to do that, but they might do that to prevent other programs from reading the file until they're done writing it (so that they don't get incomplete data - of course, the whole point of tail -f is that it should be able to read an incomplete file...).

      I don't know whether fopen( file , "w"), say, opens with "deny read" on Windows; CreateFile(), as I remember, lets you specify the "share modes" as an argument, so you can deny read, deny write, deny read or write, or deny nothing to other processes. (CreateFile() is the Win32 equivalent of open(); instead of UNIX/POSIX, where you can create a new file with open(), you can open an existing file with CreateFile() in Win32.)

    5. Re:Asynchronous Logging by Anonymous Coward · · Score: 0

      Oh, you mean like O_EXLOCK?

    6. Re:Asynchronous Logging by Anonymous Coward · · Score: 0

      So how does tail from cygwin do it then? I have had processes output to a file and done a tail -f on them on NT using this version of tail. I guess you'd have to scan the source code to find out.

  11. Re:Security by maw · · Score: 1
    People deserve privacy for things that should be private. If you're writing a love letter to your girlfriend, you have every reason to want that private.

    On the other hand, if you're trying to do something cooperative, such as writing or maintaining free software, it helps to cooperate! For instance, if somebody has a question about some free software, do you care who answers it as long as the answer is good? This idea applies to a lot of other areas, too.

    I believe that RMS said that security makes sense in banks and in the military, but makes less sense in the lab. This isn't unreasonable, since presumably people working together in a lab share some sort of common goal.

    --
    You're a suburbanite.
  12. Re:YART - Yet Another RMS Triumph by eagl · · Score: 1

    BZZZZZZT!

    You're right of course, I just wanted to post like a jerk JUST LIKE YOU. Why? Because:

    Your people skills are obviously superior.

    You are never wrong.

    If you were wrong, you would want someone to be as sarcastic as possible pointing out your mistake instead of pretending to be human and merely correcting you.



  13. Re:Perl by Tom+Christiansen · · Score: 2
    Besides normal refcount GC, Perl also runs a complete GC pass on thread shutdown time to find the circularities. This makes it much more suitable in an embedded environment than most other languages that use a refcount GC, such as Python, which does no such lifesaving pass at the end of a thread.

    And Perl is certainly strongly typed--providing you look at it the right way. You could say that Perl has strong typing but late binding, that is, dynamic typing.

    Let me explain. If you store an object of type Foo in variable $ob, you are perfectly welcome to store an object of type Bar there later. This is very polymorphic. However, due to dynamic typing, if you call a method that only works for class Foo when the variable is holding a Bar--or vice versa--then you'll take a run-time exception.

    The use fields pragma affords you static typing, however, so that you'll get caught early, back at compile time, for certain kinds of incorrect OO operations; viz., improper data attribute access. Perl has a lot more compile-time analysis than you might be used in other so-called "(byte-code) interpreted" languages.

    Perl also has sane conformance rules between certain fundamental kinds of values that confuse people. That's not to say it's not strongly typed (again, given the right kind of squinting). For example, using an integer where a float is called for has a particular and completely well defined rule that gets applied. However, using a float where a Foo object is called for certainly does not, and you get zapped with an exception at that point.

    There are certainly things you can do if you prefer a less forgiving system. For example, you can promote numeric warnings into fatals within a particular lexical scope via use warnings FATAL => 'numeric'. Or you could use the new lint tool to find dubious context coercions, such as perl -MO=Lint,-context,-undefined-subs myperlprogram.

    Dynamic typing and certain common-place default conformance rules means you don't have to worry about a lot of busy-work if you won't want to. It also means you can detect whether an integer is odd using the peculiar $n =~ /[13579]$/. :-)

  14. Re:Security by Anonymous Coward · · Score: 2

    It's been a long known fact that RMS dislikes host/network security. Consider the following scenario that is not at all unlikely: Joe Hacker/Cracker/whatever doesn't like emacs very well--Joe is a vi God. He uses RMS's poor security setup to infiltrate gnu.org and silently patches the new version of emacs source that is supposed to be oh-so-cool. Hell, he might even do it in a very subtle way, i.e. in the LISP interpreter itself. The result is that after some predetermined amount of time, the home directories of the users go Poof! Hell, the trojan may have even sniffed the root password by then and then the entire system goes poof.

    Remember every one of who runs a Linux system or other GNU-based system rely upon GNU to maintain our security. If some ankle-biter decides to screw with my system (good luck), I take the time it takes to recover quite personally. It's one thing to live a read-only life, but a read-write-world life is dangerous for us all.

    Oh, and don't bother to point out that the source is open and so it can't happen. The Kerberos 4 source was open for years and years and it was trivially crackable in seconds, until Lodin, Dole discovered that they were using laughable random numbers.

  15. Re:funny words by Anonymous Coward · · Score: 0

    If you think Richard's incessant self-promotion is accidental, you aren't watching closely. :-( He's worse than Perens and ESR combined.

  16. Re:Ever Notice? by Anonymous Coward · · Score: 0

    I don't think your Linus-image #3 is Linus. Cool car though.

  17. Yikes! by hbo · · Score: 2
    I found RMS' story about POSIX almost being called IEEEIX amusing. I disagree with him however that the community would have responded by calling the standard "Unix like." I think they would just have called it "Yikes!" 8)

    Howard Owen hbo@egbok.com Everything's Gonna Be OK Consulting

    --

    "Even if you are on the right track, you'll get run over if you just sit there" - Will Rogers

    1. Re:Yikes! by Anonymous Coward · · Score: 0
      Correct usage: WHAT HAPPENED TO OUR RMS' RETURN CODES??

      Correct usage: I found RMS's story amusing.

      English as a second language. Sigh.

  18. Why I never learnt LISP by QuantumG · · Score: 1

    I'm not real crazy about functional languages to begin with but the primary reason I never learnt LISP is because I couldn't find a good introduction to the language. Can anyone make recommendations?

    --
    How we know is more important than what we know.
    1. Re:Why I never learnt LISP by Kojo · · Score: 1

      I don't know how familiar you are with programming, but I just picked up a copy of Structure and Interepretation of Computer Programs from our university library. It uses Scheme. It focuses more on teaching you how to program, and you learn Scheme along the way. I'm on page 12 or so and I already feel as if I've learned a lot. (More about programming than Scheme, but hey, it's only page 12.)

      Keep in mind I'm not a CS type. I learned Basic and Pascal in JH/High School (82-87), but haven't done much since then. I was forced to learn some Fortran this summer, along with SAS. I'll probably have to use Fortran again, and I know I'll be using SAS for the next 3 1/2 yrs...no, make that the rest of my life.

      I decided I wanted to get back into coding in general (so much useful stuff you can do) and all my digging on the net told me SICP was the best book to learn how to PROGRAM, not learn a certain language. I'm planning to start learning Python, but I got SICP to help me learn to be a better programmer. Some people will say, "No Book Can Do That!" Ok, whatever. My time to waste, so I'll see what happens.

      From what I've read so far, I can already see that learning these other languages will be easier, as I've got some higher level ideas about how a computer language is supposed to work (primitive/combinations/abstractions). I was able to see how all these things existed in my brief exposure to other languages, so I'm thinking,"12 pages and I'm already learning...looking good".

      As in all things, YMMV.

      BTW, sorry I didn't include links to Bookstores. Amazon has the best list of reader comments, but don't buy from them. They are evil patent mongers. At least, that's what some would say. Actually, Bestbookbuys.com had the lowest price I found. Better than Dealpilot. I plan to buy it soon.

    2. Re:Why I never learnt LISP by TimoT · · Score: 1

      Take a look at: Association of Lisp Users.

      A book called "Successful Lisp" is available on-line. The standard is available under the name "Common Lisp Hyperspec" (HTML). It can be used in [X]Emacs as on-line help (the elisp for it is available somewhere). The Lisp book "Common Lisp the Language, 2nd Ed" (CLTL2) by Steele is also available online. Actually the amount and quality of the material available for free surprised me when I started learning lisp.

      If you're looking for a simple intro I'd suggest Graham's "ANSI Common Lisp". I also have a copy of SICP, but it's more about programming in general than lisp as a language and it's quite heavy stuff. All the recommended books on the ALU site are quite good.

  19. Re:Idea: Bring RMS and Theo de Raadt together! by BJH · · Score: 2

    Something like the Richter scale (in which an increase of 1 indicates that the earthquake was thirty times more powerful)?

    Let's call it the Stallman scale, then. RMS is a 10-Stallman; Theo is about an 8-Stallman, I would guess; Linus varies between a 3-Stallman and a 6-Stallman; Alan Cox is a 1-Stallman; Tom Christiansen is a 7-Stallman.

    Logarithmic, of course, so RMS is about 100 times more difficult than Theo, and about 1000 million times more difficult than AC ;)

  20. Re:english translation of the interview by BJH · · Score: 2


    As is common with interviews, it was most likely a transcript of a recorded conversation; the mistakes are those of the person who retyped it. (See the earlier comment about the error in RMS's statement regarding the #pragma hack.)

  21. Re:Security by Anonymous Coward · · Score: 0

    umask of 0000 or of 0777? These aren't the same.

  22. Re:Ever Notice? by Anonymous Coward · · Score: 0

    What would Richard say?

  23. atomic supersede blows by QuantumG · · Score: 1

    Bah.. This is the lame stuff we get from Microsoft. You're downloading a file, you've done 200 meg download to a directory that you thought would be fine only to find that your partition with the swap file on it is full and the program you're downloading with spacks it. When I say I want to download a file to xyz directory, I expect it to go there, not into my swap file and then onto the drive when it closes. This aside, when the download stalls halfway through I want to be able to stop the program (that means even if I have to kill it) and have a file there that I can continue the download on. If you are going to add "special" system calls to read a file that is being written to, why not have "special" system calls to check if a file is currently being constructed so you can change the behaviour of your program for half completed files?

    Ahh the benefits of a traditional computer science education, where you can sit around and dis terms like "atomic supersede" :)

    --
    How we know is more important than what we know.
  24. Re:What license does Guile have? by Anonymous Coward · · Score: 0

    Well, fancy that. It's about 10 years past the time for RMS to swallow his pride and confess the real story here: no GPL'd libraries work.

  25. Re:Write a type assitant! by _Marvin_ · · Score: 1

    Yep, that'd be a great thing. If I find the time to do it, one day.....
    Actually I was already thinking about a "type assistant" that can also do a lot more by attaching not only types but also properties (like: this number never gets greater than n) to variables and have some automated deduction system with some clever heuristics help you show that your code does what it's supposed to do.
    But I'll have to finish my PhD first...

    --
    "We won't use guns, we won't use bombs, we'll use the one thing we've got more of and that's our minds" - Pulp
  26. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

    He simply jumped on the biggest bandwagon he could find. It's the honest conclusion.

  27. RMS wrote too much code :-) by trance9 · · Score: 4


    I forget who said it, but I recall once some OSS advocate saying he wished he could just ignore RMS and the GNU project and write them off as the radical wing, but that unfortuntely RMS had written far too much code to be ignored.

    I think that's a great statement about how in the OSS/FS world your code does wind up being very much where your mouth is. The more code you write, the bigger say you get.

    Personally I love the GNU project, and I am very glad that RMS has written so much code that he can't be ignored.

    1. Re:RMS wrote too much code :-) by dourk · · Score: 1

      Have to agree. Taking a beginning C course last semester, I looked at some source for some linux command line utils. It was amazing how many places RMS showed up.

      Definately a man who deserves his say.

      --
      Wake up.
    2. Re:RMS wrote too much code :-) by Nabuchodonosor · · Score: 1

      Your point is silly. RMS is just recommending to call the whole system GNU/Linux, because it is fair with the GNU movement.

      *Doesnt it remind you of Slashdot bitching about Sun not giving credit to the Blackdown Team for the Linux JDK? The license let Sun call it whatever they want.*

      Of course RMS knows the license lets them call it whatever they want to call it. He created the license, after all. He, like a lot of people, finds fair to call the whole system GNU/Linux.


      --
      ---> Did you know Linux stands for Linux Is Not UniX ?
    3. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      If Stallman wants free advertising, he should put it in his licence. Considering the way he has abused BSD, this hypocrisy is intolerable.

    4. Re:RMS wrote too much code :-) by slim · · Score: 1

      re: the more code you write the bigger say you get: correction: the more billions you
      have the more say you get. Talk is cheap..let see some cash.


      Having lots of cash means you're working hard for yourself. We should other people be impressed by that?
      --

    5. Re:RMS wrote too much code :-) by MattMann · · Score: 3
      I don't think RMS is as famous for writing code as he is for advocating and giving away free and open source. He advocated for it through the Dark Ages, and now that he his ideas have proved to be the pre-eminent ideas for this age, it is his time in the sun.

      Prior to that, K & R were famous, and prior to them, Knuth. Yep, they all wrote code and in some senses gave it away, but it was the ideas embodied in the code that they were giving away that make them famous. Linus is famous for the "just do it/can do" nature of his work, unlike all the bigger named, more experienced coders and architects who didn't deliver their kernel work to the mass of people who had x86s sitting in front of them.

    6. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      re: Having lots of cash means you're working hard for yourself. We should other people be impressed by that? yes, people are impress when you can write a blank check to help a charitable cause. This is why there will never be an RMS building at MIT or an RMS wing at the local hospital.. or the local homeless shelter.. try passing out free software there..

    7. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Oh, I can see an RMS wing at a homeless shelter: no one would share it with him. :-)

    8. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      The name "Linux" applies to the kernel.

    9. Re:RMS wrote too much code :-) by blue · · Score: 1

      It is, in fact, "GNU command line utilities" since they are not Linux-specific. They're used in BSDes as well, I believe.

    10. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      BSD uses as little GNU software as they can. It's not free of restrictions. They're trying to create a free Unix, not a piece of social-economic-political-religious propaganda.

    11. Re:RMS wrote too much code :-) by Erik+Hollensbe · · Score: 1

      This is obnoxious anymore.

      I understand the need for recognizing the GNU's involvement in linux. But, GNU is getting it's respect from those that should respect it.

      After all, do those who use windows happily praise every Win98 Team Members' name when refer to their OS? Does anyone call OS/2 MS/IBM OS/2? (or DOS for that matter)

      And foremostly, NO ONE calls FreeBSD GNU/FreeBSD. And IIRC there are plenty of GNU utils inside it and no one insists on this, especially the ones that bitch about GNU/Linux like they are on some higher plane of consciousness than the rest of us.

      Let's just generalize for the sake of readability and avoid simple pedantic bullshit. After all, if you're going to insist on GNU/Linux, you better insist on GNU/Free/Net/OpenBSD, GNU/BeOS, etc.

      My brash nature is just an expression of my lack of tolerance for political correctness. (which is all this really comes down to)

      -Erik-

    12. Re:RMS wrote too much code :-) by ole · · Score: 1
      I looked at some source for some linux command line utils.
      You probably mean a GNU command line utility. Linux is the kernel, some of us prefer to call the whole system GNU/Linux.
    13. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Yes, and some of us prefer not to slap people in the face, too.

    14. Re:RMS wrote too much code :-) by slim · · Score: 2

      So who's the better person? The person who writes a blank cheque to the local homeless shelter, or the person who works there as a volounteer?

      Giving away money is easy (if you have it), giving up the chance to have money is harder. RMS is not a rich man. He could have been, if he'd ignored his ideals and applied himself to the pursuit of money -- if he'd taken money from Lucid, he'd have made a start on his fortune.

      Why must I take the (flame) bait, so?
      --

    15. Re:RMS wrote too much code :-) by extrasolar · · Score: 2

      I am growing more and more of the opinion that the name does not matter too much. My biggest fear is that people will end up *forgetting* GNU and its philosophy. I think this is why RMS is stubborn about the name.

      But your reasoning depends on whether we are talking about one operating system or many different operating system. Your reasoning assumes the later. That Red Hat Linux is different enough from Debian GNU/Linux, and Debian GNU/Linux is different enough from SuSe Linux. This means we shouldn't call any of them Linux either. It is either Red Hat Linux or simply Red Hat. But if the above operating systems are not different enough to be considered separate then we need a generic name that is the superset of Red Hat Linux, Debian GNU/Linux and SuSe Linux. So we are back to the GNU/Linux vs Linux debate.

      One other thing. I have heard many reasonings why the OS shouldn't be called GNU/Linux (including the GNU/BSD/X/MyMom/Linux argument) but I haven't found any good reason's it should be called just Linux. Of all the components on a typical Linux-based system, why just Linux? And please don't tell me we should call it just Linux because everyone else does.

    16. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0
      So, that means that I also use gcc on my GNU/BSD system, my GNU/Solaris system, and my GNU/NT system as well, eh?

      You guys crack me up.

    17. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      It's his bandwagon in the first place, we're just enlarging it- using his purpose-built tools to finish precisely the job he started, in fact.

    18. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 1

      No I can't unfortunately. What I can do is point you to the GNHLUG archives at http://codemeta.com/archives/index.html and suggest that you read the threads "how linux users do it," "Matt's Proposal - 'GNU Inside'," and "Defence of RMS and Linux"

      The most unfortunate part is that there are a slew of messages missing from those threads, owing to a server crash. But what you will find, unlike his copious responses to arguments against calling Linux distributions "GNU/Linux" distributions, is a complete and utter lack of response to the GNU Inside idea.

      I'm reasonably certain that there was at one time at least one message where he said that that was not enough, but I'm not positive and if there was it appears to be one of the missing messages. If nothing else, one can make the argument that his silence is rejection by default. He certainly wasn't warm and openly receptive to the idea.

      If he were, you would no doubt already be seeing some logo of the sort on the packages of the various distributions. I don't think any of them would find such a thing objectionable, and as you will see if you read through those threads, the community (or at least our part of it, which I think is a fair representation of the whole) is widely in favor of getting GNU credit. The majority of us just want RMS to leave the name alone. It isn't up to him what companies/groups/people call a given Linux distribution, as much as he would like it to be.

    19. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0
      But, GNU is getting it's respect from those that should respect it.
      What Project GNU needs is more attention to the ideal of Free Software (and especially the difference between freedom and cheapness) from those who don't already know about it. Respect from the existing cognoscente doesn't gain anything; they've already chosen sides about whether to be abused by proprietary vendors. BSD is pretty much not copylefted, so it isn't a version of the GNU system RMS set out to develop.
    20. Re:RMS wrote too much code :-) by Syberghost · · Score: 2

      If "some of us" prefer that, then how can you say "you probably mean"?

      No, he probably DOESN'T mean that. If he did, he'd have said so.

      Prefer what you'd like, but don't waste everybody else's time and bandwidth etc. bitching about what others prefer.

    21. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      This should be RMS' day in the sun, but IMHO three times as many people have now heard of ESR even though he just charges suits for giving them the more comforting parts of RMS' ideas.

    22. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      re: the more code you write the bigger say you get: correction: the more billions you have the more say you get. Talk is cheap..let see some cash.

    23. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0


      /usr/src/linux $ grep "Stallman" CREDITS
      /usr/src/linux $

    24. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Mail a bug report to bug-gnu-utils@gnu.org ;)

    25. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 2

      That's just silly.

      Point #1: There are hundreds of command-line utilities on a Linux system that were not written under the umbrella of the GNU project or the FSF, despite the fact that they are distributed with the GPL. So how the hell do you know if he meant a GNU command line utility or a Linux command line util?

      Point #2: The GPL does not restrict the redistribution of GNU utilities, and does not require one to name a product which redistributes those utilites with a name that mentions GNU.

      The overall Linux system is a product of the work of whoever puts it together, i.e. RedHat Linux. The code was written by hundreds of people, but it was put together in usable form by the wonderful people at Redhat. THEY are the ones that decide what their product is called, and they have chosen to call it RedHat Linux. Anything else you call it is simply wrong.

      I made this point to RMS in an argument we had on the GNHLUG mailing list, and he was unable to refute this point.

    26. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      I think you have it wrong -- RedHat did NOT do that much work. Creating a distribution from the various pieces is not a very hard thing to do. It takes some time and effort to do that, yes, but not even close to the effort that goes into GNU (and to some extent I guess, XFree86, Linux, and other programs or set of programs).

    27. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      If Stallman expects to be advertised, he can change his licensing to make it mandatory. But I can't wait for him to fight about GNU/BSD, GNU/AIX, GNU/Irix, GNU/Solaris, and the ever-beloved GNU/NT. Er, CyGNU/NT.

    28. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 1

      Oh really?

      I want you to download the source code for every package RedHat ships standard with RH 6.1, compile it, create RPMs for it, write a graphical installer, write all the rc scripts to make everything work, and THEN tell me that RedHat didn't do much work to put together thier distribution.

      I expect to hear back from you in about 2 years.

    29. Re:RMS wrote too much code :-) by Jonas+�berg · · Score: 1

      I think that's part of his point; if I wanted to do something like that, it might take me a few months at best, maybe a year more realistically. The GNU project has been writing software for more than 15 years.

    30. Re:RMS wrote too much code :-) by ole · · Score: 1
      So how the hell do you know if he meant a GNU command line utility or a Linux command line util?
      From the original post:
      Taking a beginning C course last semester, I looked at some source for some linux command line utils. It was amazing how many places RMS showed up.

      If RMS' name showed up, it probably was a GNU command line utility.

    31. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Is slashdot eating characters again? You mean RMS's name. Did you type that? Lately when I post, I swear that slashdot is eating things of mine, especially apostrophes.

    32. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 1

      Sure, but he didn't say that it appeared in ALL of the utilities' source code, just that it popped up a lot. Therefore the GNU qualifier is incorrect, since grammatically it assumes that ALL of the utilities he looked at were GNU utilities, which is not known.

      More importantly, you, like RMS himself, did not refute my second point.

    33. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Nope. It would make fewer waves, and less flooding. :-)

    34. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      There's that queered up "in RMS' name" silliness again. This man is *not* Jesus. Therefore, you're doing it wrong. It's "in RMS's name". Sheesh.

    35. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0
      Yup, that's the number one rule out of Strunk and White:

      ____________________________________

      1. Form the possessive singular of nouns with 's. Follow this rule whatever the final consonant. Thus write,

      Charles's friend
      Burns's poems
      the witch's malice
      This is the usage of the United States Government Printing Office and of the Oxford University Press.

      Exceptions are the possessives of ancient proper names in -es and -is, the possessive Jesus', and such forms as for conscience' sake, for righteousness' sake. But such forms as Achilles' heel, Moses' laws, Isis' temple are commonly replaced by

      the heel of Achilles
      the laws of Moses
      the temple of Isis
      The pronominal possessives hers, its, theirs, yours, and oneself have no apostrophe.
    36. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 2

      Even if you could do it in 3 months (which I highly doubt), it's completely irrelevant.

      The most important point I'm trying to get across is, the end product is still YOUR product, and you have the right to call it whatever you want (so long as it doesn't infringe someone else's trade mark, of course).

      If I put together my own Linux distribution, I could call it Carnage Linux, Carnage GNU/Linux, Skatanafas, Joe's computer pizza, or whatever else I want to call it. Nothing in the GPL, restricts me from doing so. Whatever I chose to call it, if you called it by some other name, you would simply be WRONG.

      Let Stallman make his own distribution, then he can call it RMS GNU/Linux. Debian has chosen to adopt his naming convention, and their product is rightfully called Debian GNU/Linux. Others have not, and calling it so is misnaming it.

      RMS's arguments are mainly centered around getting due credit for the work the FSF and GNU project did. No one disputes that they deserve credit. But he can't simply co-opt the name of a thing to suit his own purposes.

      Incidentally, as part of that same argument on the GNHLUG mailing list, it was proposed by those who think like me that we get the various distributions to adopt some sort of "GNU Inside" -type endorsement to give GNU the credit it definitely deserves. Jon "maddog" Hall, president of LI and (recently) former chairperson (or "reluctant chairperson" as he prefers) of GNHLUG, was willing to take this to the distributions to make it happen, but it was not enough for RMS. He INSISTS that GNU/Linux is the proper name, and won't settle for anything else.

      PLEASE, don't get the idea that I don't like RMS. I have nothing but respect for the man and the work that he's done. I appreciate his ideals (mostly) and all the effort he has put in to spread them. BUT, I think he's being a little pig-headed about this one issue. Especially when alternative (and IMHO more appropriate) means of giving credit are available, but rejected by him.

    37. Re:RMS wrote too much code :-) by ole · · Score: 1
      Sure, but he didn't say that it appeared in ALL of the utilities' source code, just that it popped up a lot. Therefore the GNU qualifier is incorrect, since grammatically it assumes that ALL of the utilities he looked at were GNU utilities, which is not known.

      I wrote "a GNU utilit_y_", not GNU utilit_ies_.

      You must have a strong wish to criticize the GNU Project and RMS, if you will criticize _me_ for things you only imagine that I wrote.

      If RMS' name was in the source code for at least one of those utilities, that the original poster called "Linux utilties", at least one of them is a GNU utility.

      The overall Linux system is a product of the work of whoever puts it together, i.e. RedHat Linux. The code was written by hundreds of people, but it was put together in usable form by the wonderful people at Redhat. THEY are the ones that decide what their product is called, and they have chosen to call it RedHat Linux. Anything else you call it is simply wrong.

      Why is it wrong to give credit to the authors, who in the aegis of the GNU Project, wrote large parts of the system?

    38. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0

      Some people won't settle for anything except Linux. Wouldn't that make less waves?

    39. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 1
      wrote "a GNU utilit_y_", not GNU utilit_ies_.

      Sure, but the original author wrote:
      I looked at some source for some linux command line utils.

      What I was pointing out is that since it is not known that all of those "linux command utils" were GNU utils, and very likely they were NOT all GNU utils, since many of the command line utilities on a Linux system come from BSD and numerous other sources, your assertion that he should use GNU in place of Linux is invalid. Something more generic is called for.It may be that qualifying them with "linux" isn't technically correct, but neither is "GNU" and linux does get the meaning across.

      Then you went on to say:
      You must have a strong wish to criticize the GNU Project and RMS, if you will criticize _me_ for things you only imagine that I wrote.
      ...
      Why is it wrong to give credit to the authors, who in the aegis of the GNU Project, wrote large parts of the system?

      I have a strong wish to quell RMS and his followers' desire to misname a product in the name of a holy crusade.

      It is not wrong to give credit to the authors, and I never said it was. For more on how I feel that should be done, see THIS COMMENT

      Carnage
    40. Re:RMS wrote too much code :-) by Anonymous Coward · · Score: 0
      The reason they made an exception for the case of "for righteousness' sake" is because you actually do not pronounce the genitive inflection between the word "righteousness" and the word "sake". That would be simple too many repeats of the same sound.

      On the other hand, people really do pronounce the sound in "Ross's house".

      The plural situation is different. That's why you have "the Rosses' house".

      It gets dodgy when you have to talk about "fair Narcissus's sisters" or "our spring narcissuses' sissification factor". :-) But just play by the rules and make sure not to lisp. :-)

    41. Re:RMS wrote too much code :-) by Captain_Carnage · · Score: 1

      Oh, one other thing:

      When you say "give credit to the authors" you make it sound like the GNU Project coders are the only authors. I agree that those people wrote a large chunk of the code, but if your intention is to give credit in the title of the product, then you must also include the authors of BSD/MIT X/XFree86/Sendmail Inc/etc etc which get's hugely unweildy and, let's face it, completely ridiculous.

      Giving the authors credit in the product name is inappropriate... that's what CREDITS are for, and the names of the authors are included in the credits in the source code.

      And again, see this comment for a much more appropriate, and completely rejected by RMS, method of getting the GNU project credit.

    42. Re:RMS wrote too much code :-) by Jonas+�berg · · Score: 1

      Could you tell me where RMS rejected this? I can't remember that he's ever said anything to that extent.

  28. Re:Write a type assitant! by dan_b · · Score: 1

    I'm not sure exactly what you mean by "domain-aware, learning type assistant" but CL compilers that check types are out there already

    The compiler in CMUCL (called Python, but not to be confused with the language of that name), for example, has a very nice type inferencer in it already, and when you set your compilation settings appropriately will even warn you where it hasn't been able to infer things so you know what explicit declarations to add

    See the appropriate bit of the CMUCL User Manual

    (with-gratuitous-plug

    If you want to try CMUCL on Linux you could probably do worse than scan through my CMUCL proto-HOWTO. )
  29. POSIX_ME_HARDER by Money__ · · Score: 0

    Kudos to CmdTaco for posting a story with more content than fluff.

    _____________________________________

  30. Re:english translation of the interview by raph · · Score: 2

    And "substantiate" should have been "instantiate".

    --

    LILO boot: linux init=/usr/bin/emacs

  31. Why is LISP superior? by Utter · · Score: 3

    I have still failed to see the greatness of LISP. Since I prefer Emacs as editor I can do very simple things, such as editing my .emacs but not much more.

    OK, someone with experience with LISP and e.g. ML (or any other functional language), explain why RMS and others call LISP a superior language? When I studied CS we learned ML and I thought that was a brilliant language. Perl on the other hand is superior when it comes to manipulating text.

    Funny, RMS came up with the POSIX name. :)

    1. Re:Why is LISP superior? by Zagadka · · Score: 1

      I started learning Lisp when I started using EMACS, then for a while I was hacking in Scheme (the Programming Language Concepts class at my alma mater was taught by a fellow who received his degree from Indiana University), and now I am doing a lot of programming (in my Copious Free Time) in Common Lisp - and I must say that of the three, I like Common Lisp the best.

      Out of curiosity, why do you like Common Lisp over Scheme? I haven't actually used Common Lisp, but I've used a few other Lisp variants including Scheme. Scheme seemed to be the "nicest" of all the ones I tried.

    2. Re:Why is LISP superior? by dr · · Score: 1
      Funny, RMS came up with the POSIX name. :)

      What I found funny was the part of the article where the interviewers figured they could argue with RMS... that Perl was better than Lisp no less. While I'm not completely sure I agree, especially since I use neither language anymore, I don't think I would be silly enough to argue with him [RMS].
      -dr

    3. Re:Why is LISP superior? by _Marvin_ · · Score: 1

      Maybe I should have mentioned:
      If anyone's interested in the project I was talking about check this site.
      I usually ran it in Emacs using LMUScheme, a small and fast GPL'd Scheme implementation that hardly anyone seems to know.

      --
      "We won't use guns, we won't use bombs, we'll use the one thing we've got more of and that's our minds" - Pulp
    4. Re:Why is LISP superior? by QuMa · · Score: 2

      In the same way cobol is superior? :)

    5. Re:Why is LISP superior? by Relic+of+the+Future · · Score: 1
      ..but the bottom line is programs that are 100 pages of code in C/C++ may be 1/10th the size...

      Does this translate into any improvement in the size of the compiled code? Having short snippets of uncompiled code is nice, but if it doesn't translate into some kind of savings in actual code size, I dislike giving up 'a little speed'.

      "God does not play dice with the universe." -Albert Einstein

      --
      Those who fail to understand communication protocols, are doomed to repeat them over port 80.
    6. Re:Why is LISP superior? by Anonymous Coward · · Score: 0
      Does this translate into any improvement in the size of the compiled code? Having short snippets of uncompiled code is nice, but if it doesn't translate into some kind of savings in actual code size, I dislike giving up 'a little speed'.

      I prefer giving up a little program execution speed for gaining huge productivity increases, code that easier to maintain and a more powerful programming language.

      If needed, that little speed you're missing can be fixed by replacing -after profiling!- a small piece of your program that needs that little speed by some hand-tweaked assembler or whatever suits your fancy.

    7. Re:Why is LISP superior? by Tom+Christiansen · · Score: 2

      It's actually a big improvement. First of all , if you can decrease code size by an order of magnitude, you also cut bugs down by the same factor. Secondly, if you have a 1 program that writes 10 other programs, you've not only cut down your overall code size, you've significantly improved your abstraction level. This also helps for maintainability.

    8. Re:Why is LISP superior? by Zagadka · · Score: 1

      I think the relative ease with which one can make radical changes to the *language itself*, all on the fly no less, and without resorting to language or code outside the standard, sets Lisp apart from e.g. C or Java or Python.

      Yes, but is that a good thing? If everyone goes and makes "radical changes to the language", it would probably make maintenance a nightmare. Even when people use C's preprocessor (which, as you mentioned, is much less powerful than Lisp's) to make radical changes, it tends to piss off the maintainers of the code more than anything else...

    9. Re:Why is LISP superior? by SL+Baur · · Score: 1
      It been a while since I've done any lisp programming, and I have to say, EMACS almost makes it tolerable, but I have yet to see anyone use it outside an academic environment.


      Lisp has been used in smart weapons by the US military. One I remember specifically was a robotic, pilotless airplane that computed a safe flight pattern over terrain with various kinds of antiaircraft weapons shooting at it. I don't know whether this got beyond the prototype stage, but it made a great demonstration.
    10. Re:Why is LISP superior? by Anonymous Coward · · Score: 0
      Unlike Scheme, Common Lisp has
      • a big, mature, useful standard library
      • CLOS
      • extensible syntax (or does Scheme have reader macros now?)
      • type declarations (let's face it, once you throw away optimization info, the compiler isn't going to recover all of it)
      • packages (you can avoid name collisions on large projects manually, but that gets painful)
    11. Re:Why is LISP superior? by Wolfier · · Score: 1

      LISP is superior in the same way that Scheme is superior, Forth is superior (for anyone who knows it).

      C++ is superior in the same way that Java is superior, Eiffel is supierior.

      Make your own choice.

    12. Re:Why is LISP superior? by Anonymous Coward · · Score: 0

      IMHO it's axiomatic that you should always either choose or create the language that most naturally expresses the solution you're creating. With Lisp, you can easily create just the language you need based on one you already know, and having the right language should make maintenance of the solution easier- unless the mapping from your new language back to Lisp is broken or needs major improvements.

    13. Re:Why is LISP superior? by rwg · · Score: 1
      I would suggest actuallty trying to write some code in raw Scheme, not emacs LISP, that does some sort of interesting data structure manipulation, preferably recursively. Maybe pick up a copy of SICP, The Little Schemer or The Seasoned Schemer.
      Alternatively, read Revised(5) Report on the Algorithmic Language Scheme and download a copy of DrScheme (versions for Win32, MacOS, and X) so you can play with the language.
    14. Re:Why is LISP superior? by mellon · · Score: 5
      Some reasons I can think of off the top of my head:
      • LISP has a completely regular syntax (well, let's say Scheme, since there are some disgusting hacks in Common Lisp). PERL has a syntax from Hell.
      • LISP does stupid stuff for you - for example, you don't have to keep track of garbage, as you do with C. Perl doesn't garbage collect either (AFAIK), but it does at least have automatic memory allocation.
      • LISP has a very different typing model from either PERL or C - every object has the potential to have any possible type. Lists are first-class objects, so you don't have to write yet another stupid list traversal routine every time you want to make a list of things, and you can build trees out of lists. This turns out to be very powerful once you understand it, but it's a little hard to wrap your brain around at first.
      Unfortunately, in order to really appreciate the power (and the shortcomings) of LISP, you have to learn it - I can't really make a point-for-point comparison here that would convince you of anything. And anybody who claims LISP is a panacea is wrong - it just makes a very different set of tradeoffs than PERL or C.

      I would suggest actuallty trying to write some code in raw Scheme, not emacs LISP, that does some sort of interesting data structure manipulation, preferably recursively. Maybe pick up a copy of SICP, The Little Schemer or The Seasoned Schemer.

    15. Re:Why is LISP superior? by Anonymous Coward · · Score: 1
      LISP has a completely regular syntax (well, let's say Scheme, since there are some disgusting hacks in Common Lisp). PERL has a syntax from Hell.

      Yes that's why LISP is the most powerful language with respect to macros. Unfortunatly, that's also mean that

      LISP does stupid stuff for you - for example, you don't have to keep track of garbage, as you do with C. Perl doesn't garbage collect either (AFAIK), but it does at least have automatic memory allocation.

      This is not an improvement on most languages. Most modern languages have automatic memory allocation or GC (Modula-3, Eiffel, Python, Smalltalk, Java, ML, ....). The only exceptions are C++/C and minor languages written by people who either know pretty well what they are doing (deliberatly wrong but necessary for their application domain), or who are computer-illiterate.

      LISP has a very different typing model from either PERL or C - every object has the potential to have any possible type. Lists are first-class objects, so you don't have to write yet another stupid list traversal routine every time you want to make a list of things, and you can build trees out of lists. This turns out to be very powerful once you understand it, but it's a little hard to wrap your brain around at first.

      This is called "dynamic typing". This should have been implemented that way in Perl, and is actually true in Smalltalk, Python, ML, Dylan. Nothing new here.

      Unfortunately, in order to really appreciate the power (and the shortcomings) of LISP, you have to learn it - I can't really make a point-for-point comparison here that would convince you of anything.

      Most of the advantages you quoted, are actually available in many languages. This is the Slashdot Language Syndrom I guess: "I know C, C++, Perl, and AnotherLanguage. C/C++/Perl are incredibly bad, so AnotherLanguage is really really good". Fortunatly there is much more than C, C++, and Perl. In fact these are the worst _application_ languages either invented.

      I'd rather say, that the main advantages of Lisp are:

      • Real Macros For Men (tm). If you haven't experimented with them, you don't know what macros really are (can be).
      • Compilation (especially for Common Lisp), with optionnal type declarations. I don't know any language which is as advanced (except maybe Smalltalk?, and Dylan), and allowing to freely mix compiled code and "interpreted" (dynamically added) code. Compilation gives you a speed close to C or at least compiled languages (FORTRAN-90, Ada, Eiffel,...).
      • Superb development environments (for debugging, editing, ...).

      Let's add that Smalltalk environments are rumored to be pretty close to Lisp ones in quality.

    16. Re:Why is LISP superior? by JonK · · Score: 1

      Crash Bandicoot - the object control code is written in GOOL, Naughty Dog's Game Oriented Object LISP) - see this article for details. How much more commercial do you want?
      --
      Cheers

      --
      Cheers

      Jon
    17. Re:Why is LISP superior? by Anonymous Coward · · Score: 0
      Yes, but is that a good thing? If everyone goes and makes "radical changes to the language", it would probably make maintenance a nightmare.

      Yes and no. Yes, because macros are used to make one own language to close the gap between the language and the actual application. Think about something like Prolog. In Lisp you could have a macro "predicate", a macro "rule", and a macro "evaluate", and write code like this:

      (predicate 'Socrate 'man)
      (rule 'man 'mortal)
      (if (evaluate 'Socrates 'mortal)
      (print "Socrate is mortal")
      (print "Don't know whether Socrates is mortal or not.")))

      The problem is that debugging macros made by others can be a nightmare ; and worse

      Even when people use C's preprocessor (which, as you mentioned, is much less powerful than Lisp's) to make radical changes, it tends to piss off the maintainers of the code more than anything else...

      That's because C preprocessor is so limited it doesn't understand structure of the code, so C macros are really a syntaxical mess. Because Lisp code is actually recursive lists, Lisp macros, understand the structure of the code, so there is less mess. Plus they are written in Lisp, not in a brain-dead restricted language, so they can, for instance, dynamically generates variables names, and 1000 other things.

    18. Re:Why is LISP superior? by Anonymous Coward · · Score: 0

      The problem is that debugging macros made by others can be a nightmare ; and worse it could be impossible for someone to know if complicated macros are generating incorrect code, or if some undocumented assumptions (requirement) exist.

    19. Re:Why is LISP superior? by TimoT · · Score: 1

      LISP does stupid stuff for you - for example, you don't have to keep track of garbage, as you do with C. Perl doesn't garbage collect either (AFAIK), but it does at least have automatic memory allocation.

      This is not an improvement on most languages. Most modern...

      I wouldn't call it an improvement on other languages since AFAIK Lisp had it first. It's always been the forerunner in language features... BTW the language just turned 40 this year...

    20. Re:Why is LISP superior? by Rombuu · · Score: 2

      I wish he would quit saying things like this though: LISP is the most powerful programming language.

      Anybody have any examples of problems that can be solved in LISP and no other language? Or is this just standard RMS hyperbole?

      --

      DrLunch.com The site that tells you what's for lunch!
    21. Re:Why is LISP superior? by Jonas+�berg · · Score: 1

      It's not just any random ramblings. It's what he believes. He has worked with LISP for many, many years, but if you show him a language that is as powerful and useful as LISP, I'm sure he would appreciate it.

    22. Re:Why is LISP superior? by Anonymous Coward · · Score: 0

      I'd really love to see Stallman hold down a job in the real world just for once. Otherwise, he's just like a priest giving out marital advice.

    23. Re:Why is LISP superior? by Signail11 · · Score: 1

      Arguably, since LISP, Perl, C, Basic, and about every other language in use today is Turing complete, no language is more powerful than any other, since all computable tasks can be done with any. ;-)

    24. Re:Why is LISP superior? by Jonas+�berg · · Score: 1

      He was a system programmer for the AI Labs for quite some time. But right now; I'd rather have RMS out there speaking about free software than sitting behind a desk writing proprietary software.

    25. Re:Why is LISP superior? by Anonymous Coward · · Score: 0

      True, but some are easier to use than others. Did you see the person who followed up to tchrist's code2html posting (it works around Slashdot not accepting a <PRE> tag) this morning asking for the Java equivalent? What a quack. I wouldn't want to rewrite Tom's program in assembly language, or even in C. Sure, I could, but it would hurt too much, and take far far far too long. It's like trying to do closures in C++: I'd rather give up. Domain-specific languages are very powerful.

    26. Re:Why is LISP superior? by Anonymous Coward · · Score: 0

      I don't Stallman talking about free software. He does us more harm than good sometimes. There are much better spokesman for us out there than RMS.

    27. Re:Why is LISP superior? by Xenophon+Fenderson, · · Score: 2

      I'm by no means a Lisp expert (I have more experience hacking C and Perl), but the more Lisp code I write, the more I begin to appreciate the language. I started learning Lisp when I started using EMACS, then for a while I was hacking in Scheme (the Programming Language Concepts class at my alma mater was taught by a fellow who received his degree from Indiana University), and now I am doing a lot of programming (in my Copious Free Time) in Common Lisp - and I must say that of the three, I like Common Lisp the best.

      Here's a short list of the things *I* like in Lisp (whither EMACS Lisp, Common Lisp, Scheme, Dylan, etc.):

      • automatic memory management (aka "garbage collection")
      • several excellent compilers available (ask about the difference between "interactive" and "interpreted" some time - those words are NOT synonyms)
      • bignums and symbols
      • CLOS (lots better than e.g. C++ or even Java, in my opinion), which has generic functions, multiple inheritance, CHANGE-CLASS, etc.
      • continuations (only in Scheme, I think)
      • "code as data and data as code"
      • the macro facility

      ...and so forth. You can get a lot more information from the Association of Lisp Users web site (especially the pages Language Comparisons and What is Lisp?), or from the comp.lang.lisp FAQ. Another good place to get more information is from David Lamkins' on-line book Successful Lisp.

      And if you have further questions on Lisp, feel free to send me an email or drop a note into comp.lang.lisp.

      HTH.


      Rev. Dr. Xenophon Fenderson, the Carbon(d)ated, KSC, DEATH, SubGenius, mhm21x16
      --
      I'm proud of my Northern Tibetian Heritage
    28. Re:Why is LISP superior? by Rombuu · · Score: 2

      That was what I thought. Just wanted some confirmation. It been a while since I've done any lisp programming, and I have to say, EMACS almost makes it tolerable, but I have yet to see anyone use it outside an academic environment.

      --

      DrLunch.com The site that tells you what's for lunch!
    29. Re:Why is LISP superior? by Kaufmann · · Score: 3

      Generally speaking, Lisp is superior because it's made out of lists. This is much more important than it looks. Why?

      (WARNING: here there be dragons! Below I simplify extremely for the sake of understanding. Please don't bash! Also, note that everything I say about Lisp interpreters also applies to Lisp compilers.)

      Take Perl, for example. In Perl, programs are basically one-dimensional character strings, usually read from a file. What the Perl compiler does (either when called to run a program, or an eval() or a s///e) is take that string and parse it into a syntax tree, which is then 'flattened out' into bytecode, which is, in turn, executed by the bytecode interpreter.

      In Lisp, on the other hand, programs and data are naturally represented as lists; the strings that you type into the Lisp top-level are parsed into lists as soon as possible (an extremely simple thing to do, by the way), and from that point on the entire environment can use a homoiconic set of primitives (car, cdr, cons, eval, etc.) to handle any data that you may pass to it.

      Exempli gratia, let's look at two functionally equivalent programs (defining a program as a representation in computationally concrete form of an abstract mathematical algorithm):


      # Perl
      map { $_->[0] }
      sort { $a->[1] $b->[1] }
      map { [$_, $f->($_)] } @ARGV;

      ; bastardized Scheme
      (map (lambda (l) (car l))
      (sort (lambda (a b) ( (cdr a) (cdr b)))
      (map (lambda (e) (cons e (f e))))
      *argv*))


      You may have recognized the Perl program as a variation of the famous Schwartzian transform, wherein $f can be any key-producing function; with $f = \&-s it becomes a program that orders the filenames passed as arguments by size. The below program is not quite valid R5RS Scheme; the *argv* list, equivalent to @ARGV, is not standard, and the form can be easily defined in terms of the comparison operators:


      (define ( a b)
      (cond
      ((> a b) 1)
      ((= a b) 0)
      ((


      Likewise, with a bit of creativity, the sort form can also be implemented.

      Anyway, how does all this matter? Simple. As data, the Perl program is a 74-element character array; it has all kinds of special symbols and tokens, and turns out to be horribly complex to parse. On the other hand, as data, the Scheme program is very simple: it's a linked list with three elements, one of which is the symbol 'map, and two of which are sub-lists. /What/ this linked list represents doesn't matter except to the interpreter; it's a list like any other. Applying the car operation to this list would yield the symbol 'map; the cadr (first rest) operation would yield the list '(lambda (l) (car l)).

      It's important to note here that the interpreter is a function like any other; as such, it deals with lists like the ones above. The reader - which parses text into lists - is a separate system.

      Originally, the fact that all Lisp programs are lists was considered a huge disadvantage (even by John McCarthy himself), and for years there were attempts to introduce a new Algol-like syntax (called M-expressions) to supersede the list representation (called S-expressions). But, as it turned out, this turned out to be a huge advantage, and Lisp programmers almost universally appreciate SEXP.

      Of course, there are many other reasons why Lisp is a superior language, although many of those are implementation-dependent and may also be present in other languages. But having a homoiconic representation for programs and data is by far the greatest advantage.

      Note: While we're on the topic of languages with homoiconic representations, I thought I should mention Funges, a family of languages in which programs are represented as n-dimensional, potentially infinite cell-spaces to be traversed by an instruction pointer; each instruction occupies one cell. The written representation of Funge programs follows this; for instance, in Befunge (the 2-dimensional Funge), a typical program might look like


      v
      >v"Hello world!"0


      or even better,


      9::*\2*+00p0v"."0310p0"," >"llaw eht no "v >#v_ ^
      ^_210p0"--:" v ,
      : v " of beer" "selttob"00g.^ 00g1-#^_$" elttob erom enO" ^
      >00g#^_$" selttob erom oN" ^
      ^_110p0",dnuora ti ssap ,nwod eno ekaT"^
      ^:-1_010p00g1-00pvv:-1g01_@#g00,*25


      (The Befunge programs above are not /quite/ correct, thanks to Slashdot's mishandling of PRE tags... look at the source code to see the real thing.)

      --
      To the editors: your English is as bad as your Perl. Please go back to grade school.
    30. Re:Why is LISP superior? by _Marvin_ · · Score: 2

      I've worked in a research project implementing stuff in Scheme
      (the most beautiful LISP dialect, IMHO) for three years,
      so I'll try to answer your question FROM MY PERSPECTIVE (however,
      others will probably state other advantages of LISP when asked!):
      The thing I liked the most was how it allows you to manipulate code
      very easily in two ways:
      1 - due to LISP being a functional language, any procedure is an object,
      which can be passed to other objects AND can be manipulated anytime,
      for example combining two procedures into a new one:
      (define (n-times f n)
      (if (= n 1)
      f
      (lambda (x) ((n-times f (- n 1)) (f x)))))
      defines the function "n-times" which takes a unary function f and a number
      n and gives back a new function which applies f n-times to its argument.
      Now, taken that the unary function "1+" adds one to its argument
      (define (+ m n) ((n-times 1+ m) n))
      defines the function "+" with the obvious meaning (on integers),
      (define (* m n) ((n-times (lambda (x) (+ m x)) n) 0))
      defines "*" and so on
      (OK, the example is artificial and the defined versions of + and * are
      horridly inefficient, but real-world examples would be too long, so all
      examples here will be artificial)

      With this mechanism, you can build large customized procedures from atomic
      ones. What you can't do is
      a. always use certain language constructs like "if" efficiently:
      (if test (f x) (g x))
      will only calculate either (f x) or (g x), which is what you'd expect,
      but if you define the function "choose" like this
      (define (choose m n) (if test m n))
      and do
      (choose (f x) (g x))
      then both (f x) and (g x) will be calculated before "test" is tested.
      This is not only inefficient, if f and g have side-effects, the behaviour
      will be different from the first version!
      b. look into an existing procedure and modify it...

      2 - LISP source code itself is a data structure (i.e. a list) that can be
      arbitrarily generated, manipulated and executed VERY EASILY.

      We use these mechanisms heavily in our project. To give you a taste of
      LISP at work, I'll try to sketch what we were able to do with them:
      We've implemented so-called normalization for a subset of the SCHEME
      language itself. Normalization could also be called partial evaluation or
      execution: You calculate everything you can and leave the rest untouched.
      For example, the normalized version of
      (lambda (x) ((n-times f 3) x))
      would be
      (lambda (x) (f (f (f x))))
      (get it?)

      For this to work, all the functions and objects used in the code have to
      be defined in a special way. If they are, you simply do an "eval" on
      the program which you want to normalize (that is, you EXECUTE the program)
      and, as a result, the program gives you back the normalized version of itself!
      (Normalization includes ordinary execution: if the type of the program
      executed is integer and all free variables are instantiated, then the
      normalized program will be... an integer)

      As I have said, the functions and objects have to be written in a special
      way. But this is no problem, because we pre-defined certain functions
      (like recursors) with which you can program almost anything you want
      without having to worry about these complicated mechanisms hidden in the
      pre-defined functions.
      And if that's not enough, I've also written a (pretty short) program which
      lets you write programs in a special form (as Term Rewrite Systems, if anyone
      knows what that is) and translates that into code that will work with the
      normalization mechanism.
      And if all that doesn't make your head buzz yet, here's how we USE the normalization
      technique: We represent mathematical proofs as such normalizable programs.
      Then we execute them and automatically get a normalized version of the proof,
      in which all detours are removed. And then, we can calculate from this proof
      another program which does what the proof shows it is possible to do.
      And that program cannot possibly contain a bug because it stems from a
      mathematical proof.....

      Now you will say: OKOKOK, LISP has some nice features, but who, apart from
      some freaked-out researchers, needs them?
      Well, at first glance, hardly anyone. But only at first glance. Once you
      got used to working with these mechanisms, you find lots of places where
      they would be terribly useful as well (although not indispensable
      as in our case).

      One more thing: RMS mentions another advantage, namely the fact that LISP
      is untyped (or, more precisely, dynamically typed), so that everything is
      a list (basically). Well, this is an advantage in flexibility, but also a
      disadvantage in debugging. When you've worked with LISP for a long time
      and then do C++, for example, you notice that type-checking sometimes is
      terribly useful.
      I don't know much about ML, but AFAIK it is very similar to LISP, but typed.
      All I know is that we couldn't easily port our stuff to ML, because its
      type system (although it's more powerful than the one of most other languages)
      is too strict for us, that is, we can't express, for example, the types of
      our recursors in ML. So, in this case the untyped nature of LISP is
      an advantage, but sometimes I really miss type-checking when doing LISP.

      --
      "We won't use guns, we won't use bombs, we'll use the one thing we've got more of and that's our minds" - Pulp
    31. Re:Why is LISP superior? by OOPChugALug · · Score: 3

      After coding in C++ for the last 12 years ( and still as a necessary part of my work) I have switched to Lisp for all my personal work. Once I got over the parentheses, I have found that Lisp is probably the most radically consistent and advanced language I have ever used.

      Everything is a list. Program code and data is a list. All commands (like compiling ) is issued in the form of a list.

      So, you can do something like writing code, which when executed, generates code.


      Additionally, lisp is typeless. A variable can contain lists, nested in lists etc etc... which can be code.. .which can contain commands to compile itself, and run itself, attach itself to other lists, etc. It's flexible, malleable, dna like stuff.

      I programmed a Qt signal/slot system in 2 pages of code. Although syntax appears difficult when coming from the C++ world, I guarantee that template and pointer syntax is MUCH more difficult.

      Here is some code, that when executes, generates a
      method on the fly, which can then be executed in the future. ( i.e. C++ does NOT give us the ability to change the basic structure a class (add or take away methods or data members at run time)..lisp does.

      Additionally, Lisp or CLOS has no problem dealing with multiple inheritance. Methods are not owned by a class like in C++ or Java. For example, a method (or in lisp, a generic function) can be specialized to run with more than one object (multimethods). i.e. method( class1 type, class2 type ..etc)

      Methods can even be specialized to run with a particular INSTANCE of a class. i.e.
      here are 2 methods

      method( instantiated object 1 of class A only ).
      method( instantiated object 2 of class A only)

      here is a method which when executed, creates a method which only works with a specific instance of an object. Of course this function is a list, and could be transmitted across a network, and executed !!


      (defmethod map-signal((_container container) mapped-signal-name
      (_transmitter transmitter-reciever) _transmitter-signal-name)
      (let ((y (gensym)))
      (eval`(defmethod ,y((_container (eql ,_container)) data )
      (broadcast _container ',mapped-signal-name data )))
      (connect _transmitter _transmitter-signal-name _container y)))


      Modern lisps (like Franz) are compiled into machine code, and can be VERY fast. Not as fast as raw C or C++, but the bottom line is programs that are 100 pages of code in C/C++ may be 1/10th
      the size in Lisp, and exceedingly hard to do - or next to impossible - without writing a lisp -like system. So you can prototype huge systems VERY quickly, and then if you'd like, write some of the lisp code in C for speed improvements.

      Dave

    32. Re:Why is LISP superior? by uh · · Score: 1

      You can probably do any task in any of those languages, the reason he thinks LISP is better is because its EASIER to do THINGS in LISP than other languages due to its inherent design.

    33. Re:Why is LISP superior? by MattMann · · Score: 3
      How is LISP powerful?

      Think of C: it has ints, floats, chars, structs, and vectors of those things, and pointers to any of those things (maybe I left out a few, but you get the idea). Then, totally separately, it has code for manipulating those "data" things.

      C++ came along and it added some ways to connect your data to the appropriate code so you wouldn't mistakenly point the wrong code at the wrong data. But getting everyone to switch to C++ was a grueling 10 years because of all the training, and reprogramming it took, and it didn't really resulting in a more satisfying coding experience.

      Turns out folks weren't satisfied, though, and now we've got Java, which restricted a lot of things you could do toward the end of making some other things easier. We've just started the grueling 10 years for this one, and I suspect some of the stuff that got restricted (essentially, they grabbed the ++ and chucked out the C) is stuff that a lot of folks want to keep doing...

      Anyway, back to LISP: it was said earlier that LISP syntax was regular, but while true, that didn't capture what else is true: the textual representation of LISP is simple and regular, yes, but after it gets parsed it is also stored in memory in a simple and regular way: LISP looks at the world as "things" (like C's ints or floats) and lists of things, including other lists. Your program is just a list of things, and your program is "visible" to you as data, very simple data.

      In C, it would be as if the entry point to your program was main(argc, argv, argp) where "argp" was a pointer to your program itself: "main(argc, argv, argp)..." Not a string that starts "main(...", but something more like an array of all of your tokens. The variables in your program would be references to your actualvariables (haven't you ever wished in a C program to have access to the symbol table that the compiler created and threw away? in LISP you do) But even beyond this, if you went deeper into your program, when you get to the token "for" (at the beginning of your for-loop), you could look up the code that implements "for" and see what its code does. Don't like what it does? Write your own version that behaves differently... that's been done many times in LISP so that today, loops are really functional.

      Now, I'm not saying that everybody should rewrite how "for" works, or that all programs should manipulate code. But, one way to see how powerful LISP is is to see that LISP in its lifetime (since 1960) has made transitions similar to C to C++ to Java, but those transistions were made within the language itself, by people experimenting with new ideas to see which caught on. LISP erases the distinction between code and data in a really meaningful and powerful way.

      So, that's just one powerful thing about LISP. I guess the other major one I'd mention is that the programming tricks and idioms that you learn (just like you learned to "for(p=x;*p;p++)" your way through C arrays) remain more universal and stable in LISP. "Walking" the LISP trees of data has remained the same from 1960 your first day learning the language to now. The "toolkit in your mind" that you carry with you does not have to constantly learn a zillion new things. It's as if you went to look at the implementation of a Java class and thought, "oh I see, it does something simple" rather than, "oh, looks like I need to go digest a bunch of other classes that this one has inherited from."

      Hope this is useful... and I didn't even get to tail-recursion which is so cool that it blows all of this stuff away.

    34. Re:Why is LISP superior? by V. · · Score: 3

      I'll have to agree with the other poster that
      LISP is one of things you have to experience
      to appreciate. My first reaction was "This
      language wasn't invented...it was found crashed
      in some dessert in New Mexico." ;) But the more
      familiar you get with LISP the more you start
      to appreciate it. It's a pretty radical departure
      from Algol-like lgs. tho.

      As for learning how to use emacs...the route
      most people recommend is to run the tutorial.
      Frankly, I think that is the worst approach. You
      have a chicken or the egg problem because you
      have to know some emacs to even navigate the
      tutorial. My advice is to buy the printed Emacs
      manual from FSF. I read a few chapters of the book
      before sitting down at the 'puter to get
      finger memory. It was much easier to learn this
      way. The keystrokes in emacs are actually pretty
      well thought out(IMO) but most people don't take
      the time to get the ideas. They just sit down and
      want to immediately start using it. Doesn't work
      that way. Once you learn tho...emacs is just
      great.

    35. Re:Why is LISP superior? by fhwang · · Score: 1
      And although I've never used Scheme in a professional environment, I can say that having to do it for one semester in undergrad forced an extremely rigorous, clean thinking on me. C allows you all kinds of hacks, which can be useful, but if you see a hack in C, 99 times out of 100, it's a result of sloppy coding, not a genuinely justifiable design decision.

      Scheme takes care of that by just not letting you do any of that. And years later, when my employers were telling me my code was extremely easy to read, I'd credit part of that to the fact that I had to learn how to write clean, elegant code back in school.

      Francis Hwang

    36. Re:Why is LISP superior? by Xenophon+Fenderson, · · Score: 2

      A few months ago, Erik Naggum posted some code that implemented a simple infix syntax for Common Lisp. There is already a fairly feature-complete infix package floating about the AI Repository at CMU, but Erik did this as an exercise, and he made this change (which can be loaded into ANY ANSI-conformant Common lisp implementation) in about 20 lines of code. (Search for the text "trivial-infix-reader" and the author "erik@naggum.no" on DejaNews.)

      I think the relative ease with which one can make radical changes to the *language itself*, all on the fly no less, and without resorting to language or code outside the standard, sets Lisp apart from e.g. C or Java or Python. There is *no* way to do something equivalent (e.g. switch to a prefix notation) in C without some serious hacking on the C compiler's parser (which is completely outside the realm of the ANSI C specification). Never mind the fact that C's macro system is only a glorified search-and-replace, whereas Lisp's macro system (including reader macros) allows the user to truly transform the language.


      Rev. Dr. Xenophon Fenderson, the Carbon(d)ated, KSC, DEATH, SubGenius, mhm21x16
      --
      I'm proud of my Northern Tibetian Heritage
    37. Re:Why is LISP superior? by Roundeye · · Score: 5
      Anybody have any examples of problems that can be solved in LISP and no other language? Or is this just standard RMS hyperbole?

      Your question is based upon false presumptions -- that such problems exist. Since one can write a lisp interpreter in a number of languages: C, C++, Perl, Pascal, numerous variants of assembly, etc.; it must be true that any problem solvable in Lisp can be solvable in these other languages (if it seems that you have an instance where this is not true then write your LISP solution, and feed it into a LISP interpreter written in the other language).

      This, however, does little to address issues of usability and suitedness of languages to problems. Just as C++ is an arguable improvement over C (and that is an ongoing argument at that), but C can do everything that C++ can do (think about what it takes to write a C++ compiler in C; while not trivial, with name-mangling things get easy quickly). Still there are many who can develop large systems more quickly in C++ than they could while writing in C, due primarily to the types of abstractions made available.

      I read RMS as saying that the fact that programs in LISP are represented not as character strings but native list data structures which preserve program structure as data while remaining executable is one reason to conclude that LISP is a "more powerful" language than the others. It is more powerful in that it enables skilled LISP programmers to do things "better" than skilled programmers of other languages. I take this to mean that LISP is a "more beautiful" language -- i.e., that makes sense, is complete, and self-reflective.

      Take that for what you will. I do the majority of my programming in C/C++/Perl with odds-and-ends languages for special tasks. But, I spent a few years doing a lot of LISP and it is a beautiful language. Ever see a LISP interpreter written in LISP? Takes about a page of type for a full-featured interpreter. In my Principles of Programming Languages class in graduate school one of the problems on our final examination was "given the LISP interpreter written in LISP on the previous page, modify the interpreter to support call by reference argument passing semantics." The solution was a couple of lines of code. There's a certain Zen to LISP programming that you don't find anywhere else.

      Unfortunately, there isn't much call for LISP programs out there in the business world or the OSS world, and the art languishes. [ IMHO one of the reasons is that the average programmer can't find the Zen between the parentheses -- not a problem with a language, but a problem with the average programmer ]. LISP is arguably a "more powerful" language than the others in wide use, but unfortunately the programmers in wide use are not as powerful as RMS.

      YMMV. My $.02. Do not taunt happy fun LISP. Please keep hands inside vehicle. Not for olfactory use. Keep away from eyes. etc.

      --
      "Cause there's 40 different shades of black, so many fortresses and ways to attack, so why you complainin'?"
  32. I learn something new every day by Anonymous Coward · · Score: 0
    Tom - its time for a third edition of the camel book to get all these gems, particularly with reference (no pun intended) to objects in perl.

    I suppose I could just read Conway's book, which has been sitting in the "too-read" pile for a couple of months now.

    Anyway, keep 'em coming. Thanks.

  33. Re:I'm tempted to try ML by Anonymous Coward · · Score: 0

    Kindly define `scripty task', sir.

  34. RMS argumentative by heroine · · Score: 2

    This confirms everything I've heard about RMS being argumentative. That guy will never compromise no matter what.

    "Linuxcare: That's not unique to LISP though."
    "Richard: Well, it is mostly unique to LISP."
    "Linuxcare: Right, but you have to count the strings."
    "Richard: No, you don't have to count strings."
    "Richard: I couldn't block approval of the standard on those grounds, so instead... I posted a notice about the coup in which the evil repressive forces of POSIX....Then a slightly prudish board member convinced me to change it to POSIXLY_CORRECT which I now think was a mistake"

    1. Re:RMS argumentative by Jonas+�berg · · Score: 1

      Of course he's argumentative! Having an argument with someone is a great way to get a better grasp of things, to learn from each other and to see what the Right Thing is.

    2. Re:RMS argumentative by Anonymous Coward · · Score: 0
      "MOSTLY UNIQUE"? Somebody tell Richard that "mostly unique" is like "mostly pregnant". You can't give degrees of uniqueness. What's next? Mostly ubiquitous?

      Let me guess, this man never wrote a graduate thesis, did he?

    3. Re:RMS argumentative by MikeBabcock · · Score: 2

      For the sake of being argumentative, having a _good_ argument is a good way to get a better grasp of things ...

      ... many arguments don't help either person get a better grasp of things at all. You'll notice that RMS wasn't getting a better grasp of things, just reinforcing his point of view.

      --
      - Michael T. Babcock (Yes, I blog)
  35. It's funny, laugh by Money__ · · Score: 2

    Richard: Do you know about the bug that depends upon the phase of the moon?

    Linuxcare: I've heard about this.

    Richard: We always liked to talk about the bugs that depended on the phase of the moon. So, when Guy Steele wrote the Rabbit compiler, which is a scheme compiler, he made it print out a comment at the beginning which showed the time it was compiled and so on, but it also put in the phase of the moon. So, you could always look. If you had a bug that depended on the phase of the moon, you could look at the thing and see at what phase of the moon it was compiled, and that might help you figure out what went wrong. Eventually, he got a bug report about a certain program that had been compiled once, and worked, and when it was compiled at another time it didn't work. So, he looked and he discovered that when the initial comments were printed out, the LISP feature that would automatically put in a line break if a line got too long was activated on one occasion, because the phase of the moon took too many characters to print out. So, it triggered that feature, and the last part of the phase of the moon was on another line, and therefore it wasn't marked by comments. So it was just sitting there in a file, whereas at another time the phase of the moon didn't take up so many characters, and the whole thing was properly commented. So, this was a bug that actually depended on the phase of the moon. You can take that as a final thought.

    _____________________________________

  36. Re:YART - Yet Another RMS Triumph by merlyn · · Score: 1

    It's not jr and sr. They are father and son, but they have different middle initials. I know, I've met both of them -- went on a nice sailing trip with the two of them around New York harbor. Bob Morris, the elder, worked for Bell Labs and wrote the bc manual. Robert Morris, the younger, is known for the Internet Worm, for which we both agreed he did much more damage and recieved far less punishment than me in my own celebrated case.

  37. Appliances by QuantumG · · Score: 1

    RMS aint as pure as people say (yer.. he's about the purest LISP coder on the planet I bet though).. I once got into a (quick) argument with him over whether or not the code in a microwave/toaster is ok to be proprietory. Can you guess who was against and who was for? Yer.. I said I should be able to recode my toaster.. and as such the toaster manufacturer should supply source. RMS said the code in your toaster isn't the same as the code on your computer. When asked why he said "hardware". When I mentioned that most microwaves were flash upgradable, he said "oh.. then you probably want some microwave with a user programmable interface".. and when I said "no.. I actually want the source to the code they have put in the flash that keeps burning the chicken" the conversation was over. When it comes to microwave ovens RMS aint too harsh with proprietory software. However, when it comes to mobile phones, he appears to be all for a free software alternative.

    He's still kickarse cool though.

    --
    How we know is more important than what we know.
    1. Re:Appliances by Anonymous Coward · · Score: 0

      Consistency and reason are not what you'd all RMS's strongest points.

  38. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

    Oh, Tom's been wrong--just not as often as a whole lot of people wish that he'd been. :-(

  39. Re:Standards (somewhat OFF-TOPIC) by kuro5hin · · Score: 2
    I don't think your solution works anymore. I just tried, and it stripped away my html again. If you like your nice html formatted sig, I recommend you don't edit your user preferences! :-)

    From some experimentation, I'm pretty sure a basic perl filter ( s/&lt.*?&gt//g; ) is being run on our sigs now. This, frankly, just sucks. And I agree with you, if we had the damn code, poor, poor, CdrTaco wouldn't have to work his little fingers to the bone, and we might have a better solution.

    <RANT>
    I normally dismiss critics of /., because usually they're basically whiny and annoying. But on this point, I have to be a critic myself. This is a site which is built on free software, and which claims to be one of the biggest media voices for free software, and yet, as far as I can tell, the software that runs /. is non-free! Good intentions don't count here, Rob-- the code is being kept hidden from us. We don't need a pretty tarball, for God's sake! Just set up a CVS server! I'll host it (cvs1.ompages.com)!! It's time this deplorable situation was changed.
    </RANT>

    "Get away from my house you freak!"
    -Neal Stephenson

    --
    There is no K5 cabal.
    I am not the real rusty.
  40. Commercial LISP by mellon · · Score: 2
    Actually, LISP has been used in a commercial environment. Remember the discussion about Natural Language patents the other day? Well, my former employer, Natural Language, Inc., had a complete english language interpreter. You could type in a query, and it would grok the query, spit it back in english in its own words, generate an SQL query from the english, do the query, and print the result either as a table or, if the result was a single value, as an english sentence.

    It was unbelievably cool. It was written in their own variant of MACLISP that they'd written, complete with a compiler that produced C code. Apparently the product is still available in some form from Microsoft (sigh), and I assume it's still written in LISP, so I would say that LISP is in fact a language that's used to develop commercial products.

    This natural language interpreter could obviously have been written in C, but whether it could have been gotten to market in time to be of any use is entirely questionable. LISP's ability to manipulate strings of data (not strings of text) in a free and easy way is what enabled that application - without this, it would have been theoretically possible but not practically possible.

    What you don't see much, and rightly so, is stuff written in LISP that would be better written in C. You also don't see a lot of programs that, while they would be easier to write in LISP than in C, aren't a lot easier to write in LISP than in C. IMHO, that's too bad, because it means that a lot of geeks that could benefit, as I did, from being exposed to LISP never have that opportunity.

  41. Re:Ever Notice? by Anonymous Coward · · Score: 0

    yeah we figured that out a little after we posted. whoever that is, he shouldn't be allowed to touch that car.

  42. Re:Security by Anonymous Coward · · Score: 0

    But not all software ought to be free. People have to eat.

  43. Re:Give the man a break ok? by AndroSyn · · Score: 1

    If it weren't for Richard we wouldn't have Unix in a lot of places. Linus probably would have never written the Linux kernel without gcc and friends.
    Would the BSD sources have been freed at all if it wasn't for Richard's nagging of the Berkeley people.

    And yes, Solaris does exist on the x86, but who in there right mind would go do such a thing.

    So, it may not have been RMS personally writing/porting Unix to the PC but if it wasn't for him, how many of us would be stuck using the crud M$ is selling???


  44. What license does Guile have? by Zagadka · · Score: 1

    Guile was mentioned in the article, and so I decided to check it out. It seems to be using plain GPL, rather than LGPL. Is this right?

    1. Re:What license does Guile have? by Anonymous Coward · · Score: 0

      Eek! That means it's poison!

    2. Re:What license does Guile have? by Jonas+�berg · · Score: 2

      libguile is under the GPL with an exception; "The exception is that, if you link the GUILE library with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License."

    3. Re:What license does Guile have? by Q*bert · · Score: 2
      Right, so you can embed it in applications (as opposed to using it as a shared library). Good call there.

      Vovida, OS VoIP
      Beer recipe: free! #Source
      Cold pints: $2 #Product

  45. Don't take it too seriously. by Anonymous Coward · · Score: 0


    Life's too short.

  46. Re:Security by Anonymous Coward · · Score: 0
    But not all software ought to be free. People have to eat.
    Doubtless this is why dear Richard refuses to free the microwave oven code. :-)
  47. Re:Perl by Anonymous Coward · · Score: 0

    Talking about Perl having a lot of compile-time analysis isn't that accurate in a Lisp discussion, considering that all Common Lisp systems (except one), and some Scheme systems as well, compile right down to optimized native machine code. And Lisp compilers are interactive, so that you can compile individual functions one at a time; in fact some Lisp systems do not even have an interpreter but compile everything you type at the prompt.

  48. Re:I'm tempted to try ML by Anonymous Coward · · Score: 0

    Kindly define `scripty task', sir.

    Heh. Yeah, that is kind of vague. It is kind of hard to nail down unfortunately, especially in Unix where there are a lot of small applications. The best I can come up with is that the scale of a program that is an application is an order of mangitude larger than that of a program which is a script. Over time scripts can become applications. Scripts also tend to be written in interperted languages.

    Quickly banging out a Perl program to do some system administration task, would result in a script. A carefully planned out and complex Perl CGI, or tool written in C++ would be an application. ML is not really good for the former sort of task, but it great for the later.

  49. I'm tempted to try ML by Anonymous Coward · · Score: 0
    Just compiling the ML system on my BSD box was an adventure...it was a clean install, but took forever (much like Dylan).

    I hear people rave about ML. Can you give me some more conrete information on where it might be useful in a real production environment? What types of problems does it solve?

  50. Re:Ever Notice? by Raleel · · Score: 1

    My wife says that Linus is easily the best looking. I think, speaking from an asthetic point of view, that she is right ;) Sorry guys

    --
    -- Who is the bigger fool? The fool or the fool who follows him? --
  51. Buy from locally owned physical stores. by Anonymous Coward · · Score: 0


    Support real book stores! Unless your local bookstores hopelessly suck, then I guess you're out of luck.

    But "real" bookstores are cool, and unduplicable on the net. I go to the web to find out if something is in print, and then I only ever buy over the net if the desired text absolutely cannot be found in my area (Cambridge, MA -- not such groovy bookstore territory as one would expect) (if anybody out there knows a good SF bookstore in Cambridge or in the Boston area in general, I'd be much obliged for a pointer).


    Of course, if "real" bookstores just annoy you, you'd have no reason to go out of your way to support them . . . YMMV, as you say, in all things . . .

  52. Re:Security by Ian+Bicking · · Score: 2
    Regarding economics, Free Software specifically allows itself to be sold with the profits completely retained by the seller. Something I would consider more compatible with marxist ideals would be more along the lines of "Free for non-commercial use" and "Pay x% of your profits if you're making money with this. We'll make sure it gets to a needy person".
    I said RMS was a communist, but I didn't say he was a Marxist. Anyway, even a Marxist communist wouldn't go for that tax -- the distinction between commercial and noncommercial isn't really appropriate in a communist setting.

    I think RMS is most thoughtful and most firm in his beliefs in the realm of software, and more generally utilitarian information (as opposed to expressive information). And it's in this very realm that he is most communist. I don't speak about economics in terms of who makes what profit -- I speak of an economics more fundamental. At the base of all economics is distribution. Who makes what, who gets what, how does it get there.

    RMS wants us all to make software as we desire and need, and to give everything we have to everyone. It doesn't get there by any centralized organization, but by the trust in goodwill that makes it inevitable that when the first person gives the software away the chain will not be broken -- and it seldom is.

    At least, that's what the GPL does, in spirit as in practice. And how could it be more communist? The GPL neither denies nor supports profit. But places the rights of the user (the masses) above the rights of the author (the capitalist). That sounds communist to me. But that doesn't have to be a bad thing.

    Maybe RMS doesn't want the means of production to be placed exclusively in the hands of the people, or start a violent overthrow of the ruling class to make room for a dictatorship of the proletariat, but that's just one perspective on communism.

  53. atomic supersede is called rename(). by Kaz+Kylheku · · Score: 2

    echo "blah" > #temporary_file#
    mv #temporary_file# existing_file

    There is your atomic supersede. It's in the atomic rename operation..

    1. Re:atomic supersede is called rename(). by bkeeler · · Score: 2
      The rename() solution has some disadvantages.

      First, if you don't own the file, the new file will be owned by you, and if you're not root, there's nothing you can do about that.

      Second, it generally doesn't do what you want when there are more than one hard link to the file.

      I think an atomic supersede would be a useful facility to have. It probably wouldn't be that hard to implement either.

    2. Re:atomic supersede is called rename(). by Anonymous Coward · · Score: 0

      But that idiom isn't built in, so hardly any interactive tools (where a filename is prompted or computed on the fly, rather than passed from the shell) bother to do that. It's an awfully common problem for us to roll our own every time.

  54. Re:Give the man a break ok? by Anonymous Coward · · Score: 0

    I cannot honestly believe that you question CSRG's freeing of BSD, or that you attribute this to RMS. Do you not really know these people?

  55. Re:About RMS>>> by Anonymous Coward · · Score: 0

    trollin', trollin', trollin'...

  56. Re:Security by Anonymous Coward · · Score: 0
    If we all followed RMS's ideas, then we wouldn't expect the painter to get a royalty on prints made from his original, nor would we expect photographers to get a royalty when their photos were used in other works. And so and and so forth for other forms of inventions, like a nifty floral print on a scarf or a catchy new tune.

    I don't want to live in a world where I force others to work for free so that I can steal what they should be profiting from.

  57. Pascal had an intermediary form before gcc by Colin+Simmonds · · Score: 2
    gcc sources are a good example. I don't know if he's the one that came up with the idea of compiling to an intermediate form and then having each cpu target translate the intermediate, prepackaged form to machine code, but that's a fabulous idea.

    Probably not. Pascal compilers did that in the late 70s for machine portability. The Pascal code was compiled to an intermediary called P-code, which was then compiled to machine code by an architecture dependent piece.

    The Pascal vendors billed this as a big breakthrough for portability at the time, but I'm sure that earlier examples could also be found.

    1. Re:Pascal had an intermediary form before gcc by Jonas+�berg · · Score: 1

      You forget that RMS was around, working on compilers, kernels and various other things before that! :-)
      Still, I don't think he invented that. He probably got the idea from any of the many research papers that clutters the GNU offices.

    2. Re:Pascal had an intermediary form before gcc by Anonymous Coward · · Score: 0

      Of course, gcc was a decade before that... but don't let that stop you from using it as a reason to insult RMS.

    3. Re:Pascal had an intermediary form before gcc by Anonymous Coward · · Score: 0

      RMS is his own worst enemy. And not much use to the rest of us, either.

    4. Re:Pascal had an intermediary form before gcc by core · · Score: 1

      Probably not. Pascal compilers did that in the late 70s for machine portability. The Pascal code was compiled to an intermediary called P-code, which was then compiled to machine code by an architecture dependent piece.

      You're right on that one. I did hear about P-code, it just escaped my mind :) The fact that Stallman applied that principle to more than one language is brilliant tho; it's the key to both the unchallenged architecture portability of gcc (if you have something that can do 1 and 0, and at least 32 of them, it runs on it :-) and the numerous languages it supports with the same back-end (c, c++, java..).

      As someone said, the power of a system is not expressed by the number of its components, but the number of interconnections between them :)

    5. Re:Pascal had an intermediary form before gcc by Anonymous Coward · · Score: 0
      I know of at least one company back in the 80s that had Fortran, ADA, and C compilers that all generated a common intermediary format and then ran through an optimizing backend.

      Everyone always overhypes Stallman.

    6. Re:Pascal had an intermediary form before gcc by uh · · Score: 1

      heh, is their a compiler with more language/platform support than gcc? I don't think so. Are there any other operating systems that masquerade as editors? I don't think so.

    7. Re:Pascal had an intermediary form before gcc by Anonymous Coward · · Score: 0
      His goal here is to let everyone have software that can be shared and improved, by bringing an end to copyright and reverse-engineering restrictions on it. What he's done is to form a solid base of bullet-resistant software that's also protected from proprietary abuse, and to advocate expanding it and keeping as much work as possible within it.

      Okay, IHBT. If he's "his own worst enemy", what should he be doing that would better accomplish his goal than what he's done?

  58. Re:Security by MikeBabcock · · Score: 2

    RMS does, indeed, believe that most things should be open. He is not what one would call a personal privacy advocate. He wouldn't attack you for having your privacy (from what I've read of his thoughts), but he's not big on keeping everything you know and everything you have to yourself. He's not the world's biggest capitalist, that's for sure. :-)

    I agree with him on many points; I think the world would be a better place if we could trust each other. Mind you, I believe in security; but I believe in it as a trust model, not as an "exclude everyone but ..." model.

    That's why I use programs like portsentry, etc.

    --
    - Michael T. Babcock (Yes, I blog)
  59. Not the point - its a binding and typing issue by Anonymous Coward · · Score: 0
    Come on, TeX macros are turing complete too, but thats not the point.

    The point is the incredible leaps you can make with a programming system that allows you to really dynamically program.

    Until you understand the amazing things a dynamically typed, dynamically bound language can do for you, you're missing a major productivity builder.

    The day I wrote a perl script that constructed and executed part of its own code was like a bolt from the blue.

    To this day, most programmers can't get past the ideas of static typing and binding.

    All CS students should spend at least some time looking at languages that allow for run time modification of code - its incredibly powerful.

    1. Re:Not the point - its a binding and typing issue by Anonymous Coward · · Score: 0
      The day I wrote a perl script that constructed and executed part of its own code was like a bolt from the blue.
      [CORRECTION]

      I've always enjoyed:

      open 0 and print <0>
      But I suppose that isn't what you meant. :-)
  60. Re:english translation of the interview by SpringRevolt · · Score: 1

    And "Because Guile, which is the new project scheme interpreter..." should be "Because Guile, which is the GNU Project scheme interpreter...".

  61. Re:Perl by Anonymous Coward · · Score: 0

    Perl can also compile down to machine language. But many language, e.g. Python, are very lame at the compile-time phase. Even when Perl is using the interpreter, its compiler does far, far more work than Python's does. This is relevant when you're talking about static analysis, early versus late binding, etc.

  62. Re:movemail bug and Cuckoo's Egg by Anonymous Coward · · Score: 0
    No, it was movemail which was setuid root; this is the whole point of movemail, and why it wasn't part of emacs -- because it needed root permissions to move mail around in restricted ways. And the cracker knew of a bug/oversight in its definition of "restricted ways".

    At least that's how I interpreted the book, I have no more information than you do.

  63. Re:Perl by Anonymous Coward · · Score: 0

    Perl can also compile down to machine language.

    Really? Does the only Perl parser in existence actually do this, or you just speaking theoretically? Perl's definition is so contorted, that I doubt there will ever be any other implementations.

    I agree that Python is a bit too dynamic for its own good, but I'd still take it over a rat's nest like Perl any day.

  64. Re:Interesting . .from the interview: by inburito · · Score: 1

    Like someone else already noted: If you mirror it you are in violation with copyright laws(in most cases anyway). To my understanding this doesn't affect caches(otherwise proxys etc. would be illegal - just think about squid). And think about it, how much overhead is the text of say 15 links/day? Maybe 80K / link and you get 1.2M / day of cacheing, which for all practical purposes can be deleted the next day. As a comparison an average page of comments loads easily 100-200K..

  65. Re:The natural power of a programming language by Beethoven · · Score: 1

    Nice paper (well, the 1/3 of it that I skimmed). The goal of a universal config file language is worthwhile, but it will not work if the language looks like Scheme. Quick and dirty languages succeed because they are quick. They are designed (using the word loosely) to require as little programmer time as possible, both to perceive the meaning of a script and to pound out something useful.

    In other words, Scheme/Lisp is optimized for being read and written by the machine, while Shell, Perl, etc. are optimized for humans, and humans generally decide which language to use. Sure, if time were never an issue, we should all write beautiful code in a beautiful language like Lisp, but for small and ad-hoc jobs, it is unsuitable.

    The ideal thing IMO would be an easy way to create little languages on top of a language with rich semantics, providing them with a way to "escape" into the full language to handle complex cases. Here I think Scheme could excel, but I don't know of any concrete examples where this is done.

  66. How on earth is this a "troll"? by Anonymous Coward · · Score: 0
    Sometimes the moderetards just amaze me.

    Here's a hint - don't moderate what you don't understand.

  67. Re:Ever Notice? by Anonymous Coward · · Score: 0

    We think he is Marc Merlin, the guy who takes all those pics at conferences and shit.

  68. Re:Lazy evaluation by _ska · · Score: 1

    Think about that statement: "I've never seen or done anything with more than 50 lines of code...". Especially the 'done' part. I can translate that as 'I don't really know anything about this language'.

    Many extremely large projects have been done in lisp. In fact it is particularly well suited for large research projects, because it is so flexible. Need examples? Most early large scale AI projects were done in lisp. Many still are, but also many use variants. AutoCAD. Symbolic algebra systems. Many 'expert systems' (I never did consider them 'AI', but I guess you could lump that in with above). Lot's more if you care to look....

    S.

  69. Re:ML is even better (Was:Why is LISP superior?) by Anonymous Coward · · Score: 0

    ML doesn't have macros, does it?

    Can you think of a reason you would want macros when you have real polymorphism and functors?

  70. Re:Ok whats yours? by SpringRevolt · · Score: 1

    > he lives pretty frugally.

    Yeah, all he needs is his hotrodded match-grade .45 semi for tactical shooting. He's kind of Buddist that way. ;^)

  71. Re:Interesting . .from the interview: by SpringRevolt · · Score: 1

    This shouldn't be too hard to implement

    It isn't - but then again Slashdot it not in LISP, so who know? ;-)

  72. Re:Perl by Anonymous Coward · · Score: 0

    The perlcc tool does this by calling Dr Beattie's code generators. Stop being so ignorant with your idiotic insults and actually learn something, why don't you?

  73. Re:GNU/Linux? by Anonymous Coward · · Score: 0

    If Sun or HP or IBM made a copylefted operating system using Project GNU's licenses and tools for making copylefted operating systems, then yeah, I'd say they made a GNU system. AFAIK that hasn't happened except in systems built with Linus' kernel.

  74. Re:ML is even better (Was:Why is LISP superior?) by TimoT · · Score: 1

    Can you think of a reason you would want macros when you have real polymorphism and functors?

    To write programs that write programs that write programs ? Seriously, powerful macros can encapsulate complex operations to a simpler form, which is easy to use and still remains efficient.

  75. maybe i've just been left in the dark... by Anonymous Coward · · Score: 0

    maybe i've just been left in the dark, but i don't really know why ESR is hailed as such an important part of the open source community.

    this may seem off-topic, but i don't think it is entirely unrelated to this article. i mean, i know (and further see from the article) that RMS is a major contributor to the opensource and gnu movements. he did most of the coding for emacs and gcc. what has ESR done that makes him so special? i know about the "cathedral and the bazaar" essay, and his other writings, but is that it? although significant, his writings do not seem to be so important to raise him to such high status in the community. someone please clue me in.

    p.s. i realize that if i am indeed mistaken, i will probably upset a lot of people with my ignorance. if i am wrong, i would like to apologize in advance. i'm not looking to attack anyone or to be attacked. i just want to know.

  76. Re:Security by Midnight+Coder · · Score: 1

    I suspect this question will never be seen but I feel a need to ask it anyway.

    I don't understand how RMS can advocate both not using security and using strong encryption, how can he reconcile those two beliefs?

    (RMS advocated not using security in this artice and has done so elsewhere but a couple months ago he advocated using strong encryption in the UK in response to some new laws passed to help counter IRA resistance).

  77. RMS' blind spot by lucas_gonze · · Score: 1

    Discussion about LISP's technical value is beside the point, because the use of LISP in a Free Software project is counter to the ideology of Free Software.

    Free Software in the RMS sense is about having the users be able to modify the code to fit their needs. But requiring knowledge of a little known language like LISP defeats this purpose. It keeps the majority of programmers from being able to do their own code modifications, since that would require them to learn a highly non-standard new language.

    This is a perfect illustration of RMS' large blind spot. He is for a democracy of the elite, where the elite is programmers in academia. The value of usability - in GUIs (viz emacs totally wierd layout), programming languages (using LISP despite its unusability to the vast majority of programmers), and verbal communications (even the phrase "free software" requires some secret background knowledge) - to his larger goal of a more free society escapes him. If you are interested in devoting yourself wholly to GNU, then you are welcome; otherwise you're second class.

    1. Re:RMS' blind spot by Anonymous Coward · · Score: 0

      Which language should RMS choosen for EMACS extensions? The only popular languages around at the time that would allow for dynamic extension were LISP and Smalltalk. At the time, LISP was much more prevalant than Smalltalk.

      If you think that UNIX shell would of been a good choice, you're nuts. UNIX shell may be the world's worst programming language, and it is completely unsuited for writing interactive software.

    2. Re:RMS' blind spot by Anonymous Coward · · Score: 0

      Admittedly I prefer using ML to LISP, but you have to be a real moron if you call yourself a programmer but can't take the half hour it would take to learn LISP. You must be one of those dumbasses that thinks a real programmer won't learn anything from getting a college level education in computer science. Assuming you aren't going to Bumfuck U, you will learn things you would have never picked up on your own like a real understanding of information theory.

    3. Re:RMS' blind spot by lucas_gonze · · Score: 1

      I don't see why dynamic extension should be the litmus test. If freedom is best served by enabling the user to change the source, then the popularity of C + the high power of C would have made it a better choice.

      My point is that Lisp is and was such a non-standard that it works against the goal of enabling users to work on the software.

    4. Re:RMS' blind spot by lucas_gonze · · Score: 1

      Learning LISP takes well over a half hour, particularly because using elisp depends on discovering a large number of API functions; ie dinking around for a long time while you learn the miscellaneous hacks that have come into use.

      This is not an argument over the technical merits of LISP. This is an argument over means vs. ends. If the end goal is to make software more free, LISP was a bad choice because it discourages user contributions.

      Requiring contributors to have learned programming in college - as they would have to to know LISP - eliminates the large number of programmers who learned on the job, or by hacking other free software. Emacs is the only major project that uses LISP, which is the single best reason why I am right and you are wrong.

      Incidentally, you're stupid. How old are you, little fellow?

    5. Re:RMS' blind spot by Anonymous Coward · · Score: 0

      Saying that you can change a piece of software by editing the C source is a cop-out. It's literally true, but having a language that allows for dynamic extention of the system makes it vastly more practical. Instead of asking someone to patch and rebuild an executable to add a language specific mode, they can just load a little bit of byte code at run time and only when they need it. (Remember that UNIX did not have shared libraries at the the time.)

      At the time, Lisp was NOT non-standard. There were several companies that were doing a great business selling computers specifically designed to execute Lisp before they were killed off by Scum^H^H^H^Hun.

      To be blunt, the only people that I know that talk about "the high power of C" have very little experience programming outside of the C/shell/Perl world. And virtually everybody I know that has had serious experience programming LispMs really misses them.

    6. Re:RMS' blind spot by Anonymous Coward · · Score: 0

      There's another little project that uses a Lisp dialect called Scheme.
      http://www.gimp.org/

      The APIs that you would have to learn is independent of the language you need to write the code in.

      -- Martin, who taught himself Lisp outside of college to hack GIMP.
      It was worth a half hour of my time.

    7. Re:RMS' blind spot by Anonymous Coward · · Score: 0
      Freedom is best served by having the ability to change the source- as a last resort. Whenever you actually have to do it, it demonstrates that someone screwed up. This is what the open-closed principle and Liskov substitutability, the foundations of OO, are all about.

      Lisp has been around longer than just about anything else, and IIRC the Lisp standard (which included a much larger and more useful library) was finished well before the C++ standard. It's unfortunate that Elisp had to remain such a quirky, mediocre dialect.

      And even assuming more talented hackers know C than Lisp (though understanding closures and higher-order functions correlates pretty strongly with talent), that's an argument against ease of use in favor of ease of learning, which is only a win for a system you avoid and seldom use. In other words, if (as I'd claim) Lisp is a better language for extending a system and getting stuff done, the advantage in working with it far outweighs excluding a few luddite bystanders.

    8. Re:RMS' blind spot by Anonymous Coward · · Score: 0
      Emacs is the only major project that uses LISP, which is the single best reason why I am right and you are wrong.

      I can hardly believe you're not rated as a troll but if you're really not a troll then I have this sign I want to sell to you.

      You can hang it around your neck and it says "Ignoramus" but I'd doubt you know what that means.

  78. Re:Ok, how much did the father of Emacs write? by Anonymous Coward · · Score: 0

    The FSF only accepts contributed code if the copyright is assigned to them with a disclaimer from the contributor's employer, so nobody can come along later and sue for infringement- and so they have standing in court to threaten or sue infringers (should someone redistribute without meeting the conditions of the GPL). This copyright assignment isn't written into the GPL or anything (in particular, you yourself can distribute modified GPL'd works without doing it), it's just a ground rule the FSF has decided they need to apply to their "official" copies of projects.

  79. Re:"Deploy a solution?" FOAD, VAR parasite moron. by Anonymous Coward · · Score: 0

    Wow. You showed him, genius-boy.

  80. Re:Security by Anonymous Coward · · Score: 0

    The same way he advocates licence-leaking with some kinds of aggregation and not with others. He's not consistent.

  81. DEC-10 day by Anonymous Coward · · Score: 0

    The article mentions the PDP-10, later named the DEC-10 (officially the DECsystem 10), but didn't point out that a few days ago was DEC-10 day (the date was Dec. 10), and today is DEC-20 day (date is Dec. 20) -- the DEC-20 was the successor to the PDP10 and included the paging hardware that made virtual memory possible.

  82. Re:Security by Anonymous Coward · · Score: 0

    He has stated that he is against hiding information from your neighbours, but supports hiding it from the government.
    So when he advocates crypto, he is talking about using it to avoid government snoops.

  83. Re:Security by Anonymous Coward · · Score: 0

    I guess that means he has no curtains.

  84. Re:Ok, how much did the father of Emacs write? by Anonymous Coward · · Score: 0

    You licensing mavens are self-destructively obsessed. Just give the fucking code away. Forget the courts. Forget the virus. Just do the decent thing and do unto others as you wish they would do unto you.

  85. GNU/Linux? by StenD · · Score: 1

    You probably mean a GNU command line utility. Linux is the kernel, some of us prefer to call the whole system GNU/Linux.

    I use the 90%+ of the same GNU utilities on Solaris, HP-UX, AIX, FreeBSD, etc. Should I be calling them GNU/Solaris, GNU/HP-UX, GNU/AIX, GNU/FreeBSD, etc? I think not. I use GNU utilities on a Linux system, just as I do on any other Unix (derived) system.

  86. Idea: Bring RMS and Theo de Raadt together! by Anonymous Coward · · Score: 0

    Fight of the millenium!

    Two such "difficult" people (see splits of EMACS/XEMACS OpenBSD/NetBSD) with so opposite opinions about system security.

    1. Re:Idea: Bring RMS and Theo de Raadt together! by Anonymous Coward · · Score: 0

      You mean milleNNium.

    2. Re:Idea: Bring RMS and Theo de Raadt together! by WNight · · Score: 2

      Sure, but Theo just maintains a distro of BSD and audits a bunch of code.

      When he's written a whole C compiler from scratch, along with a goodly hunk of the OS support coded, then he'll be that much more 'difficult' but he's also have earned the right.

    3. Re:Idea: Bring RMS and Theo de Raadt together! by T-Punkt · · Score: 1

      Will you show up for every typo I make?

    4. Re:Idea: Bring RMS and Theo de Raadt together! by Anonymous Coward · · Score: 0

      You've got your orders of magnitudes all out of whack. Richard is as many times more difficult than Theo as is Theo more difficult than people like Dennis, Kirk, or Linux. You need something logarithmic. Order of difficulty.

  87. Re:Security by Anonymous Coward · · Score: 0

    Um, cracking involves violating the system's security model, not obeying it. And umask 000 makes files with mode 777, which is world-write. Didn't he deny remote login for himself as penance for giving in to pressure to deny it to others?

  88. Re:ML is even better (Was:Why is LISP superior?) by Anonymous Coward · · Score: 0

    To write programs that write programs that write programs ?

    I fail to see the need in this case. I can write very elegant code to produce new code without resorting to "macros" in ML.

    Seriously, powerful macros can encapsulate complex operations to a simpler form, which is easy to use and still remains efficient.

    How is this more powerful and efficent that using normal functions which give you the exact same capabilities? Have you ever written code in ML to know that this is something you need?

  89. Re:Interesting . .from the interview: by inburito · · Score: 1

    Uh.. Slashdot LINKS to the article so that we can all read it. Thus, it is unnecessary to copy two paragraphs of it on the basis that they are interesting. The whole article is rather interesting but for obvious reasons it would make no sense to copy/paste it into a comment.

  90. Re:Security by WNight · · Score: 2

    From reading the other posts, about RMS living as if the community is trustworthy, except when he's forced to do otherwise, because you should trust the community, etc... I got a different view of his beliefs.

    Most people think of communism (discounting rabid people who think USSR == Communism) as sort of a global welfare state, where you can sit around and get by, or strive and strive and be held back.

    But, if you had a mature community, this wouldn't happen. The same as, in a mature society, like that which Stallman grew up in at MIT, where he could leave his email unpassworded and not lose it.

    In a mature society, you could leave your doors open, because everyone would be, if not rich, then at least, not poor. You could leave your email open because people wouldn't trash your machine just to prove a point.

    I think RMS honestly lives by the golden rule, treat others as you would have them treat you. He wants open code, so he opens his code. He doesn't want nasty controlling laws, so he promotes ways around these laws, GPG for example.

    I'm not saying he's Jesus or anything, but he seems to have decided on what he feels he has to do to live a moral life, and he's doing it, with few contradictions. To see this, you just need to see what his goals are.

  91. Re:Security by WNight · · Score: 2

    The GPL is basically a 'place' to put code you think will benefit people. You have to have written the code, or have it already given to the free world, such as with a BSD or public domain license.

    If someone can't make a living because all the code they'd write exists in better form under the GPL, then perhaps they don't deserve to make a living as a programmer.

    And the GPL doesn't even prevent you from making money, it just means you need to sell yourself as a glue programmer, and a systems integrator, instead of just a programmer.

    Anyone can sell GPLed code, and charge to set it up, they just can't slap their own copyright on it. And for everyone except those with an irrational need to own everything, this is enough.


    When people whine about the GPL, all they show is that they can't get by without stealing code, and they don't want to be forced to show this.

  92. Good Points of LISP by Anonymous Coward · · Score: 2

    LISP is really nice when you're pushing the state of the art. It's a simple, flexible core with lots of hooks for extensions. I once heard it called "the programmable programming language". So if you're writing a big program, you can begin by extending LISP into a domain-specific language. You can even add new kinds of declarations and control contructs.

    LISP is very pleasant for hacking if you learn to see past all the parentheses.

    Eric Kidd <eric.kidd@pobox.com>

  93. Re:The road to hell ... by Anonymous Coward · · Score: 0

    I always thought it was supposed to be "melting snowballs".

  94. Standards by Bitscape · · Score: 4
    We support standards in the ways that are useful to users, and we depart from them when that becomes more useful to users.

    Alright, I like RMS and his teachings as much as anyone, and even agree with the sentiment of this statement. If standards aren't serving users in the best way possible, what good are they?

    But if it were someone from Microsoft making this statement, let's admit it. We would be jumping all over their throats and making accusations about "embrace and extend". Obviously, since GNU makes free software, there's less worry about them subverting the standards process, but where do you draw the line?

    BTW, the POSIX_ME_HARDER part was hilarious. Made my morning. :)

    1. Re:Standards by Jonas+�berg · · Score: 1

      Well, if Microsoft (or any other proprietary developer) did this, I'm pretty sure that their deviations from the standard would be non-documented, and you would have no way of knowing how they did it. With free software, you can always find out how it is done, if you want to, and more often than not is it also documented. This doesn't apply too much when it comes to if `df' should output its findings in kilobytes or in blocks, but it makes a huge difference in other, more technical, areas.

    2. Re:Standards by kuro5hin · · Score: 5
      but where do you draw the line

      I think you draw the line exactly at the question: "Is the 'extension' closed and proprietary?" That is, when M$ extends a standard, you are not allowed to see what they did. If M$ adds extensions to HTML, they do it because it distinguishes their browser from Netscape. Now, maybe the extension is useful and good, but the fact that it may only be implemented by M$ browsers is, overall, bad for users.

      On the other hand, when an author of OSS extends a standard, the code is open, and others may see and reimplement exatly the same functionality in their code as well. Assuming this extension is also good for users, then everyone can implement it, and the net result is a big win, rather than a hideous swamp of incompatibility (like present-day HTML).

      "Get away from my house you freak!"
      -Neal Stephenson

      --
      There is no K5 cabal.
      I am not the real rusty.
    3. Re:Standards by Sludge · · Score: 1

      Of course, Microsoft's embracing and extending is not better for the user.

      The reason people would jump at Microsoft for saying this is because we're correctly sceptical when Microsoft says 'better for the users'. It's much easier to believe this, coming from RMS, no?

    4. Re:Standards by Mawbid · · Score: 1
      Funny, I thought exactly the same thing when I read that.

      When someone diverts from a standard, I guess all we can do is try to guess their intent. Are they trying to help their users or are they trying to hurt their competitor's users? It can be hard to be objective when answering that question.
      --

      --
      Fuck the system? Nah, you might catch something.
    5. Re:Standards by Anonymous Coward · · Score: 0
      Ever try porting something developed with g++ to another system, like say, VC++? They're both just as guilty of embrace, extend, and extinguish.

      And the GNU stuff isn't even *trying* to be standards (POSIX) compliant. This is very annoying.

    6. Re:Standards by Jonas+�berg · · Score: 1

      I would argue that C++ has never been compatible with anything else even in the first place. GNU software follows whatever standards are available where it is convenient for the user. If the standard doesn't make sense, there seems to be scant reason to implement it just so you can say that you followed a standard.

    7. Re:Standards by Anonymous Coward · · Score: 0

      All it takes is an -ansi to make g++ play nice. Overall, shock and horror, it's up to the human being to show some intelligence, not the machine.

  95. Re:Give the man a break ok? by ajc · · Score: 1

    As somebody who was using minix around the time linus wrote linux (and posted the original message to comp.os.minix), gcc and friends were nice, but I don't think their absence would have stopped linus.

    There were other compilers (for instance, the one shipped with minix (binary only, but since when has that stopped us)). I think I remember lcc being available around then too.

    Having no BSD utilities and no GNU utilities would have been far worse... so whereas I don't agree with your assertion that rms's work was an essential prerequisite for linux, it was (and is) a great achievement... three cheers for rms.

  96. Re: Troll Culture? by Anonymous Coward · · Score: 0

    Hmm, wouldn't it be great for Katz to do a whole piece on the Troll Culture?

    -- Ender, Duke_of_URL

  97. The greatness of RMS by VAXGeek · · Score: 1

    I think an article like this just reminds us that RMS isn't just a religous fanatic, but he actually writes quality software, and stands up for what we all believe in. Richard Stallman, I salute you.

    --
    this sig limit is too small to put anything good h
  98. Linux PCness by Anonymous Coward · · Score: 0
    My brash nature is just an expression of my lack of tolerance for political correctness. (which is all this really comes down to)
    Thank you! Thank you thank you thank you thank you thank you! This is just the problem that I've been trying to put my finger on. It bothered me at levels other than the immediately obvious. And now you've shown the answer. It's because this is all PC bullshit. The problem is that this is a PC euphemism designed to distort perceptions.

    Thank you for clarifying.

  99. Re:Ok whats yours? by Anonymous Coward · · Score: 0

    Hmmm, not that I know for a fact, but I do not think that RMS is a NRA member. ESR on the other hand...

  100. L4Q by lahosken · · Score: 1

    After the Y2K consulting business has dried up, perhaps the next big time bug to go after will be Lunar-fourth-quarter.

  101. Re:Ok, how much did the father of Emacs write? by Anonymous Coward · · Score: 0
    Proprietary software is crippling any progress in the industry ("If I haven't seen further, it is by standing in the footprints of giants") and taking advantage of so-far unwitting customers, and I absolutely refuse to subsidize it with free labor. Especially when it'll just lead to more persistently buggy and poorly-maintained crap I'm compelled to work with.

    Anyway, doing unto others as you know they could but won't do unto you would be stupid. Some of us have this notion called fairness, which is where we diverge from both pure communism and caveat emptor capitalism.

  102. Re:Security by Anonymous Coward · · Score: 0

    That's what work for hire is for. In a world of abundant information and scarce labor, only an accountant could think of imposing more scarcity in an already flawed world just so he can charge for the right to have a copy.

  103. Re:Ok lets try... by rking · · Score: 1

    Except, of course, that little security is applied to credit card numbers (they're given to the staff at every retail outlet where the card is used and there'd be no way of telling at what point the number was extracted) and they seem to work pretty well anyway, that's a mark in favour of non-security, not against it.

  104. POSIX_ME_HARDER . .masochistic endeavors by Money__ · · Score: 1
    BTW, the POSIX_ME_HARDER part was hilarious. Made my morning. :)

    Ter velcom :)

    _____________________________________

  105. Re:Standards (somewhat OFF-TOPIC) by Q*bert · · Score: 2
    Hi,

    I noticed your signature. Actually, Slashdot sigs are still interpreted as HTML. It's just that whenever you edit your user preferences the tags are somehow lost, and you end up with unformatted text in the text box for your sig.

    The solution is to go back and re-insert the tags every time you edit your preferences. It's annoying, but it works. (See my signature. ;) )

    This is a known Slashdot bug, and if I had the damn code I would fix it.

    Vovida, OS VoIP
    Beer recipe: free! #Source
    Cold pints: $2 #Product

  106. Ok whats yours? by Anonymous Coward · · Score: 0

    We still need a victim :)

    1. Re:Ok whats yours? by Zurk · · Score: 1

      depends on whether RMS *has* a credit card. he lives pretty frugally.

  107. Re:The road to hell ... by extrasolar · · Score: 2

    The road to hell ... is paved with good intentions.

    Not entirely, I don't think. Besides, I doubt the road to heaven has anything to do with money.

  108. Re:Security by Anonymous Coward · · Score: 0

    >Kind of odd that RMS says "security sucks" (not a direct quote, of course, but that's what he seems to be saying), then actively promotes crypto and GnuPG. I guess his thinking is that people have the right to choose between privacy and openness, which seems reasonable.

    He's explained it somewhere, somewhat like this:
    Encryption is protection against the possibly corrupt government, security is protection against your community.

    If you need to protect yourself against the community, there is something wrong with the community and you should try to fix that, instead of protect yourself against it.

  109. Security by nd · · Score: 2

    One thing that surprised me most about the interview was what he said about security and how he doesn't like it. Did I interpret this correctly? Does he really think everything should be open? Maybe I'm missing something..

    Is there anyone more familiar with his position who would like to fill me (and others) in?

    1. Re:Security by Anonymous Coward · · Score: 0

      Now my "community" is the whole fscking world, including all the deists and prudes and other psychos who both outnumber the smart people and like things the way they are. I'd expect fixing my government to be slightly less impossible, and at least it is supposed to partly uphold my interests.

    2. Re:Security by ninjaz · · Score: 2
      I think RMS really is a communist, even though he strongly denies it. He's not authoritarian or fascist at all, though those are often confused with communism. But really -- "to each by his need, from each by his ability".
      Actually, I don't think "communist" is a very good description of rms. For instance, consider his essay on "The right way to tax Dat": http://www.fsf.org/philosophy/dat.html

      In it, he proposes that those taxes should go to the recording artists based on polls to determine popularity. That suggests "To each according to his ability" rather than need. In other words, it encourages doing something useful rather than being needy as communism does.

      In the context of Free Software, his philosophies apply to the distribution of information, not of material things, which communism concerns itself with.

      Regarding economics, Free Software specifically allows itself to be sold with the profits completely retained by the seller. Something I would consider more compatible with marxist ideals would be more along the lines of "Free for non-commercial use" and "Pay x% of your profits if you're making money with this. We'll make sure it gets to a needy person".

      Also, rms' philosophy on copyright and patents is completely within the bounds described by Thomas Jefferson, who predated the idea of communism.

      Quoth Mr. Jefferson:

      "It would be singular to admit a natural and even an hereditary right to inventors... It would be curious... if an idea, the fugitive fermentation of an individual brain, could, of natural right, be claimed in exclusive and stable property. If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of every one, and the receiver cannot dispossess himself of it. Its peculiar character, too, is that no one possesses the less, because every other possesses the whole of it. He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. That ideas should freely spread from one to another over the globe, for the moral and mutual instruction of man, and improvement of his condition, seems to have been peculiarly and benevolently designed by nature, when she made them, like fire, expansible over all space, without lessening their density in any point, and like the air in which we breathe, move and have our physical being, incapable of confinement or exclusive appropriation. Inventions then cannot, in nature, be a subject of property. Society may give an exclusive right to the profits arising from them, as an encouragement to men to pursue ideas which may produce utility, but this may or may not be done, according to the will and convenience of the society, without claim or complaint from anybody... The exclusive right to invention [is] given not of natural right, but for the benefit of society." --Thomas Jefferson to Isaac McPherson, 1813. ME 13:333
      Another insightful article (by rms) about why he is the way he is:

      http://www.linuxworl d.com/linuxworld/lw-1999-11/lw-11-rms.html

    3. Re:Security by Jonas+�berg · · Score: 5
      The Incompatible Time-sharing System (ITS) that RMS hacked on and which was used at MIT for many years did not have much security. Security always comes to the cost of convenience, and security builds walls to divide people, much like proprietary software does. RMS's favourite umask is 000 and the information given to new people who gets accounts on a gnu.org machine recommends this umask, iirc. On one of the machines that RMS uses, he says that it's fine for people to read his email, but that he wishes they would do it with `more' and not with a mailreader so there's no risk of loosing mail. Until only a few years ago he had the password 'rms'. He doesn't use much of the gnu.org computers for this reason. His own computer doesn't have security.


      I support RMS in this. I wish people would understand that security isn't always important.

    4. Re:Security by Anonymous Coward · · Score: 0

      Get a job! Then you can buy your food.

    5. Re:Security by nd · · Score: 1

      Thanks for the response.

      That seems really strange to me, but interesting nonetheless... I guess my argument to that would be that there are always going to be evil people and there's nothing you can do about it.

    6. Re: Security by Jonas+�berg · · Score: 2

      Even if people say that it can't be done, why would that stop someone who has seen such a society work stop trying to implement it today? RMS saw and took part of such an open community for a long period of time at MIT, so we know for a fact that it works for a limited community. Wouldn't it be fun to see if it couldn't also work in a more extended community?

    7. Re:Security by Anonymous Coward · · Score: 0

      However, in a networked world where not everyone is a good guy, I'd argue that you need some security if you're going to be ethical, even if you don't mind anyone being able to look at your stuff, since any attack that can be launched on a system where security is important from your open system is, IMO, part of your responsibility (in an ethical, not necessarily legal sense). For me, the most chilling bit in Cliff Stoll's `The Cuckoo's Egg' is the bit where the hacker uses a lax security system to place files of unkown purpose onto a machine which is responsible for calculating & delivering chemotherapy treatments. In an even more networked world, I'm worry about security not because any of my info is terribly private but because through laxness I might compromise someone else's system where there's a damned good reason for the security. Just my 2 cents

    8. Re:Security by Jonas+�berg · · Score: 1
      You seem to be confused by the meaning of hacker vs. cracker. Cracker is a person who breaks into sustems, often with malicious intent. Hacker doesn't do that -- or at least not with an intent to sabotage or destroy information.


      Interestingly enough, didn't the cracker in Cliff Stoll's book get in through a bug in move-mail which was a part of Emacs? In either case, this should be up to the administrator of each machine to decide for himself. If I want security, I won't go complaining to someone else when people try to break in, because that's pretty much what I would expect would happen. In particular, I would not even think of blaming someone who runs an open system which the cracker used to try to break into my machine. Why would I want to do such a thing? That's like forcing that all crowbars be locked into safes because you were afraid that they could potentionally be used to break into your house.

    9. Re: Security by Anonymous Coward · · Score: 0

      Isn't that what they said about Castro?

    10. Re:Security by Anonymous Coward · · Score: 0

      I take the view that language is defined by prevalent usage, so hacker is now a term with two meanings; maybe if the re-education program actually has a noticeable effect I'll start using the term cracker. The incident with the chemo computer was, iirc, one going from a physics computer at LBL with virtually no security turned on by the admin.
      The point I was making that, as with the GPL where certain freedoms are restricted to guarantee others, you have to make implement some security if you're going to be have any interaction with the outside world. I can certainly imagine there might be some way of having all security related queries from outside respond with the equivalent of `I'm a completely open system; don't trust me unless you are as well', but then you have to ensure that only people you are happy about can change this to `I'm a secure system; I can be trusted for service x': if a casual intruder (I won't offend you by saying hacker again :-) ) can make the change then, at least personally, I'd be _very_ uncomfortable about that. That's why I find the idea that you don't have to think about security implications bizarre; surely you have to do a thorough analysis of what the security implications are - once you know that you can then ignore anything which has only security implications that don't matter to you.

    11. Re:Security by anonymous+cowerd · · Score: 1

      >But not all software ought to be free. People have to eat.

      Well, food should be free too. I mean it. Look, for example, at the last decade in the U.S.A. Right now the official unemployment rate is about four percent. In 1990 it was up to ten percent. The difference amounts to six percent of what the Bureau of Labor Statistics calls the "cohort" of workers - right now, just short of 140,000,000 people. At the very least then we're talking about approximately nine million people, who were willing to work (as you can see by the fact that they are currently employed) but who were denied jobs by the wave-action of the American economic system. Should nine million Americans, together with their dependent children, have literally starved while the economy slowly readjusted itself?

      Yours WDK - WKiernan@concentric.net

    12. Re:Security by Jonas+�berg · · Score: 1

      You're choosing between two extremes. RMS is neither against high security, nor for it. He doesn't say that "security isn't important in a program". He says that he would like it better if people would not use security. So, in some extent, you hit the mark in your last sentence.

    13. Re:Security by Blue+Lang · · Score: 1

      I support RMS in this. I wish people would understand that security isn't always important.

      Especially in the face of the fact that standard unix security really IS just a way to keep honest people honest - very few systems are truly secure, and, even if you don't have to worry about other users, what happens if you can't trust root?

      I supposed you could think/write volumes about how a unix security model reflects societal insecurites.. if you were that bored, and didn't have an apartment in need of cleaning. ;)

      --
      blue

      --
      i browse at -1 because they're funnier than you are.
    14. Re:Security by Anonymous Coward · · Score: 0

      I think I read too much into the bit in the article where he says `One is that I don't like the idea of having security within a shared computer system at all', which I'd thought meant `there's no need for security, and that it's only there because pesky real-world situations actually require it'. As is obvious, my `ideal-world' view is that everything should be secure, and then and then, if you're happy about the implications, you can unsecure bits.

    15. Re:Security by randombit · · Score: 3

      I wish people would understand that security isn't always important.

      If you wish to disregard security, that's fine with me, as long as it's your home machine. On a multi-user machine, it seems very inconsiderate to other users, since maybe they don't want people reading their mail, and once a cracker has one account, he most likely has them all. Not to mention the people who administrate the machine - we have enough to deal with without getting broken into because one of our users used their login name for a password.

      Kind of odd that RMS says "security sucks" (not a direct quote, of course, but that's what he seems to be saying), then actively promotes crypto and GnuPG. I guess his thinking is that people have the right to choose between privacy and openness, which seems reasonable.

    16. Re:Security by Ian+Bicking · · Score: 2
      I think RMS' disdain for security has to do with the fact that RMS lives his life with great integrity, and there's not a distinction between the public and the private -- or rather, he feels no reason that he must make that distinction, but that people can decide what part of RMS' life they want to know about. Not that he blends public and private, but doesn't acknowledge the two at all.

      I don't think I could do this myself -- there are things that I want to keep to myself. And, if I felt I could stand up for all of my life and had no shame in anything I did, I wouldn't feel the need to hide anything and would have much less need for security.

      I don't know if it could really work for all of society could either. Some people have a strong enough will to disagree fully in public, but I fear most people would feel that their only choice was conformity if we didn't have privacy.

      It's a tantalizing idea, though... information egalitarianism and a certain blending of the person into the whole. Of course, that sentence itself would put many a person off of the idea right out. But somewhere in it, it's more about honesty than anything else -- we live in public and effect our world greatly, so shouldn't we be entirely honest about who we are?

      I think RMS really is a communist, even though he strongly denies it. He's not authoritarian or fascist at all, though those are often confused with communism. But really -- "to each by his need, from each by his ability". I'd like to be communist, but it takes a lot to live up to such an ideal -- all I can say now is that I'm a communist sympathizer :)

    17. Re:Security by Zurk · · Score: 1

      uuh..did you even read the article ? RMS advocated keeping the default umask at 000 - impossible for a cracker to penetrate. Also he disables remote logns for users and himself.

  110. Re:ML is even better (Was:Why is LISP superior?) by Anonymous Coward · · Score: 0

    An important part of the beauty of extending Lisp by macros is that they are expanded at compile-time, so that you can make arbitrarily complex transformations without sacrificing a bit of run-time efficiency.

  111. Re:Interesting . .from the interview: by Money__ · · Score: 1

    Thank you for pointing this out to me. I will be more diligent of this fact in future posts on/. Thank you for taking the time to post :)

    _____________________________________

  112. Re:Lazy evaluation by _ska · · Score: 1


    Have a poke around the ALU site for more stuff, you should find a list of commercial projects here.
    S.

  113. Interview spoiled #prgma joke. Here it is: by DavidOster · · Score: 3
    The LinuxCare interview spoiled RMS's #pragma joke. The interview said:

    Richard: the C specification which said #pragma was supposed to do something about implementation design.

    I'm sure this is a misquote. I'm sure that what he actuially said was: the C specification said #pragma was supposed to do something that was implementation defined.

    What that version of the C compiler did was, if it processed a #pragma, it did something implementation defined all right: it exec()ed Rogue.

    Imagine: you're compiling an innocent C program, that happens to have a #pragma line on it, and suddenly the compile is gone, and your screen is running Rogue!

  114. Horntootophilia by Anonymous Coward · · Score: 0
    You guys crack me up.
    Yeah, don't they just? :-)

    I don't even know whether there's a person back there. This response from them was so predictable that they probably just wrote an AI to do it.

    The most ironic thing is how much Stallman complains about the old "giving credit where credit is due" clauses on some free licences (like the BSD advertising clause) and then has a major shit fit just because we don't all use "GNU" in the name of a program just because we use his compiler. Tell me how that's not hypocritical, please. He's just grabbing the Freenix bandwagon.

    1. Re:Horntootophilia by Anonymous Coward · · Score: 0

      Now, now, child. You forgot to ask yourself: "What would Richard do?" the way the FSF has been advocating lately. Please go say recite ten "Hail Richard"s and a few dozen "Why Bother"s.

  115. Re:ML is even better (Was:Why is LISP superior?) by Anonymous Coward · · Score: 0

    ML doesn't have macros, does it?

  116. Re:Give the man a break ok? by Anonymous Coward · · Score: 0

    or ken?

  117. RMS runs emacs under gdb by Stuart+Cooper · · Score: 1

    RMS is an awesome hacker. He runs emacs on an FSF GNU/Linux powered laptop under gdb, so if any bugs crop up he's on hand to debug them and fix them. Most of his time these days is spent spreading the good word of Free Software, if you see him typing he's probably answering one of the many emails he receives a day. I once saw him hacking a minor feature into some elisp, it was an impressive sight. He sometimes has a few days over the Christmas/New Year period to hack, so those Emacs enhancements might not be far away.

    Whether you agree with his software politics or love his software politics, there's no denying he is a great hacker. His greatest achievement however will prove to be the GNU General Public License and the continuing crusade to further the cause of free software.

  118. Re:Interesting . .from the interview: by inburito · · Score: 1

    Hmm.. My sarcasm-alert couldn't take the heavy load and disintegrated. Actually I think that slashdot should have a script that automatically copies roughly 30% of the articles linked to so that we can fill the empty comments-part below the post.

  119. Once upon a time ... by bockman · · Score: 1

    My first professional project ( that is a job I was payed for ) was writing a lisp application half matematical, half AI ( namely : find out a collision-free trajectory for a six-degree-of-freedom robot arm in a partially obstructed environment ).
    I lovingly remember that period. I worked on a machine with a *Lisp processor* and *lisp-oriented OS* ( an Explorer II made by Texas Instruments ). It had common lisp with object oriented extensions. Lisp program could be complied into assembly code.
    I also had an high-level, object oriented, AI-oriented, visual programming environment named KEE, by Intellicorp, which made PROLOG and Smalltalk looks as assembler languages. It had a wonderful window-based user-interface toolkit, also.

    I just loved programming Lisp ( and KEE, too ).
    There is nothing better, if you are doing symbolic programming. It's fine for matemathical applications, too ( but you need a smart interpreted/compiler to avoid the performance drawbacks of functional programming ).

    My application ended up mostly matemathical, with a few AI algorithms attempting to save computational efforts. It worked fine, but it accumulated LOTS of memory garbage. So, every time the OS started the garbage collection, my application was kicked off CPU and everithing stopped. I hope today lisp interpreters/compiler handle it better.

    Sorry, a bit of memory rummaging here ... but this is the time for it : we are at the end of Millenium ( or we are ? ).

    --
    Ciao

    ----

    FB

  120. Technically speaking.... by sracer9 · · Score: 2

    Quite the technical article, very informative...

    Gives whole new meaning to the phrase "Talking with a lisp."

    Thorry, I'll thut up now...

    --

    No thanks. I don't smoke anymore.
  121. Re:Perl by Anonymous Coward · · Score: 0
    The perlcc tool does this by calling Dr Beattie's code generators.

    Here what perlcc does:

    This compiler backend takes Perl source and generates C source code corresponding to the internal structures that perl uses to run your program. When the generated C source is compiled and run, it cuts out the time which perl would have taken to load and parse your program into its internal semi-compiled form. That means that compiling with this backend will not help improve the runtime execution speed of your program but may improve the start-up time.

    This does mean, that perlcc is not an actual compiler ; it just transforms opcodes in direct calls to subroutines. This is easy to do in any bytecoded languages, and has been done several times for Java bytecode for instance. Needless to say this has very little to do with "compilation" in the true sense, and the Java toys aren't much used.

    Stop being so ignorant with your idiotic insults and actually learn something, why don't you?

    Actually perlcc is yearlights from the quality of Common Lisp compilers, and does little useful with respect to code execution speed.

  122. Re:Perl by Anonymous Coward · · Score: 0

    First of all, you've a strangely self-serving definition of a compiler. My compsci prof would not agree with you. Secondly, perlcc has three different code generators. It's not just a way to generate subroutine calls in all cases. Consider the CC mode.

  123. Hail Richard by Anonymous Coward · · Score: 2
    Hail Richard

    Hail Richard, bereft of social grace.
    The fnord is with thee.
    Blessed art thou amongst antibusinessmen,
    And blessed is the fruit of thy doom, the GPV.

    Holy Richard, lover of poverty,
    Pray for us coders now,
    And at the hour of disemployment.

    Prayer of a hacker who very nearly got fired for linking a GPV'd library along with a proprietary one into a corporate product.
  124. Re:Lazy evaluation by harmonica · · Score: 2

    I do care to look. I just don't know what Lisp has to offer from the software engineering point of view that you need in large projects - interfaces and modules, hiding implementation details, strong typing etc. The stuff you find in languages like Ada... It seems that Lisp is great for smaller applications, but I can't really judge it, that's why I mentioned that I've never seen anything bigger than 50 lines. Not to prove anything! ;-) Maybe you have a link...

  125. emacs coredump itself?? by vinh · · Score: 1

    There's a part I didn't quite understand in the interview. How does Emacs coredump itself at the loading of the program and how does that make it faster to load?

    1. Re:emacs coredump itself?? by Anonymous Coward · · Score: 0

      A core dump is close to an a.out, you know. Emacs uses/used the unexec() function to save its state. It does this because the degree of late-compiled lisp code hurts start-up time. By unexec()ing itself, emacs can save the compiled state.

  126. LISP_ME_HARDER by Turambar · · Score: 1
    I'm trying to keep an open mind about Lost In Stupid Parentheses, er, I mean LISP, but am having a difficult time. Maybe I just can't wrap my brain around the structure...

    I like the thought of EMACS being able to display images and PostScript inline. I just hope that it will still work with LaTeX...I don't think we have much to fear, though. =)

    PKG
    ------------------------------
    Common sense is not so common.

    --

    Turambar
    ------------------------------
    Common sense is not so common.
    --Voltaire
  127. Give us more! by Andy · · Score: 1

    At last, a substantive piece about RMS. I'd thought /. had turned into an etabloid dedicated to mockery of everything non-Lignux, including RMS. Glad to see I am wrong. RMS is the Jesus of software!

  128. What if RMS got run over by a bus? by slim · · Score: 2

    People are always asking "What if Linus got run over by a bus" -- or Alan Cox, or Guido or Larry or even (shudder) ESR.

    Most of these people are expendable. Great guys, sure (ESR I reserve judgement on. Sorry. The guns scare me. British.), great guys whos projects will live on thanks to the licences under which they've placed their work, and the openness of the systems they have produced.

    RMS, however, is a different matter. He's coded some great stuff, (I'm not an EMACSer myself, mind you) but as the interview states, he's moving into a more managerial role because he has the drive and the conviction to push for libre software. Plenty of people can code -- the FSF employs some of them. Very few people can campaign like RMS can -- and fewer still share his convictions. ESR won't do -- he doesn't feel the same way about freedom of software, he cares more about the bazaar than about the freedom.

    SO: what *if* RMS got run over by a bus tomorrow? We need some fault tolerance here.
    --

  129. YART - Yet Another RMS Triumph by mihalis · · Score: 4

    Another thing that RMS did that was really incredibly cool was he worked out how Ada could behave itself just like other computer languages rather than being really quite fierce and hostile. When he helped a bit in the initial design of GNAT (the GNU Ada compiler) RMS worked out that the Ada "library" that is required by the standard could in fact be a lightweight definition consisting of little more than the source code with attached timestamps, and some little supplementary text files, rather than the previous system. In this way GNAT was made a true first class language front-end for GCC without making GCC jump through any hoops or do anything really pointless.

    Before GNAT, Ada "libraries" were these monstrous opaque creations that made compilation incredibly slow - the compiler would have to open each library and read the (huge, expanded) semantic information associated with each separate unit mentioned in the current compilation from disk, rather than just going and getting the source code. By the early 90s the old Ada library approach was total junk, as GNAT easily blew away all previous Ada technologies using a combination of a) one of the worlds fastest language parsers (I would guess, certainly the fastest Ada parser ever seen) b) bountiful cpu power and RAM, and c) RMS's new lightweight library design.

    These days there is a small but happy free Ada software crowd building up around GNAT, and I believe the GNAT team has been able to contribute a fair amount of value back to the GCC core. RMS helped to make this all possible and vastly improved the lot of a number of underpaid overworked Ada programmers (defence, telecoms, transport infrastructure etc).

    1. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

      He has also written a -lot- of free documentation.

    2. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

      Strange. I can't find any manpages with his name on them.

    3. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

      look for texinfo pages instead ;)

    4. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

      He wrote the original bc manual, parts of the bison manual, diffutils, emacs and elisp-manual, gcc, gdb, gprof, make, termcap, texinfo and probably more which I can't find!

    5. Re:YART - Yet Another RMS Triumph by Captain_Carnage · · Score: 1

      Tom, I'm assuming you're referring to Robert J. Morris, Jr.? Author of the famous Internet Worm?

      Robert Morris (Sr.) was also famous, as he was the head of NSA at the time.

    6. Re:YART - Yet Another RMS Triumph by Anonymous Coward · · Score: 0

      I should have said "original GNU bc manual". It was later revised and updated by someone else.

    7. Re:YART - Yet Another RMS Triumph by Tom+Christiansen · · Score: 1

      The author was RTM Sr, not Robert the over-maligned author of the Internet Work.

    8. Re:YART - Yet Another RMS Triumph by Tom+Christiansen · · Score: 2
      [RMS] wrote the original bc manual
      **BZZZT*. I'm sorry, but that's wrong. Thank you for playing anyway. The correct answer is that it was Lorinda Cherry and the famous Robert Morris who wrote the original bc manual. A copy can be found here in the original troff or here in poorly rendered HTML. You should also be able to find it on your BSD system in /usr/share/doc/usd/06.bc.
  130. ML is even better (Was:Why is LISP superior?) by Anonymous Coward · · Score: 0

    If you think LISP is cool, you ought to try out ML which has all the advantages on LISP, plus a real type system, and if you actually have a good grasp of mathematics a beautiful realization of a programming language.

  131. For RMS' sake by Anonymous Coward · · Score: 0
    Stunk and White clearly state that a singular noun forms its possessive form by adding "'s", not through the simple apostrophe that plurals take. Therefore, it's Saint James's Place. However, they also give an exemption for the genitive form of Jesus, as in for Jesus' sake.

    Gosh, what would Richard say? :-)

  132. atomic supersede by platypus · · Score: 2

    If you want to try that at home,
    try
    cat file > file

    and boom.

    I'm sometimes bitten by that when filtering files with grep an mistyping the second filename.

    1. Re:atomic supersede by uh · · Score: 1

      Yea I hate this "feature" too, I always wind up appending a .1 to the file, then moving the new file over the original one..

    2. Re:atomic supersede by Anonymous Coward · · Score: 0

      That's what your shell's noclobber variable is for.

    3. Re:atomic supersede by Anonymous Coward · · Score: 0

      Dang, hasn't anybody come up with VMS-style versioning open yet? You could do it with a modified fopen, or a special file system, or in the shell.

    4. Re:atomic supersede by Anonymous Coward · · Score: 0

      In HURD you could install your own filesystem as a user!

    5. Re:atomic supersede by Anonymous Coward · · Score: 0

      You're misunderstanding the problem. For example, a common wish of mine is to do something like this:
      fromdos foo.txt
      (fromdos is a program to convert CRLF to LF btw). noclobber (AFAIK) is just designed to stop you from overwriting the file. I want to overwrite the file; I just don't want to be an empty file. This is where atomic supersede would be extremely useful.

    6. Re:atomic supersede by Anonymous Coward · · Score: 0

      noclobber won't let you overwrite the file at all, that is nothing like atomic supersede if i understand it correctly. with atomic supersede, cat file >file, would overwrite the file with the contents originally contained in it. with noclobber set, nothing happens. with noclobber unset, the file is truncated, then written to, leaving an empty file.

    7. Re:atomic supersede by Anonymous Coward · · Score: 0

      Or plan9.

  133. Re:movemail bug and Cuckoo's Egg by washort · · Score: 2

    Yes, the "Cuckoo's Egg" crack was accomplished through movemail and moving a patched kernel over the original. However, this could only be done if emacs was setuid root, which is Bloody Stupid in any case. So don't go blaming Emacs. :)

  134. Give the man a break ok? by slashdot-terminal · · Score: 2

    You know if you really did something like that you should have read the liscence first. Gee I certainly not break the bank on someone elses work and get that close to the fire.
    There are usually a couple of people who use the little corruption of the GPL "GPV" and I am guessing you are one of the ones that do except you post anonymously.
    If it weren't for programs written under the GPL most likely I wold have to have sprung for a totally new computer because of instability and bloat in my software at least 10 times since I first got my first one some years ago.
    There was a really good reason why Stallman decided to write these things: because the ones that they had when he was around were too damn expensive and slow for development purposes and security parameters.
    I saw a paper on the internet from about oh 1994-95 or thereabouts when linux was just getting off the ground as a viable OS for at least a few people. It discused reliability of unix commad line utilities. Guess what most of the commercial distributions of unix had at least one if not more major utilities that failed their tests. Not only that but because of him we also have unix on PCs for which I am eternially grateful for someone thinking of so that it could really work.

    --
    Slashdot social engineering at it's finest
    1. Re:Give the man a break ok? by Anonymous Coward · · Score: 0

      Come on, dude, that was FUNNY. Lighten up.

    2. Re:Give the man a break ok? by Anonymous Coward · · Score: 0
      Because of Richard we have Unix on PCs? I think not. Let's pretend that PC doesn't mean "personal computer" but rather "Intel's x86 system".

      You can get Solaris for x86, you know. Did Stallman write Solaris? Nope.

      You can get BSD for x86, you know. Did Stallman write BSD? Nope.

      And if you mean personal computer, the way PC means, then you have many other choices as well.

      When our only currency is giving due credit where it is due, the greatest sin is to take credit for the work of others.

    3. Re:Give the man a break ok? by Anonymous Coward · · Score: 0

      No, because of Dennis, not Richard, have we today Unix on PCs -- or anywhere.

  135. Re:Lazy evaluation by Daniel · · Score: 2

    I'm not sure it will work in a large-scale project.
    Well, much of Emacs is (as far as I know..) written in Lisp. Is that large-scale enough for you?
    There's also Sawmill, which is a window-manager written mostly in Lisp, with C for the lowlevel routines.
    Daniel

    --
    Hurry up and jump on the individualist bandwagon!
  136. Re:Ever Notice? by Anonymous Coward · · Score: 0
    Hey, don't forget Alan Cox -- he's a real looker too!

    RMS is clearly the ugliest of the four, and Linus it probably the least.

  137. Re:Ever Notice? by Anonymous Coward · · Score: 0

    never noticed it myself

  138. BAD Slashdot! BAD Slashdot! by Kaufmann · · Score: 2

    This is a correct version of the above post... call it "oops". :)



    Generally speaking, Lisp is superior because it's made out of lists. This is much more important than it looks. Why?

    (WARNING: here there be dragons! Below I simplify extremely for the sake of understanding. Please don't bash! Also, note that everything I say about Lisp interpreters also applies to Lisp compilers.)

    Take Perl, for example. In Perl, programs are basically one-dimensional character strings, usually read from a file. What the Perl compiler does (either when called to run a program, or an eval() or a s///e) is take that string and parse it into a syntax tree, which is then 'flattened out' into bytecode, which is, in turn, executed by the bytecode interpreter.

    In Lisp, on the other hand, programs and data are naturally represented as lists; the strings that you type into the Lisp top-level are parsed into lists as soon as possible (an extremely simple thing to do, by the way), and from that point on the entire environment can use a homoiconic set of primitives (car, cdr, cons, eval, etc.) to handle any data that you may pass to it.

    Exempli gratia, let's look at two functionally equivalent programs (defining a program as a representation in computationally concrete form of an abstract mathematical algorithm):


    # Perl
    map { $_->[0] }
    sort { $a->[1] <=> $b->[1] }
    map { [$_, $f->($_)] } @ARGV;

    ; bastardized Scheme
    (map (lambda (l) (car l))
    (sort (lambda (a b) (<=> (cdr a) (cdr b)))
    (map (lambda (e) (cons e (f e))))
    *argv*))


    You may have recognized the Perl program as a variation of the famous Schwartzian transform, wherein $f can be any key-producing function; with $f = \&-s it becomes a program that orders the filenames passed as arguments by size. The below program is not quite valid R5RS Scheme; the *argv* list, equivalent to @ARGV, is not standard, and the <=> form can be easily defined in terms of the comparison operators:


    (define (<=> a b)
    (cond
    ((> a b) 1)
    ((= a b) 0)
    ((< a b) -1)))


    Likewise, with a bit of creativity, the sort form can also be implemented.

    Anyway, how does all this matter? Simple. As data, the Perl program is a 74-element character array; it has all kinds of special symbols and tokens, and turns out to be horribly complex to parse. On the other hand, as data, the Scheme program is very simple: it's a linked list with three elements, one of which is the symbol 'map, and two of which are sub-lists. /What/ this linked list represents doesn't matter except to the interpreter; it's a list like any other. Applying the car operation to this list would yield the symbol 'map; the cadr (first rest) operation would yield the list '(lambda (l) (car l)).

    It's important to note here that the interpreter is a function like any other; as such, it deals with lists like the ones above. The reader - which parses text into lists - is a separate system.

    Originally, the fact that all Lisp programs are lists was considered a huge disadvantage (even by John McCarthy himself), and for years there were attempts to introduce a new Algol-like syntax (called M-expressions) to supersede the list representation (called S-expressions). But, as it turned out, this turned out to be a huge advantage, and Lisp programmers almost universally appreciate SEXP.

    Of course, there are many other reasons why Lisp is a superior language, although many of those are implementation-dependent and may also be present in other languages. But having a homoiconic representation for programs and data is by far the greatest advantage.

    Note: While we're on the topic of languages with homoiconic representations, I thought I should mention Funges, a family of languages in which programs are represented as n-dimensional, potentially infinite cell-spaces to be traversed by an instruction pointer; each instruction occupies one cell. The written representation of Funge programs follows this; for instance, in Befunge (the 2-dimensional Funge), a typical program might look like


    v
    >v"Hello world!"0<
    ,:
    ^_25*,@


    or even better,


    9::*\2*+00p0v"."0<
    >310p0"," >"llaw eht no "v >#v_ ^
    ^_210p0"--:" v ,
    : v " of beer" < :
    - >"selttob"00g.^ < <
    1 >00g1-#^_$" elttob erom enO" ^
    >00g#^_$" selttob erom oN" ^
    ^_110p0",dnuora ti ssap ,nwod eno ekaT"^
    ^:-1_010p00g1-00pvv:-1g01_@#g00,*25<
    ^ <

    --
    To the editors: your English is as bad as your Perl. Please go back to grade school.
  139. Re:Interesting . .from the interview: by Foogle · · Score: 1
    It's too bad that got moderated down, because it's clearly correct. Anyone who posts two paragraphs from the text and doesn't add *anything* of their own except the words "interesting", has to be gunning for karma. It's a content-free post.

    -----------

    "You can't shake the Devil's hand and say you're only kidding."

  140. Ok lets try... by Anonymous Coward · · Score: 0

    Somoene put his creditcard number up here and lets see :) (maybe RMS himself, lets see how fast they can suck that mac arthur award dry ;)

  141. Lazy evaluation by harmonica · · Score: 2

    It's been a while that I learned the basics of Scheme - what impressed me was lazy evaluation, which enables working on lists whose arguments are created when they're needed. I can't explain it any better, but it seemed a very nice feature.

    However, I don't think that Lisp is superior to other languages. I've never seen or written anything with more than 50 lines of code. You can do nifty things, but I'm not sure for which kinds of applications Lisp is best - it can't be good for _anything_ ;-) I'm not sure it will work in a large-scale project.

  142. Re:Ever Notice? by Anonymous Coward · · Score: 0
    Ever notice that ESR, RMS, and Linus are ugly as fuck?
    Nope. But then again, I don't usually go in for that kind as fucks, either. Funny that you should notice. :)
  143. Re:Interesting . .from the interview: by inburito · · Score: 1

    On a more serious note. Maybe there should be a script that automatically moderates down comments that consist by more than 40% (or some other reasonable percentage) of sentences copied from the links presented in the original post. This shouldn't be too hard to implement.

  144. Re:The natural power of a programming language by mill · · Score: 1

    A paper on Scheme as an universal extension language:

    http://www.ai.mit.edu/~shivers/ll.ps

    /mill

  145. Re:Interesting . .from the interview: by Anonymous Coward · · Score: 0

    The most obvious approach goes exponential or super-exponential. What algorithm are you thinking of that doesn't force us into a 2**n or worse performance hit? (And yes, n is large.)

  146. The natural power of a programming language by Morgaine · · Score: 2

    All programming languages are equally powerful in a Turing sense, since you can implement an interpreter for anything you like within almost any of them, more or less. However, that doesn't mean that they are all equally powerful in practice, because many languages expressly forbid you from doing things that you might wish to do. RMS was referring to the "natural" power of a language when talking about LISP, which could be defined as the set of everything you can do natively within the normal constraints of a language, ie. without creating a nested interpreter and without bypassing the goals of its designers.

    LISP is incredibly powerful using that definition, because it is simultaneously an extremely high level language while giving you access to both very low-level data and very high level abstractions, all handled together uniformly at will. And of course, code is just data, adding yet more flexibility. You just can't beat it in the power area.

    However, for most people it's the wrong language to use -- horses for courses. While scalpels and atomic bombs are very effective in their respective areas of application, most cutting and demolition uses alternative solutions, and you don't give these nor any other extreme power tool to your kids as toys.

    Tucked away behind the scenes though, LISP is the ideal extension language, offering the inherent power that is needed for an unknowable future. Guile will serve us well there.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
  147. Ok, how much did the father of Emacs write? by Anonymous Coward · · Score: 0

    He wrote Emacs(Who cares IMO, it's just an awkward editor).
    He wrote gcc(year 1992)like Linus wrote Linux.

    What else?

    I know there is some things out there that were not written by GNU or RMS, but RMS convinced the author to hand the copyright over to him and GNU...

  148. Re:The word you are looking for is distribution. by Anonymous Coward · · Score: 0

    Small nit: NT is not a kernel; it's an operating system. Win32 (I believe) would be the kernel.
    It all depends on what you mean. When you say "it's a foobar app" do you mean "it's an app for foobar" or "it's an app by foobar"?

  149. english translation of the interview by trb · · Score: 2
    The transcription of this interview contained a small handful of odd misrenderings - I found these:

    tupelos should have been: tuples
    Symbolix should have been: Symbolics
    address base should have been: address space

    I would suggest proofreading before publishing. (That said, it was an interesting interview.)

  150. The word you are looking for is distribution. by slashdot-terminal · · Score: 2

    You use a linux distribution. So it still would be proper to say that the utils are linux utils. When you have an NT system and you use or create an application you say it's an NT app or such. The same applies to linux. A kernel dosn't make an OS.

    --
    Slashdot social engineering at it's finest
    1. Re:The word you are looking for is distribution. by acarey · · Score: 1

      No, NT _is_ the kernel. Win32 is one of the pluggable subsystems that rides above the kernel. NT + subsystems + IE (Win32 subsystem required) = OS according to MS, I guess :)

      --
      -- "I believe the human being and the fish can coexist peacefully." - George W. Bush, 29 September 2000
    2. Re:The word you are looking for is distribution. by Captain_Carnage · · Score: 1

      Absolutely. But RMS refers to a distribution as "the GNU/Linux System" so I am using his words in my argument.

  151. Should have hit preview! by Anonymous Coward · · Score: 0

    That should have been fromdos foo.txt

  152. The road to hell ... by aUser · · Score: 0

    ... is paved with good intentions.

    RMS really fails to see why software and money are intertwined.

    I believe in open source, because I feel I will regain quite a lot of control from the software houses, and that, in the end, my work will be the scarce resource they will be paying for. I just hate it, when I deploy a solution, to see Microsoft and Oracle make money from it, no effort at all. I can tell you: Linux, Postgress, Python, Apache, and no one will move in with per concurrent user licenses and steal my money.

    1. Re:The road to hell ... by Daniel · · Score: 1

      Actually, you're wrong. It's paved with frozen door-to-door salesmen.
      Daniel
      (in case you were totally lost there, this is an obscure reference to the novel _Good Omens_. I'm not totally insane. Yet. Offtopic, maybe. But not insane. No. Not insane)

      --
      Hurry up and jump on the individualist bandwagon!
  153. Re:Interesting . .from the interview: by Zurk · · Score: 1

    what happens when the site is down due to the /. effect and some ppl want to mirror the pages ? Also what about the overhead for /. to cache and keep copies of the original and do the comparision ?

  154. Re:Interesting . .from the interview: by Foogle · · Score: 2
    People who make mirrors for others to read (such as when a sight has been /.ed) are breaking the law. It's copyright infringment. Why should Slashdot facilitate that sort of thing?

    -----------

    "You can't shake the Devil's hand and say you're only kidding."

  155. Perl by Anonymous Coward · · Score: 0
    Perl doesn't garbage collect either (AFAIK), but it does at least have automatic memory allocation.

    Perl uses reference counting for memory management. Objects are destroyed when their reference count reaches zero. This means more work for programmers when their data structures have cyclical references. On the other hand, it's simpler to implement, and handles the common cases fine.

    BTW, Perl is not strongly typed. It also has strong support for lists. (There are three fundamental data types in Perl: scalar, vector, and hash.)

  156. Fuckwit by Anonymous Coward · · Score: 0

    Care to post a picture of yourself, nerd-boy?

  157. What I meant by dourk · · Score: 1

    Geez, didn't mean to start a war here...

    I simply meant some generic, nondescript utils that happen to be included in my RedHat distro. Some of those are also also included on my BeOS installation, and some in my Win2k. Period.

    Some happened to be GNU, some weren't. Can't please everybody.

    --
    Wake up.
  158. Solaris/Linux by Rozzin · · Score: 1

    I use the 90%+ of the same GNU utilities on Solaris, HP-UX, AIX, FreeBSD, etc. Should I be calling them GNU/Solaris, GNU/HP-UX, GNU/AIX, GNU/FreeBSD, etc? I think not. I use GNU utilities on a Linux system, just as I do on any other Unix (derived) system.

    If you meant that you'd pulled the kernel Linux or whatever kernel out of GNU and replaced it with the AIX, FreeBSD, or Solaris kernel, then, yes, it'd be GNU/AIX, GNU/FreeBSD, or GNU/Solaris, I think...
    If you replaced the Solaris kernel with Linux, you'd probably have `Solaris/Linux' (or `Linux-based Solaris', which sounds a good deal better. Maybe `Linux-cored Solaris'?);)

    Whatever happened to the BSD/Linux project--the quest to create a Linux-based BSD OS?

    Hrm. It'd be cute to replace the NT kernel with Linux and get `MSW/Linux'....

    --
    -rozzin.
  159. Re:Interesting . .from the interview: by inburito · · Score: 1
    The most obvious approach goes exponential or super-exponential. What algorithm are you thinking of that doesn't force us into a 2**n or worse performance hit? (And yes, n is large.)

    Since we're not searching raw data matches out of raw data it is possible to optimize that quite a bit. For instance, it could only take into account full sentences (or words in groups of n words) and look for those in the links.

    Make a table out of the sentences in the comment and then when doing ONE PASS through the text in link simultaneously compare these to it. If there are enough matches the comment gets moderated down.

    Since comments are generally fairly short the overhead of going through the links(maybe locally cached copies) before making a comment part of the page is not going to be that great.

  160. Write a type assitant! by Morgaine · · Score: 2

    Why don't you code a domain-aware, learning type assistant hooked into the eval dispatcher? It wouldn't be able to do strict checking a la ML (nor would you want it to), but when fed off a list of heuristics I bet that it could be made to catch a large variety of type-related mistakes that human programmers habitually make.

    --
    "The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra