The reality of Stefan Scholl

"I hope there's pudding"

Want to learn programming or just another programming language?

PLT Scheme is a nice implementation of the Scheme language. The upcoming version 4.0 will include many things that make programming and learning to program easy.

The Tour in Video announces a 10 minute short YouTube video showing the programming environment DrScheme (belongs to PLT Scheme). This beats SLIME, IMHO.
Tags: Scheme, Lisp

Common Lisp gives Perl 6 wings

See Perl 6 to machine code via Common Lisp and sbcl:

KindaPerl6 is a self-compiling compiler written in a subset of Perl 6 with support for multiple emitter backends. [...] now the Common Lisp backend is getting up to speed.

Tags: SBCL, Perl, Lisp

How to install SBCL on MacOS X

$ sudo port install sbcl

(You need MacPorts for this, of course.)

Tags: SBCL, Mac, Lisp

Everybody talks about Arc again

Arc walks the blogosphere again.

The LtU article and comments on show that there's still some interest in the topic. Although we have all waited a very long time.

Arc currently powers a spam-filter and Y Combinator's Startup News, some kind of clone.

John Wiseman says "I used to think people working on new Lisp-like languages were misguided, but after internalizing the idea that Common Lisp is static, and therefore dead, I'm a lot more sympathetic."

I don't think Common Lisp is really dead. People use it for new projects and new libraries. ASDF wasn't there 10 years ago and all important implementations support it. Many libraries and tools became a de facto standard you can use with your favorite implementation.

Dead relatives shouldn't be the only reason to design a new programming language (or new variation of an existing one).

Paul Graham sure likes Lisp. He wrote books about Common Lisp and his financial success is based on it, too. He doesn't seem to be a language zealot as he speaks positively about Python and uses MzScheme for developing Arc. The Lisp family can be sure to gain a fine, new member. Not a black sheep from "misguided people".

Tags: Lisp, Arc

Programming Language Harmony

You can find some snippets to make Python work with Haskell on PythonVsHaskell.

The code is for Windows, but it shouldn't be difficult to adapt this to Unix.

Finding this on a X vs Y page gives you some hope in humanity again. :-)

In the real world it isn't about which one is the ultimate programming language. When you think beyond this, you can choose more freely and combine the best of all the available tools for the job.

OCaml and Ruby can live together, too.

Even Common Lisp and Java can be used in one project without causing a rift in reality: CLiki page about Java

Lisp is mentioned in Practical OCaml

In the second paragraph of the first chapter of Practical OCaml you can read

OCaml is not a popular language in the way that Java is a popular language. Flame wars rarely break out over non-Lisp languages that are not in the mainstream.

I can't describe how proud I am. :-)

Tags: Lisp, OCaml

The Month of the Hunchentoot

Edi Weitz asked if people would be interested in using Hunchentoot (a web server implemented atop of TBNL) in Common Lisp implementations other than LispWorks.

A few weeks later the Month of the Hunchentoot began. :-)

Tags: TBNL, Lisp

I don't care


Tags: Lisp

Imagine Common Lisp's CPAN variant is down and nobody cares

Javier asks in his post <> on comp.lang.lisp what's happening to The site is down.

And about two days later there's no information in the newsgroup comp.lang.lisp or on Planet Lisp. No blog mentions anything.

It's like nobody really cares. But is heavily used for "Common Lisp's answer to CPAN", ASDF-Install.

I'm guessing there are just some technical problems and danb has enough to do to fix it. So I don't want to critize him or anyone else who is helping to fix the problem, instead of writing about it in his blog or on the news.

But it's still very strange. A central point of the community is out of order. And nobody cares.

That's sad.

Tags: Lisp

Some crazy guy announced a Python implementation in Common Lisp!

Willem Broekema announced CLPython in his news posting <> today.

That's really crazy shit! (Meant in a good way! :-)

A Python implementation in Common Lisp. At the moment it's Allegro only, but in the future we could perhaps compile CLPython with Python to run Python ... (CMUCL's compiler is called Python, too. :-)

Sound's like fun.

By the way: There's a similar approach called Python-on-lisp. This project uses the real Python and builds a bridge to it.

Tags: Lisp, Python

Reddit is talking about Lisp again

People use the opportunity to write about their feelings regarding the "Lisp community" in the comments of one post.

The post is currently on the front page of And rising.

Tags: Lisp

CL-EMB 0.4.3 released

Current version 0.4.3 of CL-EMB now uses the faster file slurping function from and got a new template tag @insert

I fixed an example for generator loops in the README

Tags: CL-EMB, Lisp

SBCL 0.9.10 will be able to create executable binaries

From the NEWS file in the current CVS version of SBCL:

Tags: Lisp

Oh, boy. EbOY switched to WordPress.

Former Common Lisp figurehead EbOY has switched to WordPress.

I'm awaiting EbOY clones any second now … :-)

Tags: Lisp

The Task at Hand

One reddit user really had some problems with my last blog entry Don't say "no"!

In the comments on reddit he was obsessed with the four little words "the task at hand". I was giving a bad advice by letting a programmer choose his own tools to do his work.

As if a programmer can't think for himself. When you don't have any additional budget at all and you think Delphi would fit the current problem, then you are out of luck. You have to pay for Delphi. Same goes for some other tools. So you have to find another way to solve your problems.

There's a strictly Java only policy at the shop you are working? Don't waste your time thinking about how cool it could be to quickly code something in Ruby.

But when the only reason holding you back using Common Lisp is the doubt if other programmers could pick up when you leave, or support you in maintaining the code …

Brian Mastenbrook wrote it in "Can someone else work on your code?":

I work with a large Common Lisp codebase at work, and I'm often surprised at how easy it is to maintain and make changes to even the "bad" parts of the code.

And I would go further: It's not only easy to maintain the code, it is also easy to learn by reading and modifying given code.

Set up a working environment and maybe point to Lispbox if they want to try it at home, too. Give them a copy of Practical Common Lisp and a week time and the co-worker or successor will get around the first shock and accept Common Lisp. Don't expect them to love it — so you don't get disappointed for them not getting as excited as you are for the language.

The task at hand? When to choose Common Lisp?

I'm not telling. It's your job. You know the facts and all (or most of) the variables to consider. Not me. Trying to force Common Lisp on you as the perfect tool for every problem doesn't help anybody. Even if it is the perfect tool.

Tags: Lisp

Don't say "no"!

Lisp is for the mediocre programmer, too.

(Based on my posting <>)

Every now and then I read a Usenet posting or blog entry about the somewhat frightening question from management: "Will someone else be able to work on your Common Lisp code?"

Then most people explain why they had to say "no".

You all know the reasons why they think they have to give this answer. But are the reasons really valid?

I don't think so. It is the job of a programmer to work with different tools. Programming languages are such tools, among others. It is expected that a Java programmer can learn the Eclipse IDE within a few days even if he was a long time user of Netbeans. A programmer has to use many tools he wouldn't choose by himself. Do you think most of them really like writing their e-mails at work with Outlook? :-)

Common Lisp is one of the tools that are available. If you think it fits the task at hand then use it. Chances are good you are no wizard, guru, demi-god. Just a person who does his job. You were able to learn Common Lisp and so should be someone who doesn't have to go through the initial phase of a project in a new language. Everyone following you has better and more books, more libraries, a bigger community — Common Lisp has gained a nice momentum and more and more people use it just for fun and for work. Everyone following you can rely on your code. It is very easy to test and fool around with single functions of your program.

Common Lisp is for the mediocre programmer, too. A programmer bitching about the parentheses and refusing to learn something new or different, isn't a mediocre programmer. He is a bad programmer and a very bad employee. Who wants to employ someone who doesn't want to learn for and on the job? The manager/boss who asks you if someone can pick up or support your work when you choose Common Lisp is the same one who expects his staff to be flexible.

"No, I don't think anybody can be as good and flexible as me." is the answer you give when you say "no".

You all know the essays and rantings of Common Lisp users about how wonderful the language is and that you must one of the top programmers choosing it. They are wrong. All it takes is to be a programmer. Even if you are just mediocre.

OK, some programmers who just do their job don't learn programming languages just for fun. They don't have to be bad ones. Just the typical worker who doesn't want to be bothered with work related stuff after a day's work. It's sad but there are such people in every profession. But it's no reason to believe these people aren't able to learn Common Lisp just because they haven't thought of it themselves.

Tags: Lisp

Tip for users of Lispbox 0.7 for Windows: Upgrading from GNU CLISP 2.37 to version 2.38

Lispbox is used by people who want to learn Common Lisp, not how to manage their installation of the IDE and Common Lisp implementation.

So here are the simple steps you have to do if you want to upgrade your Lispbox 0.7 for Windows to GNU CLISP 2.38:

  1. Download current version from (I've chosen the version with readline and gettext.)

  2. Extract the directory clisp-2.38 to your lispbox directory.

  3. Copy the file lispbox-register.el from the clisp-2.37 directory into the new directory clisp-2.38

  4. Open the file lispbox-register.el (in clisp-2.38) with an editor and change the clisp-2.37 to clisp-2.38

  5. Delete the old directory clisp-2.37 or just rename the file lispbox-register.el in it so that it can't be found by emacs' start scripts.

You may want to start (double-click) install.bat inside clisp-2.38 to register the filetypes .fas, .lisp, .mem, etc.

Tags: Lisp

#+(and sbcl win32) 'heureka


As reported by Juho Snellman.

Tags: Lisp

Released CL-EMB 0.4.1 and CL-WIKI 0.0.2

I just released CL-EMB 0.4.1 and
CL-WIKI 0.0.2.

CL-WIKI uses
the latest release 0.6.0 of CL-WHO for which
I've supplied some patches. CL-WHO now can
produce old school HTML. Versions below 0.6.0 just generate XHTML.

There are several wikis for almost every web aware programming language.
Wikipedia has a
List of wiki software.
The sad thing about that list: There's just one wiki engine for
Common Lisp at the moment.

That's why I have started the project CL-WIKI.
Very, very simple at the beginning. But I hope to turn it into a wiki engine that can
compete with the existing ones.

You can help by subscribing to the mailing list
cl-wiki-devel and
discussing the future of CL-WIKI.

Tags: CL-EMB, Lisp, CL-WIKI

CL-EMB 0.3.0 - Generator loops

Released version 0.3.0 of CL-EMB. One of
the new features are generator loops. On every iteration a

generator function is called.
See the announcement for more information.

Tags: CL-EMB, Lisp

TBNL 0.3.12 released

Edi Weitz released

TBNL 0.3.12 two days ago
It now has a special variable *HTTP-ERROR-HANDLER* (defaults to NIL) which can
hold a function designator to an error handler for HTTP
errors like the 404 Not Found error.

In the following example a simple error handler just handles the 404 error. Every other error
returns NIL and TBNL takes over. The function could
emit some explanation about the site's structure or just show the wrong part of the URL and make fun of
the visitor. :-)

(defun http-error-handler (code)
"Return content for error output of HTTP error CODE."
(case code
(404 (emb:execute-emb *fnf-error-template*
`(:code 404 :uri ,(tbnl:request-uri))))))

(setf tbnl:*http-error-handler* 'http-error-handler)

Tags: TBNL, Lisp

SBCL 0.8.20 released

Today version 0.8.20 of SBCL

was released. Much
was done and there was some discussion on the list when to turn to version number 0.9.

Tags: Lisp

Update day: CL-EMB, TBNL, mod_lisp, and SBCL

Today was update day. CL-EMB 0.2.1, TBNL 0.3.4, mod_lisp 2.41, and SBCL 0.8.17.

TBNL has fileupload now (since 0.3.1) and there aren't (m)any missing features left. Current versions of mod_lisp must be optained directly from the subversion repository. SBCL now has unicode support. But be careful and test your code!

Tags: CL-EMB, TBNL, Lisp


Released version 0.2.0 of CL-EMB yesterday and submitted it to Its project page looks cozy. :-)

Tags: CL-EMB, Lisp

CL-EMB 0.1.1

Released version 0.1.1 of CL-EMB today. Still a leading "0." in the version string.

Tags: CL-EMB, Lisp

CLSQL is nice

CLSQL is a really nice library to access SQL databases. I'm evaluating it for a project of mine and it's fun to work with. Instead of fumbling around with SQL commands you create classes which get mapped into the database.

Tags: Lisp

CL-EMB examples

CL-EMB is still lacking a decent documentation. But hey, it's still version 0.0.3!

I've started a list of examples to accompany the ugly README file. Will be included in the next release.

Tags: CL-EMB, Lisp


CL-EMB has found a home at And the first user has sent a patch. Nice to know that some people aren't afraid of a 0.0.1 release. :-)

Tags: CL-EMB, Lisp

New template system with embedded Common Lisp: CL-EMB

Today I have released CL-EMB. It's a kind of combination of LSP (LispServer Pages) and HTML-TEMPLATE. You can embed Common Lisp (hence the name) into textfiles. Between <% and %> can be Common Lisp or special template tags like @if, @repeat, @loop, ...

It's in an early stage. Version 0.0.1. Needs a real documentation and lots of examples.

Tags: CL-EMB, Lisp