From: Simon Brooke
Subject: Re: Why lisp as a web programming language don't get no (mainstream) love
Date: 
Message-ID: <156ud3-70f.ln1@gododdin.internal.jasmine.org.uk>
in message <·······················@z34g2000cwc.googlegroups.com>, Pieter
Breed (·············@gmail.com') wrote:

> It is my opinion that most of the webpages that advocate lisp as a
> web-development framework/language/tool/whatever suck (In terms of
> eye-friendly-ness). And it is /also/ my opinion that this is not
> because of any technical shortcoming.
> 
> When I look at these pages they all look like they have been developed
> with the use of one of a million html-as-sexp libraries. While I agree
> that it is really cool to "execute" or "run" html in you code, it
> really sucks to do any decent design with it this way. I mean, lets
> face it, the world's best developer is probably not the world's
> greatest web-designer too.
> 
> So, instead of /only/ flaming me, what advice can you give for doing
> this? Should I be using eval, to execute embedded lisp statements (as
> in ERb-style) or is there another way to do this kind of thing?

I learned my trade writing Lisp, twenty-mumble years ago. But when Lisp
machines effectively died in the marketplace, I moved to other
languages, as many Lisp programmers did; in my case, first to C and then
to Java. I started using server-side Java as a language to implement Web
systems in 1996. Now, ten years on, I'm revisiting a lot of my
technology decisions, and Java no longer looks like the right language
to use. The right language to use seems to me to be very Lisp like.

My arguments about this are here:
<URL:http://www.jasmine.org.uk/dogfood/story/article_42.html>

However, I don't of course, have either the time or the energy to build a
whole new software paradigm from the ground up, so what I'm in practice
doing is working very experimentally on a web-despatcher in CLOS. My
web-despatcher is essentially an HTTP enabled read-eval-print loop,
except that it's a read-eval-print loop with a very limited namespace
(you really don't want potentially hostile Web users to be able to
evaluate arbitrary SEXPRs on your machine!)

Having spent ten years building Web systems and in particular content
management systems I am utterly convinced of the merits of a rigid
separation between content and presentation. What the Lisp servlets will
output /should/ be pure content without presentation; the
presentation /should/ be applied separately (and, indeed, ideally
client-side) using XSL and CSS, both of which are genuinely good
technologies.

XHTML, and XML on which it is built, are simply SEXPRs. It's obvious when
using a language which handles SEXPRs to generate XML that you should
use a reader and a writer which translate the internal SEXPRs into
external XML. But you don't need the XML you generate dynamically to be
the final content rendered to the user.

Disclaimer: I'm not the greatest web designer, and I'm afraid that I tend
to hold soi-disant web designers in some disdain, although I recognise
that a tiny minority are good at their trade and produce something
useful.

-- 
·····@jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/

        to err is human, to lisp divine
                                 ;; attributed to Kim Philby, oddly enough.