Stallman: Screw Child Rearing; Contribute to Emacs!

That’s one thing about the Open Source movement that’s always troubled me. It’s not just a movement that deals with software and computers, but somehow its followers seem to have been drawn into it for other political, religious, and social reasons. I could never put my finger on what it was that was going on exactly, but I always got the impression that these people “weren’t like me.”

A recent spate of rants sheds some light on to the issues that play into this dynamic. Richard Stallman essentially slams a coworker because his family commitments were going to interfere with the development of Emacs. Now a geek being rude is not a new thing… but the reasoning of geeks coming to the defense of another rude geek can get pretty frightening. Easily the most insightful comment came from Paul Prescod: “If there exists any universal value system that would justify any of the screaming one way or the other in this thread, it surely includes the component that a father has a responsibility to his wife and daughter that takes precedence over his volunteer activities.”

So who is this guy that combines empathy with strong reasoning skills? And more importantly… what language does he program in?? A quick google and I see that Paul Prescod is author of a book on XML and codes in Python. I like his quip that he refuses to become proficient in “indecent” languages. And in spite of his professional accomplishments, he has never forgotten what it was like to be a kid with an 8-bit computer and nothing but a basic manual to go on. He states his dream for the future of programming and computing thusly:

“My dream is a world wherein all but the very lowest levels and tightest loops of programs are written in a language that is so simple that it can be taught in primary school as a first language; where every word-processor user who can write a macro can at least try to dive into their word processor’s source code to fix a bug, because the macro language is also the implementation language.”

But this of course sounds a lot like Small talk. As Mark Miller has noted, “what Smalltalk, and especially Squeak, has achieved that no other system has achieved to date, with the exception of the Lisp machines of old, is a symbolic virtual machine environment that is more relevant to its own use than any other run-time environment out there.”

And of course, this brings us back to Lisp. Pretty much all the arguments against Lisp I can set aside, but I still have one of the “if Lisp is so great” type of worries hanging on. If Lisp is so great… then why don’t we have an operating system written in the language?

My guess as to the answer to that is that its Richard Stallman’s fault. Yeah, C and Unix are the ultimate viruses that propagate against all of our better judgements, but Emacs is just good enough that its not worth the effort. As Dave Roberts says, “having everything integrated, editor, Lisp system, and application, is powerful. While it can’t quite match up to the power of a full Lisp machine, you can begin to realize some of the potential.” Too bad the platform is run by a guy that has little sympathy for average developers that go home at 5PM to assist in child-rearing activities….

11 Responses to “Stallman: Screw Child Rearing; Contribute to Emacs!”

  1. Zach Beane Says:

    >If Lisp is so great… then why don’t we have an operating system written in the language?

    If the past and current Lisp operating systems don’t qualify, I think you’ll have to be specific about what an operating system is to you.

  2. lispy Says:

    I was thinking something more or less like Linux, but being Lisp “all the way down.”

    Past Lisp operating systems don’t count unless I can boot one up today. Emacs may well be a passable “operating system,” but I always understood that to be a tongue-in-cheek criticism and not a statement of fact. (Are you saying that Emacs really is an operating system?)

    A bootable CD-Rom “PCLispyOS 2007” is more what I had in mind.

  3. Mark Miller Says:

    @Lispy:

    What’s really striking about Edward O’Connor’s post is how many people agreed with Richard Stallman’s position in the comments. It certainly doesn’t sound like Stallman was just having a bad day either. This is his genuine belief: reproducing causes damage to the Earth. Wow. Reminds me of V.H.E.M.–the Voluntary Human Extinction Movement. This animation spells out their world view pretty well. It was produced by VHEM. Then there’s this guy who gives me the creeps. Stallman is definitely not the only brainy guy who believes this stuff.

    I see your point about a Lisp OS. I was going to suggest that the older Lisp machines definitely had operating systems written in Lisp, but I see you’re talking about the present. I’ve checked up on what the Lisp community is doing from time to time. One Lisp project I saw the last time I checked was for developing a Lisp OS. I can’t remember what it was called though. I have no idea what condition it was in either.

    I want to give you a gold star for your quote from my article, because it’s a great reinterpretation of what I was saying. I was talking more about Squeak and Smalltalk VMs being like operating systems in and of themselves, but it applies just as well to what Prescod said!

    One of the visions that Alan Kay had back when he wrote about his Dynabook concept in the early 1970s was similar to what Paul Prescod said. He wanted people to have the ability to create their own programs on personal computers (before personal computers were realized in the market), and he wanted to create a language that was simple enough yet expressive enough so they could do that easily. Smalltalk was his answer. He took inspiration from several sources for the language design, but for VM features and language syntax he was inspired by Logo and Lisp. He attributed Smalltalk and Lisp’s demise to the 8-bit personal computers that were ultimately produced at the time, which had bad hardware architectures and could not run Lisp or Smalltalk, for all practical purposes.

    I looked at some BSD Logo examples recently and I was struck by how similar Smalltalk’s syntax is to it. I remember programming in Logo in junior high, but I didn’t make the connection to Smalltalk.

    Kay’s intentions would’ve fit very well with what Prescod says here:

    My primary criteria for decency—whether in programming languages, markup languages, or graphical systems—is scalability. By scalability, I mean two things: the ability to scale from easy to difficult problems and the ability for beginners and experts to be comfortable.

    Kay talked about software scalability here, and talks about why he thinks OOP, properly modeled, is an answer to that problem.

    When the Smalltalk system was built at Xerox the group that did it targeted it primarily at school kids, and they did have some school kids play with it over time as it was being developed. That’s the reason they built the GUI, used iconic images in the interface, and used a mouse. They realized by studying child behavior that children have a very strong visual sense, and want to play with and manipulate objects in their world. Ultimately this R&D they did ended up in the Apple Macintosh, which was adopted by schools. Ironically Smalltalk itself wasn’t adopted by schools when it was “released into the wild” in the early 80s, but instead was taken up by professional developers and used to build real world systems, some of which are still in use today. Prima facie evidence that the language system scales well. Squeak is another attempt to get the Smalltalk system into the hands of kids, and it looks like it’s having better success than the older system did. It’s mostly been adopted in some European countries, but I did hear recently that a school system in North Carolina will be using it as a way to encourage students to enter computer science. It’s being shipped with the XO laptop produced by OLPC, even though that’s primarily a Linux/Python-based platform.

    As I was reading his post I was wondering why Prescod feels its necessary to go to Python to get what he wants when there’s a system that’s been around for decades that already does what he wants. He answers that here:

    I want to briefly address another class of languages. Languages like Lisp and Smalltalk both tried, in their day, to be “for everybody.” Unfortunately, they have been rejected by programmers for years; and I do not see that changing.

    Smalltalk merged the dynamic nature of Lisp with the modeling capabilities of Simula. Python merges many of Smalltalk’s ideas with a syntax that is more likely to appeal to C, C++ and Java programmers. Computer Programming for Everybody must include them also!

    I think he was being a bit inaccurate by saying that Lisp “tried to be for everybody”. I’ve heard no such thing. Smalltalk, yes, but Lisp? Lisp was originally created by John McCarthy to explore some new computing ideas. It was later implemented as an S-expressions parser. Hardly a “natural” language, and I don’t remember it ever being offered as an educational language either, except for Logo, which is Lisp expressed as M-expressions.

    I agree with him in the sense that I think that the popular languages are converging to where Lisp and Smalltalk have been for years, but they won’t look like Lisp or Smalltalk. Instead when this ultimately happens they’ll look more like C/C++ in syntax. I think that culture of “what code looks like” is pretty ingrained.

    Anyway, I can definitely sympathize with Prescod when he said he didn’t want to become fluent in “indecent” languages. I am fluent in those languages he mentioned, except for Perl. It’s what I built my career on, but frankly I’d like to leave them behind. I’ve become disillusioned by their flaws in design.

    BTW, Re: C and Unix being a virus, check out The Unix Haters Handbook. There’s a PDF version of it here. It was written in the early 90s by several people, some of whom had the fleeting opportunity to use Lisp machines before they were replaced by Unix. The first chapter is called “Unix. The World’s First Computer Virus”. 🙂

  4. lispy Says:

    Lisp wasn’t built for “everybody”. It was more of less an application of the axiomatic method to programming languages. It began life as a proof itself… or a means of proving things about algorithms– and it just happened to be really useful. This makes it the only discovered (not invented!) programming language… and therefore (by definition) the only beautiful one. If we met an Alien civilization, they just might be programming in a lispy language, too….

    Oh… and about Logo. It kills me that the language isn’t taught in schools anymore. They just do “practical” stuff with Java or Microsoft Office nowadays…. (Sigh.)

  5. Mark Miller Says:

    @lispy:

    Oh… and about Logo. It kills me that the language isn’t taught in schools anymore. They just do “practical” stuff with Java or Microsoft Office nowadays…. (Sigh.)

    I think Office is okay for writing papers, and learning to use a spreadsheet and database. I had a course like that in junior high, though Office didn’t exist then. We used AppleWriter (I think) on the Apple II for word processing (which wasn’t that great), and VisiCalc for learning spreadsheets. That was almost the state of the art at the time. We were taught about databases, but only using a very simple one. We didn’t learn about relations. It was just a simple file-based, indexed database that looked up records using keywords.

    What’s depressing is to hear you say they’re just doing “practical” stuff in Java. I remember when programming classes were fun and challenging. Maybe this is the reason CS enrollment is dropping off in college.

    Incidentally I didn’t get the full Logo education, as I recently found out. I was taught the language, and we used it to learn procedural programming. We’d package code up in procedures and then call them to do stuff. The real education with Logo was learning as kids how to solve hard problems with it. I remember I was taught how to draw a circle in Logo, but we weren’t taught why it was valuable to draw a circle that way. I didn’t learn until college, listening in on a casual conversation between a student and a professor, that drawing a circle that way was actually implementing a form of Calculus.

    There’s a blog posting I saved a while back called “Whither high school computer science?”. Quoting from it:

    Last year, when I finally decided that I wanted to pursue a career in computing and programming, I decided to take the AP Computer Science class my high school offers (skipping Computer Science I, which uses Visual Basic 6). Though I had heard bad things about Java in the past, I figured it couldn’t be all bad – after all, in order to get kids excited about CS, they wouldn’t teach in a crappy and flabby language, would they?

    Well, they did.

    I remember in the 1990s people raising the alarm about not enough people taking CS. I said it then, I say it now: make computing FUN in school, then people will want more of it. They can discover that computing can be tedious and boring later, after they’ve gotten their training. :/ Though hopefully they’ll choose careers they’ll enjoy.

    What you say reminds me of a brief conversation I had with a school kid 8 years ago. I can’t remember which grade he was in. He might’ve been in middle school. He said that his computer classes were boring, and that all the teacher showed them was how to send e-mail using AOL. I was struck by a vision of an uninspired computer classroom, and I felt sad for the kid, like he was being cheated.

    There’s an article here where Alan Kay is critical of the state of computing education in schools today. It kind of reflects how I feel about it. Quoting from it:

    Virtually all learning difficulties that children face are caused by adults’ inability to set up reasonable environments for them. The biggest barrier to improving education for children, with or without computers, is the completely impoverished imaginations of most adults.

    Q: Why hasn’t educational computing lived up to the potential that you and Papert saw in the 1960s?
    A: Don’t even worry about computers yet. When did math and science actually start becoming important for everyone in our society to know? Probably 200 years ago. Now think about how poorly math and science are being taught in elementary school today. So don’t even worry about computers; instead, worry about how long it takes for something that is known to be incredibly important to get into the elementary-school curriculum. That’s the answer. Of course it’s taking forever—because the adults are the intermediaries, and they don’t like math and science.

    So computers are actually irrelevant at this level of discussion—they are just musical instruments. The real question is this: What is the prospect of turning every elementary school teacher in America into a musician? That’s what we’re talking about here. Afterward we can worry about the instruments.

  6. lispy Says:

    I remember my middle school computer class: there was something there about a test on the history of computers where you had to memorize stuff about Charles Babbage or something.

    There was some Basic coding on Apple ][ green screens… and our teacher was really old. Somebody wrote a program to make the Apple beep every 10 seconds or so. The teacher would try to find the computer causing the noise… but the program would be running on four or five different computers at once!

    I don’t recall ever being asked to use the computer to solve a problem in school.

  7. Mark Miller Says:

    I don’t remember much about the programming course I took in junior high. Mostly I remember using Logo, but I’m sure we did more in BASIC on the Apples. Funny I don’t remember most of the BASIC stuff we did. Maybe we just did the fundamentals in BASIC like conditionals and loops, and then to actually do interesting stuff we moved on to Logo. As I recall we did some drills in Logo, and then the teacher just had us create our own drawings in it. He would just judge whether we had done something unique. Those were neat. I still remember a bit about that.

    I do remember our teacher brought in a BASIC type-in program (a sheet or two of paper with code on it) that we typed in and ran, and it was a text-mode game. It may have been called “Snake”. You were a ‘V’ character that grew from the middle of the screen to the top (looking like a snake), travelling down a track that scrolled from the bottom of the screen to the top. It would weave back and forth, and gradually got narrower the longer you lasted. It had collision detection so when you collided with the side of the road the game was over. It scored you on how long you lasted. We played around with it some, creating a few new versions of it to make it harder.

    I think those sorts of things are some of the best assignments, just saying “take these elements and experiment with them”, letting them basically come up with their own problems to solve.

    We had written tests to make sure we were learning the fundamentals.

    Most of what I remember about my computer use then was coming up with my own projects. I may have mentioned this to you. I wrote a series of programs to do Mad Libs on the Apples, not as part of the class, just on my own time. That was my major project then.

    We had a couple of really smart kids who hung out in the lab regularly, and they were right in there programming the computers in hex. I always admired them for their courage and skill. I was too afraid to go down to that level. I think I got intimidated by its lack of limits and how cryptic it was. I didn’t get introduced to assembly language (which was nicer to deal with) until college. I was scared of it at first, but it turned out to be not bad at all.

    The story of the prank with the teacher reminded me of a couple pranks I did on mine. I wrote a little joke program to clear the screen and print “Apple ][” at the top to simulate it booting up. My program didn’t run the drive. On some rare occasions something would go wrong with a computer so I figured I could pull this off. I called over to the teacher saying, “Hey, something’s wrong with my computer.” He took the bait. He saw the screen, saw the disk drive wasn’t running, looked around in the back to make sure the disk drive was hooked up. He got this puzzled look on his face. I decided to have mercy on him, hit CTRL-Reset and revealed I had faked him out with a 1-line program. 🙂

    I also came up with a bunch of tiny programs that just did simple stuff. One I think I called “shutter” printed a bunch of “inverse” lines on the screen and then scrolled them to the top, so it would look like a white shutter closing and opening over and over again. The computer lab was usually open for an hour or so after school. One of those days the teacher was out of the room for a while and there was no one else there. So me and this other kid decided to put the “shutter” program on all of the computers except one. The Apples had a version of Eliza written in BASIC with a graphic image of a “psychologist” face in low-rez. It would come up with the face and an intro. message in the text window that went something like, “What’s your problem? Please talk to me about it.” We put that on the last computer. We took a moment to admire our handiwork, seeing the “shutters” flowing randomly up and down, with “Eliza” just sitting there, and then we left. Happy times. 🙂

  8. lispy Says:

    The developer staff at the last company I worked for pulled a similar trick on the network engineer.

    We took a screenshot of the classic MS “blue screen death” and then made it the desktop wallpaper for the company’s primary server. We then set the desktop to hide the task bar and all the other desktop crap. Then we logged out….

    So then our project lead calls “Bob” down: “Oh crap… we have a major problem down here!” He comes in and the rest of the developers are all complaining about not being about to work because the database is gone….

    So he goes over to the server and logs in… and gets the fake blue screen. I think he shut down and rebooted a couple of times, cursing constantly.

    At this point we can’t keep from sniggering and it starts to dawn on him that we’re screwing with him. The boss walks in and asks, “what’s going on, guys??” At which pont, “Bob” takes the keyboard, drop kicks it, and then storms out of the room!

    The boss was like: “Uh… guys?”

  9. Mark Miller Says:

    Gosh, that guy had no sense of humor. Kind of sounds like he didn’t have a good relationship with you guys, and/or he wasn’t that experienced.

    It’s funny the way everything worked out. Right out of a sitcom. 🙂

  10. pozorvlak Says:

    [Lisp] began life as a proof itself… or a means of proving things about algorithms– and it just happened to be really useful. This makes it the only discovered (not invented!) programming language… and therefore (by definition) the only beautiful one.

    Actually, the genesis of APL was remarkably similar, and happened at about the same time (APL-the-paper came before Lisp-the-paper, IIRC, but Lisp-the-implementation came before APL-the-implementation).

  11. Timbo Says:

    [ If Lisp is so great… then why don’t we have an operating system written in the language?]

    http://common-lisp.net/project/movitz

    Or do you mean something productive? Last I checked, it was still in the getting basic hardware support.

Leave a reply to Timbo Cancel reply