Some more misc. Lisp queries

114 views
Skip to first unread message

Q u a s i

unread,
Aug 13, 2001, 3:03:06 PM8/13/01
to
Friends,
Thanks for helping me before. After some teething trouble I
have finally got Xemacs+ilisp+cmucl working together. I have a few
general questions regarding Lisp and developement with Lisp. I am not
asking how to do things (if you told me I would not understand most of
it anyway ;) ) but weather things can be done or not. Even answers in
y/n will do.

1. Can I write a commercial, say, Accounting package for Shopkeepers,
in Lisp? (I mean is it practical? because you all always talk about
complex and "introspective"(whatever that means) problems.)

2. I have been following c.l.l for the past two months and have
gathered that things like GUI, database connectivity etc. are possible
with lisp. But are they possible for a single person working (or a
very small group) or they are possible only for large projects with
lot of experienced programmers.

3. Given that I have a reasonable intellect ;) and I spend a good
amount of time playing with lisp, how long would it take me to learn
enough to start writing non-trivial programs? (a very vague question,
please bear with me). (The answer to this will be quoted to a group
of friends who I am trying to influence to start with Lisp ;))

4. I am stuck because of absolute lack of ideas of what small practice
programs to write (apart from the excercies in the book "gentle
intro...", which I am solving). Any pointers here?

All the above questions are dumb, I know. In the place I live, Mumbai
India, I do not know of even 1 lisp programmer (and I tried to find
out). And I find that this is _the_best_ place to ask all your
doubts.

Thanks for listening,
Quasi

Kent M Pitman

unread,
Aug 13, 2001, 3:23:16 PM8/13/01
to
quas...@yahoo.com (Q u a s i) writes:


> 1. Can I write a commercial, say, Accounting package for Shopkeepers,
> in Lisp? (I mean is it practical? because you all always talk about
> complex and "introspective"(whatever that means) problems.)

You shouldn't encounter any problem doing this, other than that you have
to be careful about figuring out a good representation for money, since
floating point in any language is not suitable. You probably want to build
your own money type, perhaps based on rationals.

> 2. I have been following c.l.l for the past two months and have
> gathered that things like GUI, database connectivity etc. are possible
> with lisp. But are they possible for a single person working (or a
> very small group) or they are possible only for large projects with
> lot of experienced programmers.

GUIs can beq utie easy to write. Franz has a GUI builder in its
application that is every bit as easy to use as, asy, Symantec Visual
Cafe. Xanalys LispWorks has a substrate that is equivalently easy to
program, though has no GUI builder; although missing this important
feature, the LispWorks substrate has the advantage of having both Unix
and PC implementations. I think the Franz one is PC-only, but I don't
keep current so you should check with Franz.

> 3. Given that I have a reasonable intellect ;) and I spend a good
> amount of time playing with lisp, how long would it take me to learn
> enough to start writing non-trivial programs? (a very vague question,
> please bear with me). (The answer to this will be quoted to a group
> of friends who I am trying to influence to start with Lisp ;))

Just start with non-trival programs. I odn't see why there should be a
wait time. Ask questions here if you get stuck. The whole point of
Lisp is to have a quick ramp-up time. Sometimes the syntax and set of
operators takes somet getting used to, but that's fairly independent
of application complexity. What gates application complexity is
usually understanding of the domain.

> 4. I am stuck because of absolute lack of ideas of what small practice
> programs to write (apart from the excercies in the book "gentle
> intro...", which I am solving). Any pointers here?

Why not just start writing what you really want to write and let that drive
your questions? Motivated questions are so much better than contrived ones.

> All the above questions are dumb, I know. In the place I live, Mumbai
> India, I do not know of even 1 lisp programmer (and I tried to find
> out). And I find that this is _the_best_ place to ask all your
> doubts.

A community has to start somewhere.

Thomas F. Burdick

unread,
Aug 13, 2001, 7:11:15 PM8/13/01
to
quas...@yahoo.com (Q u a s i) writes:

> Friends,
> Thanks for helping me before. After some teething trouble I
> have finally got Xemacs+ilisp+cmucl working together. I have a few
> general questions regarding Lisp and developement with Lisp. I am not
> asking how to do things (if you told me I would not understand most of
> it anyway ;) ) but weather things can be done or not. Even answers in
> y/n will do.
>
> 1. Can I write a commercial, say, Accounting package for Shopkeepers,
> in Lisp? (I mean is it practical? because you all always talk about
> complex and "introspective"(whatever that means) problems.)

Absolutely. All the potential pitfalls in writing it in Lisp exist in
C++ and Java (the most likely alternate candidates?), plus more.
Meaning, it's easier in Lisp.

> 2. I have been following c.l.l for the past two months and have
> gathered that things like GUI, database connectivity etc. are possible
> with lisp. But are they possible for a single person working (or a
> very small group) or they are possible only for large projects with
> lot of experienced programmers.

In addition to the commercial tools Kent Pitman mentioned, there are
also good Free options (though probably not as nice as the commercial
ones). You can use the clg bindings to GTK and Glade, and design your
interface in Glade, a graphical interface builder for GTK+. Caveat:
I've used Glade in apps I've written in C, and I've used the gtk
bindings directly from lisp, but not glade in Lisp, though it's
supported, so I imagine it'd work about as well as in C. Also, I've
quite enjoyed building interfaces with Garnet. GTK lets you deploy in
Unix and Windows (or, it should at least), and Garnet lets you deploy
in Unix and Mac.

Kyongho Min

unread,
Aug 15, 2001, 6:45:53 PM8/15/01
to

Q u a s i wrote:

> 1. Can I write a commercial, say, Accounting package for Shopkeepers,
> in Lisp? (I mean is it practical? because you all always talk about
> complex and "introspective"(whatever that means) problems.)

Why not? If you want to develop any web-based system, then you can do many

fantastic things with commercial version of Lisp.

>
> 2. I have been following c.l.l for the past two months and have
> gathered that things like GUI, database connectivity etc. are possible
> with lisp. But are they possible for a single person working (or a
> very small group) or they are possible only for large projects with
> lot of experienced programmers.
>

It depends on the project schedule. If the project should be finished in a
short time
(e.g. in my opinion, US $500K project needs 10 people for 12 months - if
you don't need documentation of the project, the number may be reduced.).
If you have enough time
to finish your project on time with a small number of people, then I
prefer a small group but you have to have some backup recources.


>
> 3. Given that I have a reasonable intellect ;) and I spend a good
> amount of time playing with lisp, how long would it take me to learn
> enough to start writing non-trivial programs? (a very vague question,
> please bear with me). (The answer to this will be quoted to a group
> of friends who I am trying to influence to start with Lisp ;))

When I did my master course in 1992, I didn't have any idea about Lisp
(Macintosh Commn Lisp). I didn't have any experience about programming.
After three months' playing with MCL, I implemented a system for my master
degree
(related to ungrammatical sentence recovery). If you have any background
of Comp.
Science, then you can do it in less than three months.

Enjoy playing Lisp ;-)

Marc Spitzer

unread,
Aug 16, 2001, 2:49:44 AM8/16/01
to
In article <3B7AFBA1...@aut.ac.nz>, Kyongho Min wrote:
>
>
> Q u a s i wrote:

[snip]

>> 2. I have been following c.l.l for the past two months and have
>> gathered that things like GUI, database connectivity etc. are possible
>> with lisp. But are they possible for a single person working (or a
>> very small group) or they are possible only for large projects with
>> lot of experienced programmers.
>>
>
> It depends on the project schedule. If the project should be finished in a
> short time
> (e.g. in my opinion, US $500K project needs 10 people for 12 months - if
> you don't need documentation of the project, the number may be reduced.).
> If you have enough time
> to finish your project on time with a small number of people, then I
> prefer a small group but you have to have some backup recources.

In my neck of the woods $500k(USD) is not going to come close to
getting you 10 people for a year, probably you can get 3-5 for a year
but not 10, unless you want to hire all college grads(AS and BS types)
who did not get real offers and hope for the best, if you are lucky.
Also remember the $500K also includes rent, phones, electric and other
stff needed to run a bussiness/department. I am from the New York
City area and things are expensive here. If you want 10 good people,
who are employes, then you are looking at around 150k per person/year
or $1,500,000 per year or more. If you get consultants things get
much worse.


marc

Bob Bane

unread,
Aug 16, 2001, 1:50:14 PM8/16/01
to
Marc Spitzer wrote:
>
>
> In my neck of the woods $500k(USD) is not going to come close to
> getting you 10 people for a year, probably you can get 3-5 for a year
> but not 10, unless you want to hire all college grads(AS and BS types)
> who did not get real offers and hope for the best, if you are lucky.
> Also remember the $500K also includes rent, phones, electric and other
> stff needed to run a bussiness/department. I am from the New York
> City area and things are expensive here. If you want 10 good people,
> who are employes, then you are looking at around 150k per person/year
> or $1,500,000 per year or more. If you get consultants things get
> much worse.
>
It is of course mandatory to say at this point that 3-5 Lisp hackers can
probably do the work of ten programers of normal competency in
{typical-procedural-langauge}.

--
Remove obvious stuff to e-mail me.
Bob Bane

Martin Thornquist

unread,
Aug 22, 2001, 6:54:04 AM8/22/01
to
[ Q u a s i ]

> 3. Given that I have a reasonable intellect ;) and I spend a good
> amount of time playing with lisp, how long would it take me to learn
> enough to start writing non-trivial programs? (a very vague question,
> please bear with me). (The answer to this will be quoted to a group
> of friends who I am trying to influence to start with Lisp ;))

With all the usual disclaimers of how this is subject to all kinds of
things, a number I've sometimes seen quoted is six months. When I
started learning Common Lisp I did it as a part-time job besides
studies, and I felt six months wasn't too far from the time it took me
to starting feeling relatively comfortable, not having to look up
things too often. I had experience (through studies) with an
assortment of languages beforehand, including functional, having
studied computer science for 3-4 years.


Martin
--
"An ideal world is left as an exercise to the reader."
-Paul Graham, On Lisp

Immanuel Litzroth

unread,
Aug 22, 2001, 9:49:54 AM8/22/01
to
> It is of course mandatory to say at this point that 3-5 Lisp hackers can
> probably do the work of ten programers of normal competency in
> {typical-procedural-langauge}.

I wonder if you have any serious study that backs this up. I am not
looking for anecdotical evidence or personal testimonies which are
highly suspect in view of psychological mechanisms such as
rationalization ...
Immanuel

Christopher J. Vogt

unread,
Aug 22, 2001, 9:54:23 AM8/22/01
to

Here is a link to something along the lines of what you ask for:
http://www-aig.jpl.nasa.gov/public/home/gat/lisp-study.html

Coby Beck

unread,
Aug 22, 2001, 10:11:48 AM8/22/01
to

"Martin Thornquist" <martin...@ifi.uio.no> wrote in message
news:xunsnek...@kerfasmidur.ifi.uio.no...

> [ Q u a s i ]
>
> > 3. Given that I have a reasonable intellect ;) and I spend a good
> > amount of time playing with lisp, how long would it take me to learn
> > enough to start writing non-trivial programs? (a very vague question,
> > please bear with me). (The answer to this will be quoted to a group
> > of friends who I am trying to influence to start with Lisp ;))
>
> With all the usual disclaimers of how this is subject to all kinds of
> things, a number I've sometimes seen quoted is six months.

Obviously a very subjective question with only subjective answers possible
but in the interest of encouraging people to give lisp a try I'd like to
balance that 6 months answer with my own.

I'd say a bare bones minimum of a few hours depending on one's experience
with programming and development environments in general up to a maximum of
a few days. This is how long it takes to learn enough to start writing
programs. The road to proficiency is obviously much longer and perhaps
never ending.

But really, you can start almost right away and just learn what you need as
you go. I think lisp is much more forgiving to beginners than any other
languages I have tried. The key is to be open minded and not afraid of
freedom.

Coby
--
(remove #\space "coby . beck @ opentechgroup . com")


Erik Naggum

unread,
Aug 22, 2001, 11:33:44 AM8/22/01
to
* immanuel...@hotmail.com (Immanuel Litzroth)

> I wonder if you have any serious study that backs this up. I am not
> looking for anecdotical evidence or personal testimonies which are
> highly suspect in view of psychological mechanisms such as
> rationalization ...

Instead of this before-the-fact-dismissal of something you may not like,
could you describe the criteria you would need to believe the claims?

///

Kaz Kylheku

unread,
Aug 22, 2001, 2:01:38 PM8/22/01
to

Preferrably not something along the lines ``the heavens would crack open,
and the truth would come straight from the mouth of God''. ;)

Erik Naggum

unread,
Aug 22, 2001, 4:38:42 PM8/22/01
to
* Martin Thornquist <martin...@ifi.uio.no>

> With all the usual disclaimers of how this is subject to all kinds of
> things, a number I've sometimes seen quoted is six months.

Are you sure that was for Common Lisp? I have heard 6 months for C++.

Whether you can start do something useful depends on what you want to do.
Some people want to write "applications" first thing, but they also think
that "hello world" programs are "applications". In Common Lisp, you can
start doing useful stuff essentially right away. It is even better than
Perl in this regard, which has been optimized for immediate gratification.
Nothing really beats a good interactive programming environment.

C++ gave me the incredibly painful fear that if I did not know exactly
what I was doing and all its ramifications, I would do something harmful.
I have never had that feeling in my entire life prior to working with
that abomination of a programming language back in 1993/94. It took me
six months to get a grip on that language at all, but I still fear its
complexity in that I never seem to manage to wrap my head around the
arbitrary insanity that results from wielding the blunt tool of syntax
where the fine instrument of semantics should have helped communicate
trust between programmer and system, which is probably why I cannot work
with Perl, either. C++ had me drown in an overpowering desire to fix the
clearly misdesigned and badly broken language before I could proceed. It
was only after tried to use it for real that I discovered that life is
too long to become good at C++: Imagine what I would have to do if I did.

Now, this was the time that I rediscovered Common Lisp for the umpteenth
time. Lisp has this "I have always loved her" appeal to me. Even before
I knew Lisp at all, I have thought in ways that are compatible with
Lisp's and I have found that Common Lisp is the language I wanted to use
to program. This has also been possible and realized. I believe it took
me about two years before I could confidently ask a client to use and
purchase a commercial Common Lisp system, but by then I was as fluent in
that system as I were with Unix after about five years. (I have been
using Unix systems since 1980.) However, I had been programming little
things for quite productive purposes on my own practically since the day
I made a decision to investigate it.

Now, it could well be that different languages are for different people.
Lots of other things are that way, so it would not really surprise me. I
think the key is to figure out if you _like_ the language the first few
months of using it. If you feel like redesigning it (which some people
in the Common Lisp community still do), maybe it is not for you. If you
feel like it takes _more_ than half a year for you to become proficient
in a language, maybe it is you, maybe it is the language, maybe it is
both, but I would argue that if you fail to get the hang of a language in
the _first_ month of using it and reading up on it and trying to use it,
break off and do something else. Even in your spare time and just for
fun, a month should be enough to cover at least 2000 pages of good books
and lots of material on the Internet. (Unfortunately, I have not been in
need of such things for the longest time, so I am unable to give valuable
pointers to beginners' material.)

In conclusion, I think the key is to figure out whether you are able to
_think_ in the language you are learning. This should not take too long.

///

Kent M Pitman

unread,
Aug 22, 2001, 6:14:46 PM8/22/01
to
Erik Naggum <er...@naggum.net> writes:

> ... I think the key is to figure out if you _like_ the language
> the first few months of using it. ... whether you are able to
> _think_ in the language you are learning. ...

Or, if you believe my "languages are political parties" pitch from
http://world.std.com/~pitman/PS/Lambda.html
another way of putting what Erik said (and said well, I thought)
is to say: figure out whether Lisp serves your political constituency.
Not every language will serve every person, just as not every person
has the same politics. For those it speaks to, I think the ramp-up
time is short; but for those who feel they must fight its style, it
may take longer--or forever--to really get it.

Immanuel Litzroth

unread,
Aug 23, 2001, 6:02:08 AM8/23/01
to
Erik Naggum <er...@naggum.net> wrote in message news:<32074832...@naggum.net>...

> * immanuel...@hotmail.com (Immanuel Litzroth)
> > I wonder if you have any serious study that backs this up. I am not
> > looking for anecdotical evidence or personal testimonies which are
> > highly suspect in view of psychological mechanisms such as
> > rationalization ...
>
> Instead of this before-the-fact-dismissal

I had read the nasa study, and sometimes refer other people to it but
I do not think it can count as more than anecdotical evidence

> of something you may not like,

I like lisp.

> could you describe the criteria you would need to believe the claims?

Several double blind studies would be nice, with different aspects of
programming languages studied (by different research groups preferably
not linked to a major computer corporation). Given the amount of money
that is spend on computing, studies like this by experimental
psychology departments might not be such a bad idea.
Everybody is claiming their product, favorite language or development
enviroment will "boost levels of productivity" but nobody offers any
evidence towards this.
People should be aware that the evidence of "their senses" is not in
any way proof of increased programmer productivity.
Immanuel

Tim Bradshaw

unread,
Aug 23, 2001, 6:18:58 AM8/23/01
to
immanuel...@hotmail.com (Immanuel Litzroth) writes:


> Several double blind studies would be nice, with different aspects of
> programming languages studied (by different research groups preferably
> not linked to a major computer corporation). Given the amount of money
> that is spend on computing, studies like this by experimental
> psychology departments might not be such a bad idea.
> Everybody is claiming their product, favorite language or development
> enviroment will "boost levels of productivity" but nobody offers any
> evidence towards this.
> People should be aware that the evidence of "their senses" is not in
> any way proof of increased programmer productivity.

I think another thing would be to actually consider what the various
`metrics' are, and whether they are in fact metrics at all. You see
too many studies which purport to measure something without ever
demonstrating that what they measure is a reasonable metric or whether
it correlates with anything useul. There was a discussion here about
LOC where I made this point, I hope, a bit more coherently (my brain
was less full of cold bugs than now).

In general I think the state of
measurements-of-almost-anything-associated-with-programs is medieval.
There are exceptions (some performance metrics for instance) but in
general things are done in a way more closely akin to religion than
science.

--tim

Erik Naggum

unread,
Aug 23, 2001, 7:06:16 AM8/23/01
to
* immanuel...@hotmail.com (Immanuel Litzroth)
> I like lisp.

Great. I like people who respond to whole sentences and keep the context.

> Several double blind studies would be nice, with different aspects of
> programming languages studied (by different research groups preferably
> not linked to a major computer corporation).

Yeah! Having a billion dollars of spare cash would be nice, too.

> Given the amount of money that is spend on computing, studies like this
> by experimental psychology departments might not be such a bad idea.

Use some of your spare billion to fund them.

> Everybody is claiming their product, favorite language or development
> enviroment will "boost levels of productivity" but nobody offers any
> evidence towards this.

Yes, they do. Your problem is that your requirements for accepting any
of the evidence constitutes a prima facie rejection of all evidence.

> People should be aware that the evidence of "their senses" is not in any
> way proof of increased programmer productivity.

"People" should be aware that the productivity of programmers vary by
three orders of magnitude within the same language. "People" should be
aware that some languages speak to programmers who think in them much
better than other languages. "People" should be aware that some people
do not stop to consider that _struggling_ and _pain_ are strong signals
from their environment to change theirs ways and means.

I predict that you will never see any difference at all in language or
programmer productivity because you have set your mind that the rules of
admission of evidence precludes what the industry can currently provide.
This "hunch" is why I asked you to explain your "requirements", which are
quite ridiculous given the world you actually ask to fulfill them.

///

Ola Rinta-Koski

unread,
Aug 23, 2001, 7:19:53 AM8/23/01
to
Erik Naggum <er...@naggum.net> writes:
> "People" should be aware that the productivity of programmers vary by
> three orders of magnitude within the same language.

"People" might also be interested in more anecdotal evidence, even
if it is just that - anecdotal.

Recently I was involved in a project where we had very little time
and had to build a working prototype with only two programmers, one
of whom had no real previous exposure to CL. (I was the other one.)
After the initial hurdle of awe and wonder, he was able to express
his thoughts in Lisp as if he'd never programmed in anything but.
I am quite convinced we would not have been able to meet the goals
using any other language/environment (though I must admit I am not
familiar with ALL of them).

If anybody is interested, the press release is at
http://www.cyberell.com/news/
--
Ola Rinta-Koski o...@cyberell.com
Cyberell Oy +358 41 467 2502
Rauhankatu 8 C, FIN-00170 Helsinki, FINLAND www.cyberell.com

Bijan Parsia

unread,
Aug 23, 2001, 10:07:20 AM8/23/01
to
On Thu, 23 Aug 2001, Ola Rinta-Koski wrote:

> Erik Naggum <er...@naggum.net> writes:
> > "People" should be aware that the productivity of programmers vary by
> > three orders of magnitude within the same language.
>
> "People" might also be interested in more anecdotal evidence, even
> if it is just that - anecdotal.

I think that's true, but it helps to 1) be specific and 2) avoid
"anecdotal" *conclusions*.



> Recently I was involved in a project where we had very little time
> and had to build a working prototype with only two programmers, one
> of whom had no real previous exposure to CL. (I was the other one.)
> After the initial hurdle of awe and wonder, he was able to express
> his thoughts in Lisp as if he'd never programmed in anything but.

This is, IMHO, ok, but a little vague. What I find more interesting to
people I talk to are things like:
1) How long it took to get up to speed,
2) How many LOC (though I tend to wonder why that's *so*
interesting, I mean, it's nice to get *some* idea of
the size of the project, however flawed, but..oh well
different rant :))
3) What kind of features were used (CLOS, MOP, Macros, etc.)
4) Looking at your press release, I see:

"The delivered prototype
was implemented from scratch in only two months and already now
outperforms the previous software package used in most cases."

That covers 1 and this one: the usefulness/suitibility of the
result.

(I notice your press release *doesn't* mention Common Lisp :))

5) I'm sure they're more :)

> I am quite convinced we would not have been able to meet the goals
> using any other language/environment (though I must admit I am not
> familiar with ALL of them).

This seems like a not-useful-to-say conclusion. At least in this form. Not
just because it arouses skepticism, but it invokes the "Turing
complete" cry (in some varients). Or people overstress the "we" part :)

(I take it that part of Eriks point is that the "suitibility to the
programmer" is a perfectly reasonable consideration. But if you are going
to stress that, then it helps to include *what kind of programmer* you
are. So too for "problem domain specificity". I.e., if a programming
language/system is well suited for a particular problem domain, it helps
to specify the domain and why it's so suited. etc.)

Hmm. Let me, with this final paragraph, say that this is the kind of thing
*I* want especially when I'm passing info on to the kind of people who ask
me about programming langauge choice. Be that as it may, it sounds like
you folks are having fun and doing good work, which is always nice to hear
about.

Cheers,
Bijan Parsia.

Immanuel Litzroth

unread,
Aug 23, 2001, 3:33:07 PM8/23/01
to
Erik Naggum <er...@naggum.net> wrote in message news:<32075535...@naggum.net>...
> * immanuel...@hotmail.com (Immanuel Litzroth)

> I predict that you will never see any difference at all in language or
> programmer productivity because you have set your mind that the rules of
> admission of evidence precludes what the industry can currently provide.
> This "hunch" is why I asked you to explain your "requirements", which are
> quite ridiculous given the world you actually ask to fulfill them.

A remarkable insight into my personality. I always ask for ridiculous
things in the most inapropriate places...
I would love to tell you about them, since you express an interest in
them, which almost nobody else ever does, but I fear we may be wasting
valuable bandwith, and maybe the good people on this newsgroup might
not be interested in them so you may want to continue this
conversation by email.
Thanks for the attention and hope to hear from you soon
Immanuel

Erik Naggum

unread,
Aug 24, 2001, 3:25:57 AM8/24/01
to
* immanuel...@hotmail.com (Immanuel Litzroth)

> A remarkable insight into my personality.

No, "into" your exposed behavior. To most people, there is a _major_
difference between who they are and what they do. If there is none to
you, I will consider this insight into your personality at your request.
Of course you had to go personal when you had nothing insigtful to say.

If you had at least managed to stick to your desire for information...

///

Ola Rinta-Koski

unread,
Aug 24, 2001, 6:04:58 AM8/24/01
to
Bijan Parsia <bpa...@email.unc.edu> writes:
> On Thu, 23 Aug 2001, Ola Rinta-Koski wrote:
> > "People" might also be interested in more anecdotal evidence, even
> > if it is just that - anecdotal.

> I think that's true, but it helps to 1) be specific and 2) avoid
> "anecdotal" *conclusions*.

Well, I don't have any scientific evidence to back up my views,
sorry about that.

> 1) How long it took to get up to speed,

On the order of a few weeks. Not more than two months, obviously.

> 2) How many LOC (though I tend to wonder why that's *so*
> interesting, I mean, it's nice to get *some* idea of
> the size of the project, however flawed, but..oh well
> different rant :))

The prototype is roughly 4 kLOC in size.

> 3) What kind of features were used (CLOS, MOP, Macros, etc.)

CLOS yes, MOP no, macros yes. The prototype was done using CMU CL
which, I believe, doesn't offer much in the MOP department. Not that
I am all that aware of the how's and why's of MOP anyway.

> (I notice your press release *doesn't* mention Common Lisp :))

That is because we're not trying to sell Common Lisp. We aren't trying
to hide the fact that we use CL either, as evidenced by
http://www.cyberell.com/company/technical.html

> This seems like a not-useful-to-say conclusion. At least in this form.

So do you have any suggestions how to improve the form then?

> Not just because it arouses skepticism, but it invokes the "Turing


> complete" cry (in some varients)

All claims of this kind invoke the Turing completeness strawman from
people who don't know any better. Turing completeness is so
completely beside the point it's not even funny anymore.

> Or people overstress the "we" part :)

Well, obviously there are things you need before you can expect to
get any real benefits from Lisp. The willingness to learn it being
one of them.

> (I take it that part of Eriks point is that the "suitibility to the
> programmer" is a perfectly reasonable consideration. But if you are going
> to stress that, then it helps to include *what kind of programmer* you
> are.

See above. If you have a background in some other language, there's
a lot you have to unlearn. Not everybody is ready to do that.

> So too for "problem domain specificity". I.e., if a programming
> language/system is well suited for a particular problem domain, it
> helps to specify the domain and why it's so suited. etc.)

The domain specific programming language you write with Lisp is
obviously very well suited to the problem.

> Be that as it may, it sounds like you folks are having fun and doing
> good work, which is always nice to hear about.

That is exactly what we aim to do, and it does feel that way from
time to time...

Pierre R. Mai

unread,
Aug 24, 2001, 7:38:37 AM8/24/01
to
Ola Rinta-Koski <o...@cyberell.com> writes:

> > 3) What kind of features were used (CLOS, MOP, Macros, etc.)
>
> CLOS yes, MOP no, macros yes. The prototype was done using CMU CL
> which, I believe, doesn't offer much in the MOP department. Not that
> I am all that aware of the how's and why's of MOP anyway.

Minor nit: CMU CL does provide more or less the full complement of
things described in AMOP, although there are two or three syntactical
pitfalls you have to be aware off. If one takes a bit of care, it is
quite possible to write MOP code which is portable between the major
implementations, including CMU CL.

Regs, Pierre.

--
Pierre R. Mai <pm...@acm.org> http://www.pmsf.de/pmai/
The most likely way for the world to be destroyed, most experts agree,
is by accident. That's where we come in; we're computer professionals.
We cause accidents. -- Nathaniel Borenstein

Ole Rohne

unread,
Aug 24, 2001, 9:13:40 AM8/24/01
to
"Pierre R. Mai" <pm...@acm.org> writes:

> Minor nit: CMU CL does provide more or less the full complement of
> things described in AMOP, although there are two or three
> syntactical pitfalls you have to be aware off.

more or less...
Whenever I try to set allocation to anything but
(or :instance :class) it bites... Cf AMOP p102

Ole

Pierre R. Mai

unread,
Aug 24, 2001, 6:19:14 PM8/24/01
to
Ole Rohne <ole....@cern.ch> writes:

Yes, this seems to be a bug in the current versions, though I'll have
to dig a bit deeper to find out where exactly things start going
wrong. The code-base does support custom allocation stuff, though.
I'll keep you posted on the status of this.

Generally, if you encounter differences to either the ANSI CL standard
or the AMOP, please report them as bugs via the mailing lists (see CMU
CL home-page on http://www.cons.org/cmucl/ for addresses). If the
differences are known, and we haven't yet found the necessary
developer capacity to change them (some things need fundamental
rewrites in the core), we'll point you to possible work-arounds,
otherwise we'll do our best to fix the bugs as quickly as possible.

In general it doesn't hurt re-reporting already known bugs, because
sometimes things just fall through the cracks...

Regs, Pierre.

PS: Beware that stuff outside chapters 5+6 of the AMOP technically
isn't normative, and can be misleading, since it sometimes is based on
the enclosed mini-CLOS implementation, and not real CLOS and the "real
MOP" discussed in 5+6. Though in your case the behaviour should be
identical, so this doesn't matter.

Q u a s i

unread,
Aug 26, 2001, 3:41:36 PM8/26/01
to
On Wed, 22 Aug 2001 20:38:42 GMT, Erik Naggum <er...@naggum.net> wrote:
> In conclusion, I think the key is to figure out whether you are able to
> _think_ in the language you are learning. This should not take too long.
>
>///

Thanks all for the insightfull comments. I got introduced to Lisp
while doing a small course studying different paradigms. I had to
write a maze solver in C, Prolog, Lisp, Java and Oz. I found Lisp
more comfortable (except C, as I had already programmed for 1-2 years
in it) than any of the others. This is the reason I joined this
newsgroup and also gave serious thought to a future in Lisp.
The reason I asked so many (perhaps stupid) questions is that people
here (where I live) call it a vintage language with no future. Also I
was also surprised at the minimal quantity of internet resources
related to Lisp. Being one of the oldest language, maybe I expected a
little more. When I started with C, I learned a lot from lookin at
code I got from the net (maybe not such a smart way to learn, but...).
I got source code of a huge load of small programms which I could
study, not only to learn about C but also style, techniques etc. and
also about the system in general. When I started looking for Lisp
resources, barring the Gentle Introducton, Cooper Book and the
Hyperspec I dont see much (maybe I have missed some). The only site
for ongoing projects I found was telnet.net/cliki. Here too the there
is hardly anything going on.
What I mean (after that longwinded piece) is that where is the Lisp
community? Apart from this (very helpful) newsgroup, where does Lisp
exist? Where are the loads of tools and libraries that (should) show
the years and years of Lisp history? Almost everything everybody does
seems from scratch (reinventing the wheel??)... Is that the general
Lisp way? Almost the only "lispy" thing I see (apart from the
interpreters and compilers) is Emacs!
... Or maybe I am completely missing something here.

quasi

Thomas F. Burdick

unread,
Aug 26, 2001, 4:02:31 PM8/26/01
to
quas...@yahoo.com (Q u a s i) writes:

> On Wed, 22 Aug 2001 20:38:42 GMT, Erik Naggum <er...@naggum.net> wrote:
> > In conclusion, I think the key is to figure out whether you are able to
> > _think_ in the language you are learning. This should not take too long.
> >
> >///
>
> Thanks all for the insightfull comments. I got introduced to Lisp
> while doing a small course studying different paradigms. I had to
> write a maze solver in C, Prolog, Lisp, Java and Oz. I found Lisp
> more comfortable (except C, as I had already programmed for 1-2 years
> in it) than any of the others. This is the reason I joined this
> newsgroup and also gave serious thought to a future in Lisp.
> The reason I asked so many (perhaps stupid) questions is that people
> here (where I live) call it a vintage language with no future.

> Also I
> was also surprised at the minimal quantity of internet resources
> related to Lisp. Being one of the oldest language, maybe I expected a
> little more. When I started with C, I learned a lot from lookin at
> code I got from the net (maybe not such a smart way to learn, but...).
> I got source code of a huge load of small programms which I could
> study, not only to learn about C but also style, techniques etc. and
> also about the system in general.

[...]


> Where are the loads of tools and libraries that (should) show
> the years and years of Lisp history?

One good place to look is the CMU AI Repository. It's not being
updated, but there's a ton of code in there from the years and years
of Lisp history. And if you're looking for a place to read code, I
found it to be a pretty good one.

<http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/intro.html>

Kent M Pitman

unread,
Aug 26, 2001, 4:38:28 PM8/26/01
to
quas...@yahoo.com (Q u a s i) writes:

> What I mean (after that longwinded piece) is that where is the Lisp
> community? Apart from this (very helpful) newsgroup, where does Lisp
> exist?

www.alu.org

> Where are the loads of tools and libraries that (should) show
> the years and years of Lisp history?

Well, the stuff that has really survived all that time is largely commercial.
There are commercial programs that have survived multiple changes in dialect.

And there's some complex stuff unrelated to longevity or technical
prowess, and more related to market timing, that explains why the
sheer numbers of available libraries are perhaps not what you expect,
though in fact there really is quite a body of interesting stuff out
there when you compare it to the size of the user community which has
been Lisp during this long history. Large programmer camps for any
language are really a relatively new phenomenon, going back only about
1.5 decades.

Fortran has been around as long as Lisp and also probably suffers under
the same "criticism" though really it's not a material criticism of the
language.

> Almost everything everybody does
> seems from scratch (reinventing the wheel??)...

I don't think any moreso than in any language. We don't have the benefit
of having the only major commercial manufacturer of operating systems spending
any useful time writing us foundation classes nor asking us what we would
need of such things. But we do ok.

> Is that the general Lisp way?

Don't be ridiculous. I find this remark close to flame-bait.

It should be plain that Lisp is not the market-dominant language. If you
spend some time in Deja News looking for "AI Winter" as your search key
you can find some discussions on this that I don't care to repeat.

But to come in and find someone who has less available capital than someone
else and prod them by saying "hey, your trappings are not as fancy as those
rich guys over there. should I infer this to be 'the poor man's way?' is
not exactly starting out the conversation in a way that will win you any
friends."

> Almost the only "lispy" thing I see (apart from the
> interpreters and compilers) is Emacs!

You're not looking in the right places.

> ... Or maybe I am completely missing something here.

Almost surely.

I think I'm going to opt out of any further discussion with you on this
rather than let you bait me further unless you do some seriously better
research of the resources that do exist. I try to be as nice as I can
to people, but there is a limit to how much work I'm willing to do.

The kinds of people we cater to here are not people who say "prove
yourself", but rather people who say "I have a problem to solve and I
want to use Lisp. How do I get started?" If you aren't happy with
Lisp, use something else you are happy with. We are very happy with
what we use. We are happy to help others be successful. But we
aren't going to spend our scarce resources trying to convince people
they should be interested if they are of a mind not to be. THAT would
be a certain way never to climb out of the hole we're quite obviously
in because it costs too much per capita resources to help an
individual who is not of a mind to help himself. The same resources
applied to someone who was ambitious and optimistic would yield
returns many times greater.

Erik Naggum

unread,
Aug 26, 2001, 7:56:18 PM8/26/01
to
* quas...@yahoo.com (Q u a s i)

> The reason I asked so many (perhaps stupid) questions is that people
> here (where I live) call it a vintage language with no future.

Yeah, _for them_. What they mean is that they are not part of Lisp's
future. That is their choice, not Lisp's.

> Also I was also surprised at the minimal quantity of internet resources
> related to Lisp. Being one of the oldest language, maybe I expected a
> little more.

I can easily see how this is disappointing. However, there is at least
one somewhat surprising reason for this: It is so easy to do things in
Common Lisp that people have no personal need to advertise it and make a
public nuisance of themselves. While Archimedes may have made the first
serious connection between nudity and marketing scientific discovery, I
think today's Common Lisp hacker goes "yeah!" and just smiles. In sharp
contrast, today's young punks go "HOLY SHIT! IT WORKS! GUYS! GUYS! IT
WORKS!" and rush off to get another cool domain name. That "yeah!" is
also probably worth a thousand times more money than the other Cool Hack,
which is why it is _not_ marketed -- the reward was right there to begin
with, with no need to attract attention from the crowds just to feel good
about your own work. Remember, Common Lisp people are about 10 years
older than Java people.

As for reimplementing things from scratch, I got so immensely frustrated
with the available "libraries" of web-design crap that an incredibly
incompetent moron had abused unintelligently for a week _not_ serving a
high-profile ultra-high-security project I am now working on that I sat
down and whipped up a new Lisp "scripting language", I added a handler to
Apache and used the support for CLISP "binaries" (.fas files) under Linux
to fire up an interpreter to deal with my pages, and instead of reams of
junk code produced by cut and paste and sloppy editing, I could use real
Lisp _macros_ in my source files, producing XML and Javascript and all
sorts of junk efficienctly, well-tested and _fast_. Designing that new
language took me about three hours, but I have saved at least 40 hours
dealing with the putrid fecal matter that some people actually spend
their days trying to shape into web pages. After working my butt off
long into the night and missing a Saturday party, I had completed more
_real_ work in a 16-hour stretch with a dimunitive Lisp tool like CLISP
than a supposed _professional_ had managed to get done in a whole week.
This pisses me off so much even hundreds of rounds of target practice
does not calm down. What I have done, highly inexperienced at web design
and not knowing one iota of Javascript on Friday morning, probably looks
clunky and is generally bells-and-whistles-free apart from functionality
we need, should have been a walk in the park for a professional web head.
It should have taken him mere hours to cobble up something from his vast
store of libraries and tools and have it ready for us the same day. If I
can fumble my way through huge tomes, copy stuff I do not fully grasp,
bumping into problems I had no idea would cause so many lines of logs in
the poor server, and generally feeling like an incompetent fool myself,
but I can still get it done in two days with Lisp as the underlying tool,
writing most of this from scratch while scratching my head and swearing,
god damn it, those imbecilic _frauds_ who claim to have "libraries" on
their side should be hanged at dawn.

People scream about CGI and how hard it is to prosess those things and
they load 100K+ Perl libraries and write HTML with code that is even more
verbose than HTML to begin with. I shall break the "rule" I laid down
above and tell you what I did. Below is how I make those pesky CGI
variables available to my code. It probably is not 100% correct, but it
works a lot better than the incredibly stupid Perl solutions I have seen,
and Perl is supposedly _good_ at this crap. Retch! Excuse me while I
barf in Larry Wall's general direction. (I use string streams because I
have no particular inclication to reinvent buffers. Those who hate loop
and format probably also hate string streams, but it is not _my_ fault
that their Lisp vendor did not make them fast enough for them back in
1980-whatever when their mind was set about what is Lisp and what is not.)

(defun 3ml-cgi-decode ()
(let ((stream (if (string-equal "get" request-method)
(make-string-input-stream query-string)
*standard-input*))
(symbols ()))
(with-open-stream (output (make-string-output-stream))
(loop for char = (read-char stream nil nil)
do (case char
(#\= (push (intern (string-upcase (get-output-stream-string output)))
symbols))
((nil #\&) (when symbols
(setf (symbol-value (first symbols)) (get-output-stream-string output))))
(#\+ (write-char #\space output))
(#\% (let* ((nib1 (read-char stream nil nil))
(nib2 (read-char stream nil nil))
(code (+ (* 16 (digit-char-p nib1 16))
(digit-char-p nib2 16))))
(write-char (code-char code) output)))
(t (write-char char output)))
while char))
(setf *cgi-variables* symbols)))

You get the symbols that were passed in in the *cgi-variables* list so
you can check for them with find or member, but you can use the symbols
without bothering to check, too, provided you have a restart around them
to get rid of the annoying unbound-variable error. (Tracking this stuff
down took me some time, as I have not needed to build interpreters that
should do this before. It may not be correct. Use with caution.)

(restart-case
(handler-bind ((unbound-variable
(lambda (ignore)
(declare (ignore ignore))
(use-value ""))))
...)
(use-value (&optional value) value))

In the end, my nifty little markup language has stuff like this in it:

<table <border 0><width 375>
<form <name registerform><action register.3ml><method post><onsubmit return validate()>
{:discard ; This {} form does not yield a value to be printed in its place.
(defun make-form (prompt type name &optional width)
(format nil "<tr <td ~@[<width ~A>~] <p <class header> ~A:>>~
<td <input <type ~A><name ~A><value {~A}><size 35>>>>"
width prompt type name name size))}
{(make-form "Given name" "text" "givenname" 120)}
{(make-form "Family name" "text" "familyname")}
{(make-form "E-mail" "text" "email")}
{(make-form "Phone" "text" "phone")}
{(make-form "Organization" "text" "organization")}
{(make-form "Username" "text" "username")}
{(make-form "Password" "password" "password1")}
{(make-form "Password (confirm)" "password" "password2")}
<tr <td <input <type hidden><name invitation><value {invitation}>>>
<td <input <type submit><name register><value Register>>
<input <type reset>>>>>>

I assume that this is immediately understandable apart from the use of
{~A} and {invitation}. Those result in expansions to the CGI variables
with the input field names. I also assume that any wreck who has had to
deal with the expanded HTML from something like this will appreciate its
relative brevity. Once I get more work done in this area, however, it
should like this, but the code that produces HTML/XML is too simple to
deal with it this late this weekend:

{(defun make-form (prompt type name &optional width)
<tr <td {(when width <width {width}>)} <p <class header> {prompt}:>>
<td <input <type {type}><name {name}><value {'{name}}><size 35>>>>)}
<make-form <prompt Organization><type text><name organization>>

There, I have posted both loop code, intricate format constrol strings, a
compact new syntax that saves a lot on typing (ewwww!), shown that I use
javascript (EWWWW!), and I have not even kept the fact that I designed
web pages a secret. No cats were harmed in the production of this code
or these web pages, however.

///

Paolo Amoroso

unread,
Aug 27, 2001, 12:00:38 PM8/27/01
to
On Sun, 26 Aug 2001 23:56:18 GMT, Erik Naggum <er...@naggum.net> wrote:

> * quas...@yahoo.com (Q u a s i)

[...]


> > Also I was also surprised at the minimal quantity of internet resources
> > related to Lisp. Being one of the oldest language, maybe I expected a
> > little more.
>
> I can easily see how this is disappointing. However, there is at least
> one somewhat surprising reason for this: It is so easy to do things in
> Common Lisp that people have no personal need to advertise it and make a
> public nuisance of themselves. While Archimedes may have made the first

Another reason is that it takes a lot of time to produce--and, perhaps more
importantly, maintain--quality Web content. The amount of time needed for
this is usually underestimated, and one fully realizes about this only
after starting such a project.


Paolo
--
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://web.mclink.it/amoroso/ency/README
[http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/]

Q u a s i

unread,
Aug 27, 2001, 5:52:41 PM8/27/01
to
On Sun, 26 Aug 2001 20:38:28 GMT, Kent M Pitman <pit...@world.std.com>
wrote:

>I think I'm going to opt out of any further discussion with you on this
>rather than let you bait me further unless you do some seriously better
>research of the resources that do exist. I try to be as nice as I can
>to people, but there is a limit to how much work I'm willing to do.

Excuse me if I sound "prove yourself" kind, but believe me that was
not the intention. You or anyone else from the Lisp community does
not have to _prove_ themselves to anyone, least of all me. The
questions were from the point of view of the newcomer and the problems
faced by such. Everywhere I looked (other than c.l.l) I found
missconceptions about Lisp. I _liked_ Lisp, and I am lookin at all
these answers because I want to help remove some of those
misconceptions. I am trying to convince people around here (where I
live) to start with Lisp. It is very well to say "Do it if you like
else do something else". But if new people are not encouraged then
how will the community grow and survive? What will happen after the
Gods have retired? It seems that you are missing that the computing
bacground of your early years is quite different from what today's
biggners are faced with.

>
>The kinds of people we cater to here are not people who say "prove yourself",

>[....]


>The same resources applied to someone who was ambitious and optimistic would yield
>returns many times greater.

Come come sir, dont you think that was a little harsh? Do you think I
asked these questions as a seriously perverted passtime? I want to
_know_ a lot more about Lisp. From the people who have _been_with_
Lisp. The pitfalls the pros the cons - _all_. That was my sole
reason and intention. If I have given a bad impression of a wet
yeared 14 year old, it is because, unfortunately, my expertise at
writing newgroup emails and queries is very small. Maybe with time it
will improve.

Thank you for spending you time in providing clarifications to me. It
must sure be boring to keep answering similar questions time after
time. I wont ask any more.

quasi

p.s.
And about writing things from scratch. That was a serious question
even though you considered it flame-bait. I have read the same
question in different contexts a few times on this list even in the
last 2 months. I asked it again because I thought that in all
seriousness that may be the way things are done. To quote the latest :
Dough in that long "Lisp for HTML HOWTO" thread askes "Is everyone
rolling their own from scratch?"

Q u a s i

unread,
Aug 27, 2001, 5:52:43 PM8/27/01
to
On 26 Aug 2001 13:02:31 -0700, t...@conquest.OCF.Berkeley.EDU (Thomas

F. Burdick) wrote:
> And if you're looking for a place to read code, I found it to be a pretty good one.
>
><http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/intro.html>

Thanks a lot, just what I was looking for.

Q u a s i

unread,
Aug 27, 2001, 5:52:44 PM8/27/01
to
On Sun, 26 Aug 2001 23:56:18 GMT, Erik Naggum <er...@naggum.net> wrote:
> I can easily see how this is disappointing.
> [.....]

> Remember, Common Lisp people are about 10 years older than Java people.
> ..
> [complex_and_beyond_me_piece]

Phew! That was quite beyond me, but I glean that you can do _it_ in
Lisp. That gives me heart.
Actually I feel quite small asking all these questions when very
esoteric and intricately techical discussions are happning. Maybe
next time I write, will be when I have some "I have a problem to solve
and I want to use Lisp. How do I get started?" kind of problem as
Kent suggests.

Thanks a lot.
quasi

p.s.
do you think that there is any merit in the thought that as CL people
are 10 years older than java people and hence obviously older than
(most) beginners, there might be a teeny weeny difference in the way
of thinking resulting from (significantly) different computing
backgrounds and that this needs to be taken into consideration when
introducing Lisp?

Brian P Templeton

unread,
Sep 17, 2001, 6:52:55 PM9/17/01
to
Bijan Parsia <bpa...@email.unc.edu> writes:

[...]


> 2) How many LOC (though I tend to wonder why that's *so*
> interesting, I mean, it's nice to get *some* idea of
> the size of the project, however flawed, but..oh well
> different rant :))

When asked for a LOC count, if you ask Real Hackers you will hear a
lot of ``NOS'' --- not because they refuse to answer, but because
they're answering in Number Of Sexps, which is the only accurate
statistic. However, I'm too lazy to use anything but
cat foo.lisp | grep -v "^[ \t]*;;.*" | wc -l
... :)


(BTW, I'm *not* trying to claim that either LOC or NOS is an accurate
measure...nor trying to start yet another line-oriented versus
expression-oriented language debate...)

[...]

--
BPT <b...@tunes.org> /"\ ASCII Ribbon Campaign
backronym for Linux: \ / No HTML or RTF in mail
Linux Is Not Unix X No MS-Word in mail
Meme plague ;) ---------> / \ Respect Open Standards

Brian P Templeton

unread,
Sep 30, 2001, 7:44:34 PM9/30/01
to
k...@ashi.footprints.net (Kaz Kylheku) writes:

If you do need this kind of proof, you should invoke `fortune -m "Matt
Welsh"', and then write all of your programs in C. :)

Reply all
Reply to author
Forward
0 new messages