newLISP
“All profound and true things are simple.
Complexity is vanity.”
—Lutz Mueller, Creator of newLISP
How LISP Became New
Once upon a time, there was an unusual language born called LISP. LISP looked funny, so everyone made fun of her parentheses and weird way of doing maths (+ 2 (× 3 (- 9 4))). They thought LISP was stuck-up because really smart people invented her, and because these same smart people made some silly predictions about something they called “artificial intelligence” and how it was going to change the world. Unfortunately, poor LISP was rounded up along with the failed predictions of the AI gurus, and she was banished to reform school LISP Machines. LISP spent many years there, forgotten, barely able to make parens meet. Only a few dedicated and true friends of LISP continued to talk with her (which, of course, is the way a language lives), and the sound of LISPing grew fainter and fainter.
Over the years, many languages, methodologies, and orientations came, and most of them went. A few stayed around, though. Mostly lookalikes promising this or that “improvement” or having some methodology to sell. Most of their barking seemed to be over in the direction of a strange kind of programmer: a programmer programmer. These programmers program programmers to write programs for them all day long. They love languages that control what they program (programmers) and free them to do what they themselves are programmed to do (mix and match the output of what they programmed for the programmer programmer programmers over them). A language like this must, by its nature, be unforgiving and suspicious of your every movement. You do not talk with a language like this, so much as submit to its petty interrogations.
Programmers programmed in such a fashion must also sometimes change their orientation, and in extreme cases, even accept a new religion called a methodology. Methodologies have lots of rules and many contradictions, and the programmed programmers were always at the mercy of the high priests of the method. These priests kept preaching at the programmers about the “One True Way” of their orientation, even if the programmers were naturally of a different one. Many programmers found it impossible to change how they spoke and were sent away by the priests and programmer programmers, forced to repeat the whole sad process once again for a different set of priests and their matching set of programmer programmers.
Things continued like this for a long, long time, and hope for a language that would make programming fun again began to dim.
This is not to say that LISP hid herself away entirely. She made many appearances throughout these language Dark Ages. One role LISP still likes to play is Emacs Lisp, or Elisp for short.
Within the vast world of Emacs, they have been speaking LISP for longer than some remember. Elisp immediately set herself apart by having a “dynamic” nature (scope) rather than a “static” one, like the next two languages to be heard over the din: Scheme and Common Lisp.
Scheme is the wild one. Always “scheming” about new ways of doing this or that. She is the minimalist, keeping herself fit and trim. Scheme believes the smaller the core, the easier to learn.
Unfortunately, as is always the case in life, the people of LISPdom could not agree upon what a “proper” LISP actually is. Many said that Elisp’s “dynamic” nature made her untrustworthy. Others said that Scheme always had her head in the clouds (too academic). Always though, the people pointed at Elisp’s and Scheme’s “ugly” parentheses and “weird” way of talking, even going so far as to make up a singsong about the curse of having to go to the dentist and get parentheses!
Which brings us to Common Lisp. More of a myth, really (a specification), Common, or CL for short, began making big noises about how he was going to be everything to everybody. He said, “I’ll take this ragtag bunch of misfits and make something respectable out of them!” He built a mansion so big he could never really find anything he was looking for anymore. And the truth is, the other languages didn’t think of themselves as “misfits,” but as having differing, but equally valid, views of the world. And they continued to be spoken, right along with CL and all his big plans.
These three LISPs (and many others, too shy to get themselves noticed much) continued to have conversations amongst themselves. They would argue about the best way to make themselves more like this or that language or how to bolt on some new method or orientation, until all of the languages began to look like patchwork copies of each other.
It was around this time that talk of an imaginary language began to be heard. This language was to correct all the mistakes of the other LISPs and to carry us away, arc-like, into programming paradise. Alas, this paradise—like most promised paradises—is a fantasy. But while the other LISPs were busy wondering and worrying about what the imaginary language was doing, a quiet, unassuming, little language grew older and more mature by the minute. Her name—newLISP.
You see, newLISP didn’t worry if anyone was paying attention to her or not. She just confidently went along, doing whatever it was she wanted to do. Not that newLISP isn’t open to suggestions. In fact, she has made many self-improvements based on conversations she had with programmers (the real kind). newLISP never needed a lot of makeup to look beautiful (she especially likes how her parentheses frame her code), and she knows a lot about the current state of computing. She even likes doing financial calculations just for the fun of it.
All newLISP’s qualities make her a great language, but what really makes her so great—the thing that makes you realize what has been missing in all those other languages—is that she is so easy to talk with. Just say anything, and before you know it, you’ll be saying things you never dreamed possible!
And those other languages? Well, we’ll have to wait and see. You can be sure, though, the other non-LISP languages will continue to make fun of LISP and wonder why anyone would want to talk with someone who speaks so funny and is as ugly as her (those parentheses!). And LISP will continue to wonder why no one wants to speak with her, even though she is so smart and interesting! And what about newLISP? She’ll just keep on keeping on, doing what she’s been doing all along. And that is, putting the fun back into LISP, and showing her how to become new again.
m i c h a e l
newLISP Movies
→ An introduction covering the basics of newLISP
→ newLISP contexts
→ An overview and demo of the gc script, which uses Google to count word occurrences
→ A preview of FontComp, written using GUI-server
→ Shell Games
→ What the FOOP? (an overview of the current state of FOOP)
→ newLISP contexts
→ An overview and demo of the gc script, which uses Google to count word occurrences
→ A preview of FontComp, written using GUI-server
→ Shell Games
→ What the FOOP? (an overview of the current state of FOOP)
newLISP Links
→ The official (I’m Lutz Mueller, and I approve this website) newLISP site.
→ unbalanced-parentheses, founded by Cormullion, is a blog where he shares his newLISP explorations!
→ Join the discussions at the newLISP Fan Club, where you will find patient and helpful responses to all your newLISP questions.
→ unbalanced-parentheses, founded by Cormullion, is a blog where he shares his newLISP explorations!
→ Join the discussions at the newLISP Fan Club, where you will find patient and helpful responses to all your newLISP questions.