In my opinion CL is fascinating but I do not use it.
Python is not very fascinating but I use it. I am even heavily using it at
the moment.
Here is my wish list for Lisp.
(1)
It should be free.
(2)
It should have big standard libraries like C or Python.
(3)
It should have a GUI binding and should use one of the most common GUI
toolkits: Tcl/Tk or GTK++ or Qt.
(4)
It should work under Windows2000.
Now there are two wonderful candidates for these points: Clisp and Corman
Lisp. I am not good enough to judge how difficult it would be to realize one
of the bindings mentioned in (3) but I am afraid that it is not done on
ideological grounds. It seems to me, that Mr Corman relies on the native
Windows interface but I do not understand why.
There are so many very knowledgable people in this NG, they could do all
that in a few months. If they wanted to.
I think of course that Lisp enforces upon the programmer a mor subtle way of
thinking about his concepts and this will always narrow down the group of
its potential users.
Janos Blazi
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
Check out our new Unlimited Server. No Download or Time Limits!
-----== Over 80,000 Newsgroups - 19 Different Servers! ==-----
> I have never contributed anything to the CL community but I hope I
> may speak out my mind in spite of that.
You can. But I honestly don't see the point.
> In my opinion CL is fascinating but I do not use it.
> Python is not very fascinating but I use it.
> I am even heavily using it at the moment.
>
> Here is my wish list for Lisp.
>
> (1)
> It should be free.
Here's how to make that happen:
All you have to do is spend a lot of time implementing one,
and then give away your work without asking for compensation.
Or, if you don't feel qualified, just spend time earning money in
some other way and then hire someone to build you a Lisp that you
will then give away free.
> (2)
> It should have big standard libraries like C or Python.
While you're giving away your effort without request for compensation,
it should be no problem to give away big libraries rather than small ones.
All it takes is more work, and you're not charging for that anyway.
> (3)
> It should have a GUI binding and should use one of the most common GUI
> toolkits: Tcl/Tk or GTK++ or Qt.
Oh, absolutely, I agree. Please give that away, too.
> (4)
> It should work under Windows2000.
Well, not just that. But you can start with that if you want.
> Now there are two wonderful candidates for these points: Clisp and Corman
> Lisp. I am not good enough to judge how difficult it would be to realize one
> of the bindings mentioned in (3) but I am afraid that it is not done on
> ideological grounds. It seems to me, that Mr Corman relies on the native
> Windows interface but I do not understand why.
His is also not free. He charges for it, as well he should.
As to CLISP, is it not free already?
> There are so many very knowledgable people in this NG, they could do all
> that in a few months. If they wanted to.
Or could have already done. If they wanted to.
Perhaps it's waiting on YOU.
What is not worth investing time and money in is not worth having.
Don't ask for gifts from others; it's unseemly.
We live in the world we ourselves create. If you want the world to be
different, start by being different yourself.
> I have never contributed anything to the CL community but I hope I may
> speak out my mind in spite of that.
>
> In my opinion CL is fascinating but I do not use it.
> Python is not very fascinating but I use it. I am even heavily using it at
> the moment.
>
> Here is my wish list for Lisp.
>
> (1)
> It should be free.
Do you mean "All Lispsystems should be free"?
There _are_ already free Lispssystems...
> (2)
> It should have big standard libraries like C or Python.
Depends on _what_ you call standard - C has a rather smallish
standard library - Python has no "official" standard-lib at all.
But C _and_ Python have huge "Community Standard" Libraries and
that is what I wish to come for CL too...
> (3)
> It should have a GUI binding and should use one of the most common GUI
> toolkits: Tcl/Tk or GTK++ or Qt.
AFAIK there _are_ Bindings to Tcl/Tk and GTK. I'm looking forward in using
McCLIM...
> (4)
> It should work under Windows2000.
Should it? And what is with those guys that use e. g. UNIX/Linux or Mac?
> Now there are two wonderful candidates for these points: Clisp and Corman
> Lisp. I am not good enough to judge how difficult it would be to realize
> one of the bindings mentioned in (3) but I am afraid that it is not done
> on ideological grounds. It seems to me, that Mr Corman relies on the
> native Windows interface but I do not understand why.
> There are so many very knowledgable people in this NG, they could do all
> that in a few months. If they wanted to.
It is all a matter of who is paying the bill I fear - You cannot _demand_
from the community to fulfill your wishes gratis so that you "can use"
Common Lisp. If you _want_ to use CL either _buy_ a Lisp that provides the
above points or sponsor an effort to build the missing things or do it
yourself. Please don't get me wrong - I think most people share your view
that this things would be nice to have and it _is_ IMHO good to point that
out very often but if you _need_ this things it would be a better idea not
to count on people donating their time for this.
ciao,
Jochen
> I have never contributed anything to the CL community but I hope I may speak
> out my mind in spite of that.
>
> In my opinion CL is fascinating but I do not use it.
> Python is not very fascinating but I use it. I am even heavily using it at
> the moment.
>
> Here is my wish list for Lisp.
>
> (1)
> It should be free.
As soon as my bank stops asking for my mortgage payments, and as soon
as I can get free food, I'll donate some time to this. If you want to
provide me with a full-time income, I'll put a *lot* of time into this.
> (2)
> It should have big standard libraries like C or Python.
>
> (3)
> It should have a GUI binding and should use one of the most common GUI
> toolkits: Tcl/Tk or GTK++ or Qt.
>
> (4)
> It should work under Windows2000.
>
(5) It should read my mind, and when it has exhausted everything I
currently want from it, it should project what I might want in the
future and do that too.
Is your request for a free system an idealogical one or is it based on your
economic stituation? Why not buy LispWorks for Windows instead and get most
of what you need, at least, the running on Windows part? We all go to the
expense of buying a computer, but when it comes to buying software some
people can get very stingy. I have friends whose music collection costs
MUCH more that their stereo system (and they have really good stereo
systems). Their attitude is that their music collection should at cost at
least ten times what their stereo costs.
I bought LWW partly because I am supporting the work down on CL, and Xanalys
is more involved and contributed more to Lisp programming than I ever can.
Support those who have put in the time and have the commitment.
My thoughts on a big standard library, it already exists, the only problem
is that its mostly written in C. If you need a some functionality it is
well worth the time to figure out how to use the FFI abilities of your
favourite Lisp. I put that part of my learning off till quite recently, but
once I had done it a few times its not so bad. C libraries (like OBDC or
OpenSSL) are not difficult to fathom, but you have to sit down, read the
manual and learn it. If you had an interface to GTK+ you would still have
to _learn_ GTK+ to know what to do and when to do it.
Wade
> I have never contributed anything to the CL community but I hope I may speak
> out my mind in spite of that.
I can't decide whether you're trolling or you posted this expecting to
be taken seriously. I'm also not sure which is worse. Either way it
makes you look pretty fucking despicable
-dan
--
http://ww.telent.net/cliki/ - Link farm for free CL-on-Unix resources
> I have never contributed anything to the CL community but I hope I may speak
> out my mind in spite of that.
>
> In my opinion CL is fascinating but I do not use it.
> Python is not very fascinating but I use it. I am even heavily using it at
> the moment.
>
> Here is my wish list for Lisp.
>
> (1)
> It should be free.
It is (CLISP and CMUCL)
> (2)
> It should have big standard libraries like C or Python.
It does
> (3)
> It should have a GUI binding and should use one of the most common GUI
> toolkits: Tcl/Tk or GTK++ or Qt.
There are
> (4)
> It should work under Windows2000.
It does
Hey, we've got the perfect language :-/
LT> "Janos Blazi" <jbl...@hotmail.com> writes:
>> I have never contributed anything to the CL community but I
>> hope I may speak out my mind in spite of that.
LT> Idiot. If you're going to freeload, please do it quietly.
LT> The sense of entitlement expressed by certain posters to this
LT> NG is staggering. [...]
I don't know what to think of this. But I will observe the following:
-- Let's assume Janos Blazi is not an idiot. The issue becomes more
interesting. Why would a reasonable person expect all the things he's
asking about to be available for free?
-- I don't think freeloading is the appropriate term to use for people
who use freely available software. Do, say, emacs's authors think of
their users as freeloaders? I don't think so. The rule ought to be
that if you will think of the users of your software as freeloaders
you probably should not give it away.
LT> This kind of garbage is (1) useless and (2) the height of poor
LT> taste. Since it is apparently not obvious enough for some
LT> people, I will state a general rule of thumb:
LT> If you can't answer the question ``where's your free Lisp
LT> software?'' with a URL, it is probably a bad idea to post to
LT> this NG demanding other people write code for free.
I agree with this. But I do not want to discourage people who ask
"is there a free <blah>" for CL, or even those who say it'd be great
if such and so were available for CL. Demanding is a different matter
of course.
cheers,
BM
__ I support Ken's ideas signed -------------------- ;-)
So to the things which all should there.
- free (CMUCL, CLisp, GCL (well don't know if that counts as Common
Lisp)
- library. Well I have not seen that Hash Table are Standard in C but
hey we're just selling a C-IDE so I'm not supposed to know that should
be in standard headers
- GTK+ Binding well I would like to have them too, but hey I would
write them ;-)
Well as I understand Corman Lisp comes with classes which do can be
used to write Lisp wrapper classes around C libraries
automatically. Well than it's quite easy to interface to C libs I
guess. Ah I forgot Roger is outrageous enougth to expect getting paid
for his Common Lisp.
No, I do tink it's enough for this morning.
Till then
Friedrich
I have On Lisp on order at amazon.co.uk and have been waiting for a
while. I went and checked up on it with excitement in my heart only
to have my hopes dashed.:( There has been a change in that my order
has been changed to not available, and when I looked for On Lisp with
the search engine it is no longer listed. So Congratulations Deepak I
think you got the last copy.
As to the above comments I can't agree more, these companies are in a
specialist field they do not have the volume to rely on, so their
product goes up in price, and there are very good implementations that
are not too much money, such as Corman Lisp which is fast and I
personally have been using it because it is the implementation that I
have a hope of being able to afford in the near future and I like the
attitude behind it, and CLISP which is great and free but in basic
console format, and although I have not read enough to figure out how
I can plug emacs into it, it seems possible from the documentation I
have scanned, and yes ntemacs works on win2000, I have it installed,
and so does clisp, you just have to make a small alteration to the
config files for which the details can be found on the mailing list,
or you can email me as I have figured out a simple change that worked.
How is that for a run-on sentence?:)
I think the Python movement is a great one, and although I have not
delved into it that much I think that a number of elements came
together to allow it to happen, however I wonder how much you have
added to the Python movement, because everything you have been using
in Python took someone's commitment and time to make happen, isn't it
time to help with the effort?
Personally I have just come to Lisp and Python in the last few weeks
and have been bitten by the Lisp bug. Sure there is not the unified
community in Lisp that there is in Python but considering that Lisp
has been around longer than almost any language out there it is
amazing testament that it and its community exist at all. How many
other languages are no longer on the map. Python was a controlled
environment from the start, using facilities that have come into being
only in the last 15 years and it took many of the principles of lisp
and put them into a more approachable sytax, as well as losing some of
the functionality and power but with great libraries as part of the
standard package, and that is just it Python has a standard package
because it came from a common root.
As I start to be able to delve into what is happening in the source
code and be of sufficient skill to make efficient and robust code in
lisp I intend to see what I can to with those libraries and adding to
them and think of the things I would like to see available in Lisp and
make a version there are lots of people who are more than happy to
take time once they have seen you have made an honest effort, after
all it is a community and being a member means a little give for the
take.
Btw. Lispworks has a free version for personal use, and it like
Allegro CL is packed with packages and they have made their systems to
have code generated on them be cross-platform with their tools, so try
it out and if you are at a point where you are starting to make money
with them then upgrade to the professional or enterprise edition. It
is these implementations that have allowed you to develop with such
speed don't you think it is pay back time at that point.
blah blah and on I go.....
Rohan
Thx.
> The issue becomes more
> interesting. Why would a reasonable person expect all
> the things he's
> asking about to be available for free?
I (and all of you) saw how Perl and Python were created virtually out of
nothing. Everything was free. With Qt, Tcl/Tk, GTK+ it was the same. But I
suspect that the Creators still could make money with it by selling books or
as industrie consultants. I very much hope so.
I have been enthusiastic with thie relatively new developement.
I cannot deliver code of the required quality, so the only thing I can do is
to use such products for my teaching. By doing so I can make them a tiny
little bit more popular.
It may suffice to say that after a decent posting that contained no four
letter words I received a response starting wit the sentence 'Idiot.' This
show that I cannot be completely wrong.
J.B.
You mean "literally", rather than "virtually". Neither of them had
a spec hammered out by thousands of programmer-years of use to which
they were expected to conform - they were just whatever their respective
authors decided to throw together. I suspect both were created with
much muttering of "bugrit - too hard - maybe in the next version".
There's a ton of free lisps around if those are your design criteria.
English is not my native tongue but I wanted to say that they were not
really created out of nothing, something had been there when the guy started
working on it. We know that Python was the second try and the sam is true to
some extent for Qt. I thought 'virtually' would express this.
> There's a ton of free lisps around if those are your design criteria.
Yes, but none of them meets all criteria at the same time. If I were content
with Scheme, the situation would be different.
>
> -- Let's assume Janos Blazi is not an idiot. The issue becomes more
> interesting. Why would a reasonable person expect all the things he's
> asking about to be available for free?
>
We've just been through a huge bubble where everyone threw money at
anything vaguely high-tech. One of the side-effects of this is that
there has been so much money floating around that people in the right
industries didn't really have to do any work, or not work they got
paid for. So they started doing other stuff at random, like churning
out software for free. They even started inventing reasons why free
software was economically viable, based ultimately on their experience
of all this huge money they had to wade through all the time.
In this environment it became perfectly reasonable to expect software
to be free. After all major operating systems got written and given
away for free: an economy which can sustain that kind of effort can be
expected to throw out all sorts of other goodies.
Unfortunately the hype was all lies: the productivity improvements
aren't really there after all, annual growth hasn't gone up by 4%, the
internet isn't going to permanently change the world. No one really
seems to have noticed yet, I guess because none of the really visible
Free software conmpanies has gone under yet (I wonder what the future
holds for Red Hat, or VA Linux though).
--tim
> the internet isn't going to permanently change the world.
of course it is. It's just that it takes time. I never - even during
the worst .com hype - really understood why people were talking about
the rapid technical development. OK, the widespread use of internet
was growing fast. OK, processors get faster all the time. But
_software_ grows very, very slowly. And even developing internet
access methods grows very, very slowly. Where I live, xDSL isn't yet
an option. So my best option is to use ISDN dialup with a Cisco
router, just like I did 5 years ago when I developed the software
infrastructure of my employer for provisioning the internet-over-ISDN
service to the mass market.
But that doesn't mean that it's not going to permanently change the
world. It already has.
--
(espen)
Interesting analysis. I think there is an additional issue involved:
marketing. Businesses give a way freebies all the time and pay for this
over their markting budgets. A lot of free software is simply marketing
for some "ulterior motive", such as is consulting, books, speeches, etc,
and as such it might even work, if you can get the volume and excitement
up about something. This is not relevant in the "hobbyist" end of the
spectrum, obviously. Other than that, there is the obvious "preempt the
whole market so nobody else can get in"-approach where a company gives
away stuff for free to hurt their known and unknown competition. I am
strongly negative to this type of "free" software.
I think the problem with free software has become the expectations among
users that they should be able to make loads of money using free tools.
It is therefore appropriate that those who build on free tools also give
away the results, and those who pay for their tools charge for theirs.
But as has always been the case, even when you got system software "for
free" with some hardware, whether you get source code with a product is
orthogonal to whether you can redistribute the product or the source or
talk to people about it who do not have a proper license. I am annoyed
that the open source/free software communities have attempted to destroy
this very important distinction.
///
Sure. It just does not carry any weight at all. You are irrelevant,
remember?
> In my opinion CL is fascinating but I do not use it.
This makes you even more irrelevant.
> Python is not very fascinating but I use it. I am even heavily using it
> at the moment.
So go annoy the Python people.
> Here is my wish list for Lisp.
In other words, what other people need to do to help you use Lisp, when
you have not done anything yourself.
[ Irrelevant wish list deleted. ]
> There are so many very knowledgable people in this NG, they could do all
> that in a few months. If they wanted to.
What would they get in return? Having Janos Blazi as a user? That is
just such a fantastic incentive! I for one strongly prefer that you use
Python and not Common Lisp and post your drivel there instead of here.
> I think of course that Lisp enforces upon the programmer a mor subtle way
> of thinking about his concepts and this will always narrow down the group
> of its potential users.
Precisely, and that means that the reluctance to give your work away to
people who are up-front about their unappreciativeness is correspondingly
reduced because the chance of "hitting" someone out there who might be
worth by chance it is so much slimmer.
I believe that the period of luxury that allowed the whole industry to
cater to the poverty-stricken at the expense of those who wanted to take
part in the wealth-creation is about to come to an end. This is not a
bad thing, except for those who will remain poor no matter what. There
is no point in marketing towards that community, either.
Why do you even hang around here, Janos Blazi?
///
I admit that it does not carry much weight. But you are contradicting
yourself as you are answering my message (which is an honor).
> This makes you even more irrelevant.
This I do not understand. I am used to not understanding everything.
> So go annoy the Python people.
I do. I ask questions in c.l.p, though in that NG there are people who do
not felt annoyed ans answer me.
> In other words, what other people need to do to help
> you use Lisp, when you have not done anything
> yourself.
Yes. You would have to help me for free. On the other hand you may get
several thousand new users this way. But there is a risk in it, I admit.
> What would they get in return? Having Janos Blazi as
> a user?
Yes. Maybe. And several other users. Maybe. It is risky.
> That is just such a fantastic incentive!
Do not see this personally. Of course I understand that after what was going
on between us you would never help me personally. That is all right.
> I for one strongly prefer that you use
> Python and not Common Lisp and post your drivel
> there instead of here.
There is a grain of humor in this. Good.
> Precisely, and that means that the reluctance to give your work away to
> people who are up-front about their unappreciativeness is
correspondingly
> reduced because the chance of "hitting" someone out there who might be
> worth by chance it is so much slimmer.
Yes. Of course you are right.
> I believe that the period of luxury that allowed the whole industry to
> cater to the poverty-stricken at the expense of those who wanted to take
> part in the wealth-creation is about to come to an end.
It would be interesting to be told, how you reach this conclusion.
> This is not a
> bad thing, except for those who will remain poor no
> matter what. There
> is no point in marketing towards that community,
> either.
This I do not understand. Didn't you pointed out in this thread, how money
can be made this way? I paid 1000 DM for my first C compiler in the
seventies and before Perl and Python you would have never expected to get
something so valuable for free.
With the dawn of free software our expectations and our attitude towards
the software industry have changed. From the point of view of the users this
is a good thing .
> Why do you even hang around here, Janos Blazi?
This is a good question. I cannot answer it myself. I have decided to give
up Lisp completely (one of those driven away by Erik N. :) )and I am still
around.
May I point out to you, however, that your last sentence is not very polite?
You can either say Janos or Mr Blazi, if I may tell this, ad usum delphini.
J.B.
> the internet isn't going to permanently change the world.
It already has.
Peter
I see your that your request for a "free" CL is a political need and your
request is a recruitment drive. It is highly unlikely that you actually
write software for any useful purpose.
No it is not a good thing. It now implies that people who create software
for others to use are not worth paying. To write really good software takes
time and effort. I never used to believe that others would take what others
produced without compensation and with no feelings of indebteness. But it
is obvious that others will take from others until there is no more to take.
Just use people up for their own gain under the name of "Free Software".
> > Why do you even hang around here, Janos Blazi?
>
> This is a good question. I cannot answer it myself. I have decided to give
> up Lisp completely (one of those driven away by Erik N. :) )and I am still
> around.
>
Of all the messages to respond to you chose Erik's. Why do you respond to
one who "has driven you away?" (which is obviously not true).
Blaming Erik for not using a great programming language? You are not really
interested in CL but having others give you an economic niche and power.
Wade
> > Why do you even hang around here, Janos Blazi?
>
> This is a good question. I cannot answer it myself. I have decided to give
> up Lisp completely (one of those driven away by Erik N. :) )and I am still
> around.
Please don't give up Lisp. Please stick around and read cll and post.
Be aware though, that there are a couple of things that can get this
group buzzing like a swarm of wasps.
1) Suggesting that software should be Free/free.
2) Criticising the standard / suggesting changes to it.
You should remember that there are lots of folk in this group who
think that you are a communist terrorist if you give your children
pocket money.
>
> May I point out to you, however, that your last sentence is not very polite?
> You can either say Janos or Mr Blazi, if I may tell this, ad usum delphini.
>
He was probably trying to be rude.
Regards,
Peter
Please quit sucking up to me.
> Of course I understand that after what was going on between us you would
> never help me personally.
I would if you showed promise of actually getting anywhere on your own
after you got help. I see no such promise, have never seen it.
> May I point out to you, however, that your last sentence is not very polite?
No.
///
From the point of view of the users it is good. Is it really bad from the
point of view of the developers? I doubt it.
Though I did not pay for Perl I bought the Camel book and later I bought the
book Perl/Tk. I also have purchased three books on Python. I'll also buy the
new edition of the O'Reilly book on Qt. And, as I pointed out already, I am
making this sort of software popular among my pupils.
> Blaming Erik for not using a great programming
> language?
No, I am not blaming good old Erik. This is why I appended a smiley on this
sentence. It was meant to be a joke.
> You are not really
> interested in CL but having others give you an economic niche and power.
What kind of power? Which niche are you talking about? I should never use CL
professionally! I am a teacher at a secondary school!
Janos Blazi
I do not understand this phrase. It means probably something bad.
You will pay for your Operating System
(something that can't make money with)
but not your application development tools
(something that _can_ make money with).
Maybe it should be the other way around?
Trying to impress him with the use of superfluous flattery.
Then WHY are you posting here???? Why are you asking for free CL tools
(when they already exist)? Do you expect to teach your students CL? What
is it? You are making lots of demands with no openess.
Wade
> "Janos Blazi" <jbl...@hotmail.com> writes:
>
> > > Why do you even hang around here, Janos Blazi?
> >
> > This is a good question. I cannot answer it myself. I have decided to give
> > up Lisp completely (one of those driven away by Erik N. :) )and I am still
> > around.
>
> Please don't give up Lisp. Please stick around and read cll and post.
How _can_ he give it up? He'd need to start using it first.
I don't think this is a situation we need worry about.
Yes. I know that they usually use Scheme for this but I should prefer CL.
(Scheme is being used on some secondary schools in Germany.) Of course, if I
wanted to use software professionally, I should buy it. I mean, my company
would buy it for me if I could convince the manager.
J.B.
> Janos Blazi wrote:
> >
> > It <Lisp> should be free.
> > It should work under Windows2000.
>
> You will pay for your Operating System
> (something that can't make money with)
From what does Microsoft live than? Or Sun or IBM or RedHat or Suse
or... ? What prevents him to offer his "persoinal" Linux version and
charge for it?
> but not your application development tools
> (something that _can_ make money with).
> Maybe it should be the other way around?
Well I suppose if you want to use it you better be prepared paying for
it. I can't see alternatives.
Till then
Friedrich
> > Then WHY are you posting here???? Why are you asking for free CL tools
> > (when they already exist)? Do you expect to teach
> > your students CL?
>
> Yes. I know that they usually use Scheme for this but I should
>prefer CL.
So what's the problem with using CMUCL, CLisp or even Corman Lisp?
Friedrich
With that out of the way...
There is a notable level of intolerance in this news group to the
idea of free software. Free software can of course mean many
different things so it may be best to clarify what I'm talking about by
making a concise set of ostensive definitions.
1. "gratis" I will use meaning without pay, and freely distributable.
There are of course sub levels of this class which people can argue
endlessly about, but I will choose to ignore here. I personally tend
to favor those approaches that are not vectors for the infection of
associated software (hah! flame bait!).
2. "free" as in beer. I don't have to pay for it for whatever reason
even though it is not freely redistributable. This may include
special dispensation for educational purposes of a program distributed by
a proprietor or use of proprietary software by an individual who is not
attempting to make a profit.
3. "proprietary" meaning of course that there is a proprietor involved.
4. "open source" which will be used to denote all types of software
including "free", "gratis" and "proprietary", but which has the source
available (which may be in obtained by license in the case of proprietary
software).
The above terms will be used without quotes in the following text:
Developed countries are named as such for a good reason. They have a
large set of resources that are at the disposal of the individual. Every
time you use the telephone you make use of a huge amount of capital that
required years of person-effort to put into place and continues to require
constant maintenance. Every time you use the freeway you are taking
advantage of a shared resource. The sewer systems are used constantly by
you, and you benefit tremendously, in a way that you can hardly appreciate
until you have been somewhere that does not have the convenience of sewer
systems. All of these benefits of development of shared resources make
life easier to enjoy, and generally makes things more copasetic.
The software world presents a unique set of constraints on those things
that are possible to achieve that are capable of aiding in the general welfare.
The software world allows one to use the results of hundreds of hours of
person-labor with basically NO DIRECT COST to any other individual using
the resource. This is a very peculiar case of an almost perfect
non-exclusive shared resource. Its only caveat being the amount of
energy necessary for the operation of execution and copying of the
said resource, which is damn near 0.
Software doesn't even require maintenance in the same sense as most resources.
Maintenance in the software world means either fixing basic problems of design,
making extensions that did not previously exist, or altering the program to
continue working with dependent programs which are themselves in flux.
Even more bizarre, the overhead for creation of software is basically the cost
of the computer, the energy cost to run it, and whatever time the individual
decides to put into it. This is very much unlike the resources of the physical
realm that we have built our concepts (and systems) of economy around.
This presents possibilities for the creation of shared resources that make the
aqueducts of Rome look silly. All that is required are volunteers. These of course
can can be obtained by promising the spoils of war, glory and fame.
Free software resources have tended in recent years to be much more useful and much
more stable then the crap that we tend to get from the proprietors. This is not
so much true in the case of lisp which has really incredibly well written software
for sale, but you don't have to look far beyond the special case of lisp compilers
to find this. Just look at things like VSS, Rational Clear Quest, Rational Rose,
(is there even an editor worth mentioning here?). I'm sure others can add to this
list of crappy but very expensive software.
The other advantage of free software is that it is open source. In recent years
(when did this start? Early 80's?) the programmer has been totally screwed by
proprietors in that we never expect to get the source code for the software that
we are using. The costs of the omission of source code are manifold, and I will
list some problems that come to immediately to my mind below:
1. Lack of a common body of knowledge. (or "Where is our Shakespeare?")
How can you expect to be literate if you never read? I've only read common lisp
written by maybe a dozen or so programmers. I've only ever studied code written
by perhaps 6. If I had only read 6 English authors, I would have had to have
dropped out of Elementary school. This is a major problem with the current ethos.
2. Inflexibility in the face of immediate market demands.
If I rely on some proprietary piece of code for which I do not have the code and
I find that there is an immediate need to fix some behavior about that piece of
code, then I should be able to devote resources to the solution. Waiting for
the vendor to fix it is not always a viable option. The may not even care. And
if they do they may not find it as critical to act on a particular time schedule.
SOOOO because they didn't give me the source, I've gotten a piece of software that
may turn out to be worse then useless to me. I've invested my effort in it, and
now it is failing in a manner that I'm unable to repair.
3. General improvement of welfare.
If there is a large body of code that everyone can use as infrastructure, and that
the programmer can assume exists in all circumstances, both because they don't pay
for it directly and because it is pervasive, then all sorts of benefits arise.
People have to reinvent code much less often. Infrastructure can be made more
robust. More difficult problems can be conquered, as the programmer is freed
from thinking about low level details. These all might seem like pie in the sky
ideals but I believe they actually have some incarnation in the free *nix's that have
fruited in the last 10 years, and Emacs certainly has a place in my heart.
The first two advantages are not the exclusive domain of free software but are
really the result of open source. Open source has not been taken seriously by
vendors, and so has caused a backlash against all proprietary software because
many are not willing to give up their source. I believe this is an ill conceived
form of insanity, that only makes "gratis" software look all the more appealing.
I'm more then a little bit peeved at vendors in general for not distributing their
source with their applications regardless of whether or not it is proprietary.
Those that do, and charge hefty fees for the source are only marginally better,
but at least one has options.
I'm not in any way opposed to selling software, that is how I make my paycheck,
what I'm opposed to is an irrational fear of something that is likely to benifit
everyone.
"You've been listn'n on the eeeeeeasssy lisp'n station... thanks for tuning in folks."
Gavin
--
Gavin E. Mendel-Gleason
(let ((e-mail-address "PGIU...@VGIHKRR.TKZ"))(loop with new-string = (make-string (length e-mail-address))
for count from 0 to (1- (length e-mail-address)) for char-code = (char-code (aref e-mail-address count))
for new-char-code = (if (and (> char-code 64)(< char-code 123))(+ (mod (+ 13 char-code) 52) 65) char-code)
do (setf (aref new-string count) (code-char new-char-code)) finally (return new-string)))
> Be aware though, that there are a couple of things that can get this
> group buzzing like a swarm of wasps.
>
> 1) Suggesting that software should be Free/free.
> 2) Criticising the standard / suggesting changes to it.
I don't remember any serious criticism of Common Lisp standard being
put on this group.
abe
--
<keke at mac com>
(1)
As far as i know is CMUCL not available under Win2K.
(2)
*My* main problem with CLisp and Corman Lisp is, hoever wonderful these
products are, that the do not have a GUI toolkit binding as I pointed out in
my original mail.
You are an idiot. ( :) )
>> So what's the problem with using CMUCL, CLisp or even Corman Lisp?
>
> (1)
> As far as i know is CMUCL not available under Win2K.
>
> (2)
> *My* main problem with CLisp and Corman Lisp is, hoever wonderful these
> products are, that the do not have a GUI toolkit binding as I pointed out
> in my original mail.
Why not simply using Xanalys LispWorks for Windows?
The personal version is free and should be _definitely_ enough for the
purpose of teaching CL on secondary school.
LispWorks has a nice IDE and has with CAPI an easy to use GUI toolkit.
ciao,
Jochen
> > You mean "literally", rather than "virtually".
>
> English is not my native tongue but I wanted to say that they were not
> really created out of nothing, something had been there when the guy started
> working on it. We know that Python was the second try and the sam is true to
> some extent for Qt. I thought 'virtually' would express this.
In ordinary spoken English, it has precisely the meaning you used.
"virtually" means "almost completely" and "literally" means "completely"
(which would be recognized as obvious hyperbole, and would be assumed to
mean "almost completely" anyway).
In nerd-speak, "virtually" might have some potential other connotations
because of the "virtual"/"actual" distinction, which bears some superficial
resemblance to the "virtual"/"literal" distinction, but
I think it should be possible to easily disambiguate them through pragmatics
in most cases.
I wouldn't let this comment of Ian's change the way you use the word
virtually, which sounds to me from this example to be virtually, if not
literally or actually, flawless.
http://www.cadvision.com/humeniuw/ybbil-capi.zip
It s a little LOGO like program to move images (in this case ladybugs)
around a screen. You will have to modify ybbil-capi.lisp to point to the
proper pathname for the images.
Load then run test in package ybbil.
Wade
"Jochen Schmidt" <j...@dataheaven.de> wrote in message
news:9nauhg$rje$1...@rznews2.rrze.uni-erlangen.de...
> With that out of the way...
>
> There is a notable level of intolerance in this news group to the
> idea of free software.
Nonsense.
There is a notable level of intolerance in this newsgroup for the idea
that "free software" is a panacea or should be used for everything.
This community is full of free software.
The most extreme views have probably been taken by me when I've gone so far
as to indicate that sometimes there is financial/commercial injruy done by
the release of free software. I think this is undeniably true. The only
question is whether such harm is inappropriate, and we have discussed that
at length. I'd personally like not to rehash that and do not mean this
simple statement of mine to reopen that door.
There have from time to time been people passing through here who have
suggested people here should "give more stuff away". It is only in response
to that movement that I have occasionally gotten into my anti-"give more
stuff away" mode, to establish some balance. Whether to give things away
or not should be something one does as the result of serious thought, not
as the result of some kind of peer pressure that says you're not cool if you
decide to charge money. The decision of how to make the books balance between
one's contributions to the world and the money one receives back is a personal
choice and ought not be dictated by otehrs. It also ought not be entered
into lightly because it has far-reaching consequences later in life; it is
much easier to give something away later than to undo the giving away of
something that could have brought you revenue to care for you if you are
injured or sick. However warm and fuzzy the free software folks are, they
do not insure you against hardship, catatrophe, downturns in the job market,
sickness, and other things where you might be able to use real hard cash for
things that you have spent real hard hours building.
[Much unnecessary text justifying the virtues of free software to society
omitted. No one is challenging that.]
> I'm more then a little bit peeved at vendors in general for not
> distributing their source with their applications regardless of
> whether or not it is proprietary. Those that do, and charge hefty
> fees for the source are only marginally better, but at least one has
> options.
That is wholly their right. They made the software. They are under no
obligation to have even done that. By what authority are you entitled to
expect not only that they would make something, but that they would do so
on your terms?
It is fine to decide for yourself that YOU will give out free software.
It is quite another, and laughable to apply the term "free" (as in "liberty")
in this context, to assert that others MUST do the same.
You are, of course, "free" to get upset at anything you like. Even that
2+2=4. I'm not sure what good it will do you, though.
There are some strong commercial arguments for NOT sending out software
sources with software distributions. As with all things, there are two
sides to that issue and people will counter-argue. But such counter-arguments
do not negate the strong arguments for not distibution the sources. They
just mean there are multiple, non-cancelling issues for each vendor to
balance in deciding which way to go and that legitimate decisions can be
made, according to context and choice, in both directions.
> I'm not in any way opposed to selling software, that is how I make
> my paycheck, what I'm opposed to is an irrational fear of something
> that is likely to benifit everyone.
That is not at all clear. Nor have you demonstrated irrationality.
CLEARLY, as you have argued, access to the sources adds value to some
customers. (I might even argue not to all, since some customers would
just shoot themselves in the foot. The last thing my mother needs is
access to the Macintosh sources to help her get along with her Mac.
And while some programmers are competent to do so, even some other
programmers are better off not tinkering. Since the vendor will
receive the support call, it is up to them to decide if it's a
money-making opportunity or a nuisance, not to you.) Nevertheless,
markets normally charge more for more value, and it's not "irrational"
to adopt such a model even if you have a different model. People
disagree on all kinds of market models and that doesn't make one camp
"irrational" and one camp "rational"; it demonstrates that people have
strongly held legitimate beliefs in various ways. It further is the
case that no single solution is probably uniformly right in all
circumstances, so every attempt to do "proof by example" without
examining other factors that we probably don't have an exact science
for enumerating is probably a waste of breath.
It is also not irrational, even if it might not be your personal strategy,
to adopt a model that customers are better guided in their use of a facility
by a manual than by playing inside. You might think yourself competent
to look inside, but you are not the only one who is likely to get sued if
you go inside and the vendor has approved such. There is an ongoing push
for commercial accountability, and as a vendor I'm simply not willing
to be accuountable for what people do when looking at the sources.
Your mileage may vary.
As a general meta-ruule, calling a debate partner "irrational" is not a
way to win friends and influence people. I do not begin by an assumption
that the free software people are irrational; I would appreciate the same
courtesy in return.
> Here is my wish list for Lisp.
[...]
> It should have big standard libraries like C or Python.
Which existing Lisp libraries did you try? Can you elaborate on specific
problems of those libraries that made you reject them as not adequate for
your needs? What kind of libraries do you need?
Paolo
--
EncyCMUCLopedia * Extensive collection of CMU Common Lisp documentation
http://web.mclink.it/amoroso/ency/README
[http://cvs2.cons.org:8000/cmucl/doc/EncyCMUCLopedia/]
Actually I did not know that there are any such libraries. When I started
with Lisp, more than a year ago, maybe two years ago, I asked in this group,
if there was a function that is given a string (typically a line I read from
a text file) and that returns a list of substrings the given string consist
of. Substrings in the given strings are typically separated by whitespaces.
Something like
y=string.split(s)
in Python. At that time somebody told me that there was no such function and
showed me, how to program it myself.
Also at that time somebody told me that of course the Lisp libraries could
not measure up to the C- or Python libraries and anybody else added that the
functions in those libraries were not of much worth as they were not
reentrant. And that it was not sensible to make such libraries as long as it
is not known, how those routines are properly made.
But the point with the standard libraries is a minor problem compared with
the GUI toolkit problem. If I can use one of the three toolkits I mentioned
i can be sure that my investition pays sooner or later. CAPI or CLIM on the
other hand can only be used with Lisp.
Mr. Blazi only stated what he and, I believe, most of the mainstream
world, wants. We may not be in a position to do it for him/them, but
don't bite his head off for asking. Aside from aesthetes like us, I know
of noone willing to change how they think, put themselves on "the other
side" of every design/implementation debate and then live without the
cute GUI tools and huge libraries and such that the mainstream world
accepts--and rightly or wrongly demands--as a matter of course.
Yes, it's unlikely a small group like us could provide all he's asking
for, especially for free, but it's NOT his fault for wanting it. He sees
the C++ world get GNOME and KDE and all sorts of freebie stuff, but
keeps hearing that lisp isn't about GUIs and other glory-boy stuff, at
least not for free. Yes, the C++ world gets subsidies we can only dream
of, but that's not his fault--it's life for minorities like us.
To make it more unpleasant, Mr. Blazi also gets called a troll and
worse, and is not even given the benefit of the doubt in cases of
highly-nuanced English. Yikes!
Your anger with how (badly) the world works is justified, but the bad
vibes are off-putting and spiritually draining.
Eric
I suspect the kinds of libraries he misses are those for threading,
sockets, shared memory, regular expressions and maybe a GUI. Those are
the sorts of things that are 'standard' (In a fairly loose sense of the
word) in the Perl and Python worlds.
It would certainly be useful to me to have standardised regexp and
socket libraries (perhaps something in the same vein as the CLIM spec).
Of the small amount of CL code I've written so far, I've been bothered
by the lack of regexps in the core language (I come from a very much
Perl background, I'm afraid) and, since I haven't yet settled on any
particular implementation, getting socket code working on various
different Common Lisps has proved do be rather daunting.
I've also heard it argued that in the so-called internet age, languages
now need to support network programming at the core level in order to
compete. In addition to sockets this would presumably mean built-in
support for the most popular internet protocols, ie. HTTP, as well as
providing datatypes for things like URIs. Whilst I'm not sure I agree
with this, you can be certain that in the eyes of many people, the lack
of a standard in this area might make CL look a little dated.
--
Mark Hulme-Jones <mjo...@frottage.org>
JB> ... When I started with Lisp, more than a year ago,
JB> maybe two years ago, I asked in this group, if there was a
JB> function that is given a string (typically a line I read from
JB> a text file) and that returns a list of substrings the given
JB> string consist of.
A google/deja search on this would have been sufficient (I just
checked). It is not that tough to write your own either (as you found
out). There is now cl-partition also that got heavily discussed. If
this was truly your problem, then you need more practice doing
searches not new libraries.
JB> [...] C- or Python
JB> libraries and anybody else added that the functions in those
JB> libraries were not of much worth as they were not
JB> reentrant.
Somobody must have thought of strtok and friends if reentrancy came
into the picture. Are you sure this conversation was here?
JB> But the point with the standard libraries is a minor problem
JB> compared with the GUI toolkit problem. If I can use one of the
JB> three toolkits I mentioned i can be sure that my investition
JB> pays sooner or later.
Huh? If you mean pay in the literal sense, the thing that'll most likely
pay is knowledge of the Windows API, which you can access through Corman
Lisp as you noted.
JB> CAPI or CLIM on the other hand can only
JB> be used with Lisp.
CAPI is available only with LispWorks. CLIM is available with
Allegro, MCL, LW, OpenGenera and in evoving form with McCLIM (free).
Availability across Lisp platfroms, IMHO, is more important to
most of us than the presumed side benefit of learning a C-based (GTk),
Tcl-based (Tk) or a C++-based (QT) toolkits through a Lisp binding which
ends up not being too lispy.
The safe bet for learning those toolkits would be to do it with
their "native" language. If you want to learn Lisp, by all means do
so. If you want to learn some toolkit and you see learning Lisp as
an incidental benefit, re-think your approach.
cheers,
BM
But you are willing to have GTK+ or Tk. I am assuming here that you are
talking about the time it takes you to learn the toolkit so you can teach
your students. Are you teaching how to use a specific GUI toolkit or are
you teaching how to use a GUI toolkit in general?
You also mentioned that using the Windows API for a GUI is not appropriate.
In itself the winapi is a toolkit and provides all the functionality for
writing a GUI on Windows that you could possibly need. There are plenty of
books on the subject and an investment in learning it would eventually
payoff (as Windows is not going away ANY time soon). The Windows API can be
used from C, C++, VB, Lisp, Python, Perl ,... the list goes on and on. All
GUI toolkits on Windows use the underlying winapi.
Could you please clarify what you really want?
Are you teaching your students programming, _or_, programming in a specific
language (with specific tools, for a specific job, for a specific platform)?
Do you have some goals that you want your students to achieve? If so, what
are they?
Wade
> > Then WHY are you posting here???? Why are you asking for free CL tools
> > (when they already exist)? Do you expect to teach
> > your students CL?
>
> Yes. I know that they usually use Scheme for this but I should prefer CL.
> (Scheme is being used on some secondary schools in Germany.) Of course, if I
> wanted to use software professionally, I should buy it. I mean, my company
> would buy it for me if I could convince the manager.
Flies, honey, vinegar: if the reason for your posting was that you
wanted to teach school children CL, what on earth possesed you to post
a rant filled with demands that would need to be satisfied for *you*
to use CL??? People give a damn about the welfare of school children
and how they're being taught. Maybe you should try again:
Hi, I'm a secondary school teacher, I want to teach my students in
Common Lisp, however the following things are preventing me from
doing so:
...
Could anyone help me here?
MHJ> [...] since I haven't yet settled on any
MHJ> particular implementation, getting socket code working on
MHJ> various different Common Lisps has proved do be rather
MHJ> daunting. [...]
Could you tell us what problems you ran into and what you think would
have helped make it less daunting? This is an honest question. If we
don't know what's throwing people off, we (vendors and volunteers)
cannot improve things by writing FAQ's or tutorial documentation/code.
Saying it is daunting to do perly things in CL is pretty useless as
far as improving things goes. How do I do such and so common thing
that I can do easily in perl is a better FAQ, which might get you flamed
for say a regexp that is more permissive than you thought or a race
condition that makes people quote 'worse is better" or somesuch BUT it
might also help people help others like yourself. The best would be
to tell us what seemed daunting and what you can tell us in retrospect
after you figured out how to do it.
As for the regexp comments I deleted, I just remembered that Jochen
Schmidt did a beautiful job of doing a regexpy thing for Bagley's
benchmark page, which as a bonus, runs faster than perl, python, C (with
pcre) etc. See:
http://www.bagley.org/~doug/shootout/bench/regexmatch/regexmatch.cmucl
MHJ> I've also heard it argued that in the so-called internet age,
MHJ> languages now need to support network programming at the core
MHJ> level in order to compete. [...]
This has always been a library issue, I think. ANSI C does not
standardize this, C++ with STL does not standardize this (AFAIK), why
is it a problem with ANSI CL?
cheers,
BM
Dunno about the rest, but there _is_ a full-fledged
regexp matcher a la Perl 5.x for Common Lisp:
http://www.cs.rice.edu/~dorai/pregexp/pregexp.html .
(It is Perl-like to the extent that it even does
recherche things like positive and negative lookahead
and lookbehind. I consulted the 3rd edition of the
camel book for the spec.)
The downside for some (well, one, so far) is that the
source looks ugly but that's because it really isn't
the "source" -- <duck>I machine-converted it from my
Scheme original</duck>.
--d
If you prefer free software why don't you use Linux? It helps to learn.
>
> (2)
> *My* main problem with CLisp and Corman Lisp is, hoever wonderful these
> products are, that the do not have a GUI toolkit binding as I pointed out in
> my original mail.
There is Motif GUI toolkit under Linux.
So it looks like all your problems have been inspired by Win2k but not Lisp.
Just use Linux. ;)
--
Aleksandr Skobelev
> Bulent Murtezaoglu <b...@acm.org> writes:
>
> >
> > -- Let's assume Janos Blazi is not an idiot. The issue becomes more
> > interesting. Why would a reasonable person expect all the things he's
> > asking about to be available for free?
> >
>
> We've just been through a huge bubble where everyone threw money at
> anything vaguely high-tech. One of the side-effects of this is that
> there has been so much money floating around that people in the right
> industries didn't really have to do any work, or not work they got
> paid for. So they started doing other stuff at random, like churning
> out software for free. They even started inventing reasons why free
Interesting theory, but it seems to have a couple of weaknesses. First,
with all that money floating around, you'd think that for-pay software
would have a great shot too, perhaps even an advantage. After all, for a
great many corporate applications, the cost of software is down in the
noise.
Second, I'd like to see an example of *one* piece of software that was
written by someone who should have actually been doing something else at
his high-paying, new economy job. Plenty of free software got written by
people who were trying to solve a problem and decided to share, but you
seem to be suggesting a different scenario.
> Unfortunately the hype was all lies: the productivity improvements
> aren't really there after all, annual growth hasn't gone up by 4%, the
> internet isn't going to permanently change the world. No one really
> seems to have noticed yet, I guess because none of the really visible
> Free software conmpanies has gone under yet (I wonder what the future
> holds for Red Hat, or VA Linux though).
Lots of companies aren't doing so well; does that spell the end for
commercial software and hardware?
To return to Lisp for a second... I personally think that Free Lisp
software -- both implementations and applications -- are important because
it allows future engineers, managers and decision makers i.e., students,
an opportunity to be exposed to The Lisp Way and to use it for real
applications. IMHO the most exciting things going on in the Lisp world
right now are in the free software realm.
Tim
I agree completely this approach would not only get better responses in terms
of tone, but would get more constructive responses in practice.
For example, both Franz Allegro CL 6.0 Trial Edition and
Xanalys LispWorks 4.1.0 Personal Edition may be suitable
for use in a class, even though they are not "free software".
Both of these are available by network download from these
companies' web sites, www.franz.com and www.xanalys.com.
They ARE commercial proprietary code but are available for no cost
for some purposes and I believe teaching is one of them. Check
the license in each case to be sure.
I personally think LispWorks has the easiest and most consistent
coding environment UNLESS you plan to teach GUI development; then
Franz's environment is definitely the best. People who only like
GNU-brand Emacs-like environments and will accept no substitutes will
surely disagree with me on the question of which development
environment feels better. Franz is generally agreed, I think, to have
tighter GNU-Emacs integration. But overall, for me, that's exactly
what makes it feel less consistent: LispWorks, by contrast, uses a
built-in editor that is consistently available throughout and a single
set of GUI widgets that are easier to learn because you aren't
constantly tossed back and forth between windows whose look and feel
is maintained by different vendors. Instead you get a single
corporate look and feel, and that feels better to me.
[I don't know if MCL has a teaching version/price.]
None of this is intended to disparage the other environments like Corman
and CLISP already mentioned. But I think people have not been pushing
the commercial vendors thinking that the request for free software meant
non-proprietary software.
The problem with this "analogy", if that is what it is, is that Perl and
Python are single-implementation languages and you buy into whatever they
give you, qua languages-and-implementation. This is no different from
using a single Common Lisp environment. Can you use the regexp library
from Perl in Python? Why do you want to use the regexp library from one
Lisp in another? (I know the answer, but I would like you think about
the reasons you think "it is the same language, damnit" is sufficient to
gripe when you do not gripe about single-implementation languages.)
> I've also heard it argued that in the so-called internet age, languages
> now need to support network programming at the core level in order to
> compete. In addition to sockets this would presumably mean built-in
> support for the most popular internet protocols, ie. HTTP, as well as
> providing datatypes for things like URIs. Whilst I'm not sure I agree
> with this, you can be certain that in the eyes of many people, the lack
> of a standard in this area might make CL look a little dated.
Which other languages have a _standard_ specification for this? Why is
Common Lisp held to a different standard (pardon the pun) than languages
that have only a single implementation or who survive wih libraries that
require significant system-dependent customization like that provided by
autoconf?
///
> * Mark Hulme-Jones
> > I suspect the kinds of libraries he misses are those for threading,
> > sockets, shared memory, regular expressions and maybe a GUI. Those are
> > the sorts of things that are 'standard' (In a fairly loose sense of the
> > word) in the Perl and Python worlds.
>
> The problem with this "analogy", if that is what it is, is that Perl and
> Python are single-implementation languages and you buy into whatever they
> give you, qua languages-and-implementation. This is no different from
> using a single Common Lisp environment. Can you use the regexp library
> from Perl in Python? Why do you want to use the regexp library from one
> Lisp in another? (I know the answer, but I would like you think about
> the reasons you think "it is the same language, damnit" is sufficient to
> gripe when you do not gripe about single-implementation languages.)
Perhaps "standard" has been co-opted to mean "works the same everywhere I
want to use it?" That property is true of Java, mostly true of Perl,
dunno if it's true of Python, and for sexy new functionality, not true of
Common Lisp.
Tim
Why is it not sufficient to get your hands on cost-free or extremely
inexpensive commercial Common Lisp implementations?
///
The Lisp GUI toolkits are the way they are for a REASON. They are effective
ways of tackling GUIs in general and other GUIs (like Java's) have borrowed
concepts from them.
For a teacher you seem to know more about programming than you let on.
Turbo Pascal certainly dates you. Hmm....
How about this.
Have a programming contest among your students. Give a list of acceptable
languages/tools including some Common Lisp ones. Post information where
they can advice and pointers for their various tools,
comp.lang.lisp for CL
comp.lang.scheme for Scheme
comp.lang.python for Python
...
You know the rest.
If you need some ideas for a competition subject I am sure people could come
up with something appropriate. It would be a great experience for the
students to see solutions is various languages and the effort each language
inflicts on the coder.
Let them go and see what happens. Tell whoever chooses Lisp to tell us that
you sent them. I promise to be very hospitable. Perhaps it will help
educate a few young minds and help change yours. :)
Wade
But it is true of each vendor's Common Lisp implementation. For single-
implementation languages, this is so trivial to accomplish that it has no
value at all to point to such examples. But if you think it is great for
Perl, why, you _should_ think it is great for Allegro CL. If you do not,
it is because you have higher standards for Common Lisp than for other
languages -- which is probably not a bad thing in itself, but it means
you are setting yourself up to feel bad about something that is great.
This is not to imply that we should not work together to find a common
socket interface, etc, for Common Lisp, it just means that some people
have to do the work, and that means both using the existing interfaces
and suggesting to each vendor how to proceed towards standardization.
As long as people are waiting for somebody else to do tings for them,
nothing will happen.
///
Well, take a project that I'm working (slowly) on as an example. A
friend and I are adding scheduler activations (an approach to
scheduling/multiprocessing that uses significantly different
abstractions than threads, but on which threads can be better
implemented) to the Linux kernel. Once we're done with that, I'm
planning on adding activation-based multiprocessing to SBCL. It's not
really the (lack of) cost that's important for us with these projects:
if a copy of Linux and SBCL each cost $100, that'd be within my/our
means. What's important is to have complete sources to the system, to
be able to modify them, and to be able to distribute the changes (the
last one isn't *strictly* necessary -- we could still write papers
about stuff we couldn't distribute, but that would feel rather
anti-climactic and would be fairly disheartening to spend that much
work on something we couldn't share).
For those of us interested in lowdown, systems-level stuff, it's
important to have Free Software systems, because I'm not about to
implement an entire CL system just to add multiprocessing to it
(though I might like to for other reasons, if I had the time...)
Lack of source code. Since I'm persuing the pedegogical angle here, I
consider that to be important, both to teach how Lisp works and for style
examples.
Most if not all free commercial implementations that I know of are
crippled in some way. Maybe that doesn't matter in all those "Common Lisp
for Dummies" classes or for someone just noodling around, but it quickly
becomes onerous for someone with ambitious plans and certainly appears
unattractive vis a vis the alternatives (C, C++, Python, Smalltalk, Java...)
Tim
I think you should work with the vendors on this. It is pretty amazing
what you can do and get done if you are willing to _talk_ to people who
own the rights to things. By and large, just because someone does not
give _everybody_ source access does not mean they give nobody source
access and let them play with their system. I find it disheartening to
see that so many people confuse so many of the issues in source access,
redistribution, educational values, etc. There are tradeoffs here that
are not necessarily optimal in only one of the available options.
///
Surely part of the point of having a standardised Common Lisp is that I
can reasonably expect to change my vendor without having to change too
much of my source code? This is exactly what sets a standardised
language like CL apart from something like Perl or Python. A standard
should mean that I differentiate between different vendors
implementations based on factors like efficiency, the usability or the
development environment or the quality of their customer service. With
Perl or Python I'd have to settle for what I get. For widely-used
features like sockets and perhaps regexps, a standard is going to do
much more good than harm, much as the CLIM does for user interfaces.
Non-adherence to such standards would make or break my choice of
implementation, giving vendors an added incentive to co-operate. It's
just a question of which features you consider 'commoditised' enough to
require a definition that vendors should follow. For CL this means
things like hash tables, vectors, structs and classes. All I'm saying
is that it would be even better if Regexps and Sockets were included
too.
>> I've also heard it argued that in the so-called internet age, languages
>> now need to support network programming at the core level in order to
>> compete. In addition to sockets this would presumably mean built-in
>> support for the most popular internet protocols, ie. HTTP, as well as
>> providing datatypes for things like URIs. Whilst I'm not sure I agree
>> with this, you can be certain that in the eyes of many people, the lack
>> of a standard in this area might make CL look a little dated.
>
> Which other languages have a _standard_ specification for this?
If by 'standard' you mean a written standard like that for ANSI CL, then
basically none, and I consider this to be a problem (though when and if
Microsoft's submission of C# and it's libraries gets standardised by the
ECMA there might be one). If on the other hand you mean a de-facto
standard, like that dictated by Sun for Java or the implementors of
languages like Rebol, Ruby and Python, then quite a few. Personally, I
think that having something like the ANSI standard for CL is an
important thing. Unfortunately many, many others do not agree with me,
and are prepared to settle for de-facto standards like Java instead.
Creating a written standard for APIs/implementation of important new
features could conceivably boost the attractiveness of CL in many
people's eyes. Provided that attracting more users of the language is
what one is trying to achieve, of course.
> Why is Common Lisp held to a different standard (pardon the pun) than
> languages that have only a single implementation or who survive wih
> libraries that require significant system-dependent customization like
> that provided by autoconf?
I'm not trying to hold Common Lisp to a different standard. Perhaps
what I'm really saying is that if you want to make sure that people
realise how much better a standardised CL is than a de-facto standard
like Java, you'd better make sure that CL includes standardised ways of
doing the things that people want to do.
--
Mark Hulme-Jones <mjo...@frottage.org>
It's true as far as it goes, but it's a stretch along many axes to say
that Allegro CL "works everywhere" in the same sense that Java or Perl
"work everywhere" (and I'm talking about perceptions as much as anything,
so I feel comfortable in not being percise about "work" and "everywhere"
in the latter case). AFAIK Allegro is the most portable of the commercial
implementations, yet it doesn't have a Macintosh implementation, doesn't
run on IBM mainframes (does it?), etc. Furthermore I suspect that it's
not practical cost-wise to deploy an application to every box in an
enterprise using Allegro CL in the way you could using Perl or Java; I've
never asked and could be wrong, but even the fact that I would have to ask
is a barrier to it running everywhere.
Personally I'm very pleased about Allegro's portability, but it's the
Mercedes of Lisp implementations in many ways. As you move down the cost
spectrum, the Lisp implementations that "work everywhere" are lacking in
sexy features.
> it is because you have higher standards for Common Lisp than for other
> languages -- which is probably not a bad thing in itself, but it means
> you are setting yourself up to feel bad about something that is great.
>
> This is not to imply that we should not work together to find a common
> socket interface, etc, for Common Lisp, it just means that some people
> have to do the work, and that means both using the existing interfaces
> and suggesting to each vendor how to proceed towards standardization.
> As long as people are waiting for somebody else to do tings for them,
> nothing will happen.
I agree absolutely with that. It's been mentioned in other threads that
"it should be standard" is often code for "I want someone else to have to
do the work."
Tim
TM> Lack of source code. Since I'm persuing the pedegogical angle
TM> here, I consider that to be important, both to teach how Lisp
TM> works and for style examples.
Sorry, I don't buy this. I have been using C for about 12 years
now, I never once had the need to look at the innards of my compiler.
I have learned from source code, for sure, but that was not the source
code of my development environment. If people want to look at source
code, there are plenty of examples available. PAIP is equivalent to
if not better than Stevens' or AT&T folks' books on C for clearly
explained source code. Several large systems are available in source
form (Garnet, ACL2, LISA etc.) and PCL comes with the excellent AMOP
book. (apologies to people whose work I cannot remember right now).
If people wnt to see Lisp source, plenty of non-toy examples are
available.
If you count Corman Lisp as a commercial Lisp, let me point out that
it comes with the source also.
I think Erik was asking a rhetorical question. There absolutely is no
reason why someone cannot use commercial lisps to teach. When I was
in school we had both KCL (with source) and Allegro installed and
maintained. Guess which one people used when they were learning?
TM> Most if not all free commercial implementations that I know of
TM> are crippled in some way.
Yes. Though we do not know how the vendors behave when teachers approach
them with legitimate reasons for removing these restrictions.
TM> Maybe that doesn't matter in all
TM> those "Common Lisp for Dummies" classes or for someone just
TM> noodling around,
Do those exist? I think dummies would go for something else.
TM> but it quickly becomes onerous for someone
TM> with ambitious plans and certainly appears unattractive vis a
TM> vis the alternatives (C, C++, Python, Smalltalk, Java...)
If they have ambitious plans that require tweaking the guts of the
compiler or 'free' software for ideological reasons, they can handle
the switchover to CMUCL on Unix or (if you count it as free) Corman on
Windows. I don't think Clisp is that much slower than Perl or Python
so that is another possibility for Windows. Perhaps they have some
money for those ambitious plans and can shell out the money for a
student version of LispWorks (which is non-crippled) for $699.
What exactly were we talking about in this thread, BTW? I completely
lost track (but won't waste already typed prose and post anyway, sorry!).
cheers,
BM
I'm not sure that I can make a whole lot of difference in terms of changing
peoples perceptions of 2+2=4, so I'll leave that one alone.
However, there is a market culture that has developed around the software
industry that posits that open source software is something that is only to
be thought of as a possibility in extreme circumstances. This is a sort of
"mass consent" much like any other culture. I'm trying to raise awareness
as to the possibilities of another possible market culture. One in which
getting the source for your application is much more likely.
I do feel I have the right to be demand this as a consumer of products. I
feel I have this right in the same way that I feel I have the right to demand
that I be able to purchase a car that has good gas mileage. If there is no
customer demand, then there is nothing to drive expectations.
> There are some strong commercial arguments for NOT sending out software
> sources with software distributions. As with all things, there are two
> sides to that issue and people will counter-argue. But such counter-arguments
> do not negate the strong arguments for not distribution the sources. They
> just mean there are multiple, non-canceling issues for each vendor to
> balance in deciding which way to go and that legitimate decisions can be
> made, according to context and choice, in both directions.
I realize that there are strong and reasonable arguments for keeping sources
closed. I do not however want to gloss over this issue. I left it out for
the sake of brevity in my previous post.
Backward compatibility is most often sited as one of the major problems with
releasing the source to your product. In so doing you are making absolutely
no guarantees about what will remain a static interface and what will not.
This is definitely a problem if the code is likely to evolve.
While not releasing the source may avoid this issue entirely, it is a rather
extreme solution. In lisp it would be easy to have the convention that packages
would designate the boundaries based on what is an external and what is an
internal symbol.
Emacs has managed to give away its source and support massive extensibility
and it has not collapsed under the weight of backward compatibility.
Open source may not be the only model that gives extensibility though. It is
simply the most obvious, especially when coming from a *nix/c/windows world.
It may be that an appropriate solution to the overly static nature of applications
is to make them programming languages themselves. Lisp of course is well
suited to deliver in this area.
> > I'm not in any way opposed to selling software, that is how I make
> > my paycheck, what I'm opposed to is an irrational fear of something
> > that is likely to benefit everyone.
[ some omissions ...]
> As a general meta-ruule, calling a debate partner "irrational" is not a
> way to win friends and influence people. I do not begin by an assumption
> that the free software people are irrational; I would appreciate the same
> courtesy in return.
It is irrational to me until it is rationalized. What I was actually attempting
to do, is illicit a rational description of the opposing side, rather than an
offhand statement. I was not attempting to make an argument ad hominem.
Gavin
--
Gavin E. Mendel-Gleason
(let ((e-mail-address "PGIU...@VGIHKRR.TKZ"))(loop with new-string = (make-string (length e-mail-address))
for count from 0 to (1- (length e-mail-address)) for char-code = (char-code (aref e-mail-address count))
for new-char-code = (if (and (> char-code 64)(< char-code 123))(+ (mod (+ 13 char-code) 52) 65) char-code)
do (setf (aref new-string count) (code-char new-char-code)) finally (return new-string)))
isn't garnet running with clisp? clx definitely does.
hs
--
Lbh unir whfg ivbyngrq gur Qvtvgny Zvyraavhz Pbclevtug Npg ol oernxvat
gur cebgrpgvba bs pbclevtugrq zngrevny. Vs lbh ner abg n pvgvmra be
erfvqrag bs gur HFN, lbh evfx orvat vzcevfbarq naq uryq jvgubhg onvy
sbe hc gb gjb jrrxf hcba ragel gb gur HFN
(c) Copyright 2001 by Hartmann Schaffer (signature only)
good advice, but it's probably the schoolboard that decided to run
win2k
do you have any ideas about your teaching aims? if you intend to
teach gui concepts, you should be able to use any toolkit that is
available, e.g. garnet. also, does the schoolsystem you are workng in
insist that the systems run win2k? there are such concepts as dual
boot, boot managers etc which let you install other systems like linux
or any of the bsd systems where you have more options
> I don't think Clisp is that much slower than Perl or Python so that
> is another possibility for Windows.
FWIW, in my experience (on Linux, FreeBSD, and Solaris), CLISP beats
Perl both for loading and execution speed. Yeah, it's slow for a
Common Lisp. But slow for CL means fast for a lot of languages.
That's part of why I like it so much as an implementation -- it's
massively portable and still fast enough for most all purposes.
> > So what's the problem with using CMUCL, CLisp or even Corman Lisp?
>
> (1)
> As far as i know is CMUCL not available under Win2K.
Well could it be that one has to spend some time getting it running
there? If that does not work I do think that CLisp run on W2K too.
>
> (2)
> *My* main problem with CLisp and Corman Lisp is, hoever wonderful these
> products are, that the do not have a GUI toolkit binding as I pointed out in
> my original mail.
This is not true for Corman Lisp. The use the Windows API and if you
would have looked into the sources you would have seen that.
It was pointed out by Jochen that Xanyaly has a personal edition. And
you even get you "so beloved" GUI-Toolkit too.
Well there are so many options that I can't see any reason not to
teach Common Lisp. And if you don't thing so you may check out
DrScheme. It's not Common Lisp but it's anyway a good piece of
software.
Friedrich
> >>>>> "TM" == Tim Moore <mo...@herschel.bricoworks.com> writes:
> TM> On Fri, 7 Sep 2001, Erik Naggum wrote:
> [...]
> >> Why is it not sufficient to get your hands on cost-free or
> >> extremely inexpensive commercial Common Lisp implementations?
>
> TM> Lack of source code. Since I'm persuing the pedegogical angle
> TM> here, I consider that to be important, both to teach how Lisp
> TM> works and for style examples.
>
> Sorry, I don't buy this. I have been using C for about 12 years
> now, I never once had the need to look at the innards of my compiler.
As a student, wouldn't it have been instructive to be able to do so, at
least for the C library if not the compiler?
> I have learned from source code, for sure, but that was not the source
> code of my development environment. If people want to look at source
> code, there are plenty of examples available. PAIP is equivalent to
> if not better than Stevens' or AT&T folks' books on C for clearly
> explained source code. Several large systems are available in source
PAIP has good source code examples for a certain class of problems. It
touches on Lisp implementation, but nothing compares to having the source
to running code and even better, having source that can be rebuilt with
local modifications.
Stevens acquired the understanding he needed to write his fabulous books
by.... reading the source code!
> form (Garnet, ACL2, LISA etc.) and PCL comes with the excellent AMOP
> book. (apologies to people whose work I cannot remember right now).
Hmm, PCL, sounds like the source to Lisp implementation to me.
> If people wnt to see Lisp source, plenty of non-toy examples are
> available.
>
> If you count Corman Lisp as a commercial Lisp, let me point out that
> it comes with the source also.
I didn't know that! Cool.
>
> TM> Maybe that doesn't matter in all
> TM> those "Common Lisp for Dummies" classes or for someone just
> TM> noodling around,
>
> Do those exist? I think dummies would go for something else.
That was a weak attempt at humor. Actually, the forward to the book "Lisp
Lore: A Programming Guide to the Lisp Machine" suggests that it started as
notes for a similar class. Ah, those were the days.
>
> TM> but it quickly becomes onerous for someone
> TM> with ambitious plans and certainly appears unattractive vis a
> TM> vis the alternatives (C, C++, Python, Smalltalk, Java...)
>
> If they have ambitious plans that require tweaking the guts of the
> compiler or 'free' software for ideological reasons, they can handle
> the switchover to CMUCL on Unix or (if you count it as free) Corman on
Exactly! That's why I'm arguing that Free Lisp is important.
> Windows. I don't think Clisp is that much slower than Perl or Python
> so that is another possibility for Windows. Perhaps they have some
> money for those ambitious plans and can shell out the money for a
> student version of LispWorks (which is non-crippled) for $699.
Dude! That's like, a month's rent. Kinda cuts into the pot-smoking and
Burning Man budget.
>
> What exactly were we talking about in this thread, BTW? I completely
> lost track (but won't waste already typed prose and post anyway, sorry!).
I was arguing that, among other reasons, Free Lisp implementations and
applications are important for educational reasons. I think we've about
flogged that into the ground.
Tim
> I don't think Clisp is that much slower than Perl or Python so that
> is another possibility for Windows.
On Linux, Clisp is noticeably faster than Python. I don't know about
Perl.
Regards,
Peter
I have tried almost everything I was told in this thread. I downloaded all
those software, especially from Franz and Xanalysis. They have my name and
my address in their files (you have to fill in a form before you can
download). I also downloaded DrScheme. I invested some work into this and I
am still monitoring those web pages.
My teaching policy at the moment will be to tell my pupils about Lisp and to
tell them that Lisp's infix notation has big advanteges and is a natural and
clever way of expressing programming concepts in many cases (putting
mathematical formulae being the only example where I should prefer the usual
infix notation).
Have you actually asked for source code access for your needs? Do you
know how much source code you get with a regular license? If not, as I
suspect, there is a lack of sincerity in the claim that you need open
source and cannot use commercial Common Lisps.
> Since I'm persuing the pedegogical angle here, I consider that to be
> important, both to teach how Lisp works and for style examples.
How much of a Common Lisp system do you expect to be written in Common
Lisp?
///
Have you tried to peek inside the GNU C library? Have you looked at
P. J. Plauger: The Standard C Library, for instance? Generally speaking,
library stuff is really advanced stuff.
> Stevens acquired the understanding he needed to write his fabulous books
> by.... reading the source code!
Undoubtedly true, but for the purposes of understanding how the Common
Lisp part of the system is defined, you actually get source code to that
with Allegro CL. (Except for the horribly primitive IF* style which
pervades the whole source code base and causes an unreadable mess that is
both much more verbose and produces less efficient machine code than more
efficient implementations that are quite evident when you rewrite it to
use more of Common Lisp to boot, so there is simply no excuse for it
whatsoever.)
> Hmm, PCL, sounds like the source to Lisp implementation to me.
Well, PCL was the reason I did _not_ delve into and use CLOS much.
Allegro CL was the reason I did. Sometimes, performance does count.
> I was arguing that, among other reasons, Free Lisp implementations and
> applications are important for educational reasons. I think we've about
> flogged that into the ground.
They are, but you should not dismiss all alternatives because you have
found what you think is a panacea. That is actually all that is
attempted by those who seem to oppose free implementations.
///
Perl was not created "for free" -- Larry Wall was paid by his
employer at the time (Unisys) to develop it as part of a
configuration management system.
EMACS was not created "for free" -- Richard Stallman was paid by his
employer at the time (MIT) using funds from the Department of Defense.
When he left MIT to port Emacs to Unix, he received continued funding
from MIT (offices, computers, etc.) and donations from corporations.
Those are two examples. Significant things don't generally come out
of thin air. Rather, they are paid for with lots of money, which can
traced directly back to government grants, other University money,
or corporate investment (although sometimes they might not realize
that their employees are freely giving away company assets.)
There might be exceptions, but it's not any of the "free" software
that I have ever used regularly. Remember, "free software" is not
like "free beer". Someone, somehow, pays for it. The "free" part
refers to the freedom to copy the software, once someone has already
paid for it to exist.
Do you also feel you have the right to get the source material for movies
you see? Actors learn to act based on published plays, which is source
code for the stage performance, and playwrights learn to write new ones
based on how old ones were written. This is undoubtedly useful within
the profession, but as a _consumer_? The Free Software movement is also
directed towards developers, not consumers. My interest and investment
in Free Software has been to advance education. My acquisition editor at
Prentice Hall told me that good authors have read at least 1000 times
more than he publishes, and that the actual published book is often no
more than a fifth of the volume of the text that has been written on it.
> I feel I have this right in the same way that I feel I have the right to
> demand that I be able to purchase a car that has good gas mileage.
But do you demand the schematics and engineering documentation on the car?
> While not releasing the source may avoid this issue entirely, it is a
> rather extreme solution. In lisp it would be easy to have the convention
> that packages would designate the boundaries based on what is an external
> and what is an internal symbol.
Or you could publish the source code for exported packages. Allegro CL
comes with (well, you have to sign a license and send it in, but it is
cost-free) sources to the Common Lisp package. You can actually get a
lot of customizations in there, and it does not change much from release
to release, either.
> Emacs has managed to give away its source and support massive
> extensibility and it has not collapsed under the weight of backward
> compatibility.
That is not _quite_ true. For those of us who have worked on Emacs for a
good number of years, the inability to separate internal from external
symbols and functionality has always been a source of problems. Users
depend on bugs, implementation quirks, and information they should not
have needed and whent they get it, could only misuse. Most of my gripes
with Emacs come from its lack of commitment to a specification -- that
is, people add stuff all the time without consideration for a planned
design, and backward compatibility problems set in as soon as it has been
released: reversing a bad design decision in Emacs is nigh impossible.
> Open source may not be the only model that gives extensibility though.
> It is simply the most obvious, especially when coming from a
> *nix/c/windows world.
This is odd to hear. The Unix world has had scripting languages forever,
and those are essentially "half-open source": You get source access to
all the scripts, and you can extend the system freely with scripts that
tie well into the functions-on-disk (executables) that are designed to be
building blocks. Unix has taught users to expect parts of their system
to be _in_ source form. Take Perl (please! :), which excellently shows
this point. Few people venture into the Perl sources itself, but lots of
people deal with other people's Perl code.
> It may be that an appropriate solution to the overly static nature of
> applications is to make them programming languages themselves. Lisp of
> course is well suited to deliver in this area.
Precisely, and that is why I think Open Source in the Common Lisp world
is a very different beast from what it has to mean in th Closed Source
world. In effect, Common Lisp is already half-open by virtue of its
retention of source-level information in the compiled system.
///
The "have to ask" part is naturally a marketing problem. There are many
open issues in how to market Common Lisp better to more people. I am in
general no fan of marketing practices anywhere. (Mostly I think it is a
dishonest and disgraceful business, even while dating a copy writer for a
large Madison Avenue company. :) Marketing to engineers generally fails,
too, because they want information that is so much more cost-efficient to
wait for them to ask for and employ somebody to answer than to write up
everything up front. If they do not want to ask, we get a deadlock. I
have no idea how to break that deadlock, but it is clearly too expensive
for, say, Franz Inc., to write and publish the kind of material that you
would find published as regular books about, say, Zope. The whole Common
Lisp business is predicated on a much closer relationship between vendor
and developer than most other languages and development tools. Some do
not want to contact the vendor to solve their problems, but I think this
is silly of them. I have had so many issues resolved by Franz Inc. folks
over the past few years. (Although I have gotten seriously miffed at the
reluctance to listen to "because it is in the specification", and "I do
not want a work-around when it is clearly non-conforming", so clearly
they have sufficient success with prioritizing other customers needs.)
> Personally I'm very pleased about Allegro's portability, but it's the
> Mercedes of Lisp implementations in many ways. As you move down the cost
> spectrum, the Lisp implementations that "work everywhere" are lacking in
> sexy features.
Mostly because they are not requested and hard to get anybody to build.
(This is the flip side of free software in small communities. In effect,
it works somewhat like taxation. If you think that you will get less in
return than you pay, you spend more time avoiding paying taxes than it
would cost you do what you want and just pay it, which would lower taxes
for all parties involved or at least get more in return for that paid.)
///
Yes, of course, but only that which has been standardized! This is why I
want standardized features to be implemented fully everywhere, with no
stupid exceptions and reluctance and bugs -- we iron out the standard
part and then we move on to new things. As long as vendors and othes
retard the common acceptance of the standard and the common trust in its
implementation, it is so incredibly hard to move on. As long as someone
can sit in a corner and whine about his pet conditional, that means that
the bloody _conditionals_ are still an open issue and common agreement on
sockets will have to put in a bid for resources along with such stupid
and petty issues.
The parts are _not_ standardized will have to just as implementation-
dependent as people are willing to _accept_ elsewhere. In fact, the
reason C and C++ have grown to such successes is that there are lot of
implementation-dependent features that come with all systems that use
those languages. C and Unix is a veritable treasure trove of special
implementation details. C++ and Windows have the same relationship. If
people had been whining "this is not in the ANSI standad", neither of
these languages would have succeeded at all.
> A standard should mean that I differentiate between different vendors
> implementations based on factors like efficiency, the usability or the
> development environment or the quality of their customer service.
Yes, of course, but only for the standardized language. The rest of the
environment you need to build real applications cannot actually be fully
standardized. Just look around for the other language standards, to see
how _little_ they actully standardize. Common Lisp standardizes so much
more than most other languages. I refuse to consider the possibility
that its high quality has turned Common Lisp programmers into spoiled,
demanding brats, but some people make it so damn hard to stand fast on
this refusal.
> With Perl or Python I'd have to settle for what I get.
In practice, you have to settle for what you get in the Common Lisp
implementations, too, but for some reason, it is acceptable to be unhappy
about it. The only part we have good reason _not_ to be satisfied with,
is lack of conformance. If somebody wants to sell me a Common Lisp
system, they had better live up to their claims, but I _choose_ them
because of the extra-standard features. That is the point of having a
standard -- both the specification and conformance should become a
non-issue.
> For widely-used features like sockets and perhaps regexps, a standard is
> going to do much more good than harm, much as the CLIM does for user
> interfaces.
Well, if you think so, why have you not submitted a specification to the
committee?
> Non-adherence to such standards would make or break my choice of
> implementation, giving vendors an added incentive to co-operate.
Real standards turn an issue into a non-issue. You just use whatever is
standardized. The fewer questions are asked about the legitimacy of a
standard, the more successful it is. If you get a socket implementation
that you have to fight when you need system-dependent socket options,
have you really gained anything? (Java sockets are fairly crippled in
this regard.)
> It's just a question of which features you consider 'commoditised' enough
> to require a definition that vendors should follow. For CL this means
> things like hash tables, vectors, structs and classes. All I'm saying is
> that it would be even better if Regexps and Sockets were included too.
I hate regular expressions. Not because they are not powerful tools, but
because they are too powerful tools, and everybody who makes a regular
expression matcher has a different idea what kind of weird features
should go in the regular expression syntax, with no way for users to
extend this functionality without switching to a different regular
expression package. I want to stop this cramming of features into the
syntax and get a real pattern-matching _language_ that I can deal with at
a much higher level than this character-by-character limitation that all
regular expression packackes I have seen enforce. If regular expressions
are such a boon to mankind why are they not built for sequences of all
sorts of objects? I mean, the standard function search does that.
> If by 'standard' you mean a written standard like that for ANSI CL, then
> basically none, and I consider this to be a problem (though when and if
> Microsoft's submission of C# and it's libraries gets standardised by the
> ECMA there might be one). If on the other hand you mean a de-facto
> standard, like that dictated by Sun for Java or the implementors of
> languages like Rebol, Ruby and Python, then quite a few.
By "standard" I mean a document that implementations are required to
adhere to and which people other than the implementors have a say in
developing. If that document is documentation for an implementation, it
is just that, not a standard. There are many kinds of standards, but
they have _one_ important thing in common: they are _specifications_.
If a "de facto standard" has no specification that it can be held up to,
I think it is a misuse of the term.
> Unfortunately many, many others do not agree with me, and are prepared to
> settle for de-facto standards like Java instead. Creating a written
> standard for APIs/implementation of important new features could
> conceivably boost the attractiveness of CL in many people's eyes.
> Provided that attracting more users of the language is what one is trying
> to achieve, of course.
Yes, standards are marketing tools, too, but if they become too much of
that, they are generally quite horrible as specifications for people who
are supposed to implement them faithfully.
However, nothing stops you from implementing a Common Sockets library
that takes care of presenting a common interface to the various ways
people have implemented these things. If you want this, build it.
> I'm not trying to hold Common Lisp to a different standard. Perhaps what
> I'm really saying is that if you want to make sure that people realise
> how much better a standardised CL is than a de-facto standard like Java,
> you'd better make sure that CL includes standardised ways of doing the
> things that people want to do.
You need an authority that people are willing to respect in order to get
to this point. When vocal forces in the community cannot even respect an
authority on the conditionals, arguably the most important part of the
language, forget any chance of respecting an authority on sockets.
When some people stick to their legacy ways in numerous trivial areas
when they could not get them into the standard and refuse to accept the
standard and change their ways in the community interest, there is no
reason to expect them to respect something as complex as a socket
interface. This is the insidiously infectious effect of quarreling over
features in the standard. Psychologically, whoever wants to spend any
time and money standardizing new things when grumpy and bitter old farts
at the vendors express a very strong disdain for the work you do even
before you have started?
///
Have you had the opportunity to observe both as they accumulate large
quantities of data? I've only observed Clisp in this scenario, and
have seen it slow considerably. In LW, the same code, even running
interpreted, did not slow perceptibly.
I'm not implying any sort of criticism of Clisp, I think its a nice
implementation and I use it quite a bit.
Thanks,
Gregm
[...]
> The parts are _not_ standardized will have to just as implementation-
> dependent as people are willing to _accept_ elsewhere. In fact, the
> reason C and C++ have grown to such successes is that there are lot of
> implementation-dependent features that come with all systems that use
> those languages. C and Unix is a veritable treasure trove of special
> implementation details. C++ and Windows have the same relationship. If
> people had been whining "this is not in the ANSI standad", neither of
> these languages would have succeeded at all.
This is, unfortunately, true. In fact it's probably worse, especially
on Windows. Once you get locked into using the non-standard,
MS-dictated APIs, there's almost nothing short of throwing your code in
the dustbin that you can do to disentangle yourself from them. This in
turn drives you to code *more* C++ and hire *more* C++ programmers...
>> A standard should mean that I differentiate between different vendors
>> implementations based on factors like efficiency, the usability or the
>> development environment or the quality of their customer service.
>
> Yes, of course, but only for the standardized language. The rest of the
> environment you need to build real applications cannot actually be fully
> standardized.
I'm not advocating standardising everything, just certain features that
I, personally, find almost as essential as things like hash tables,
streams and vectors. (I can see that, since other people's ideas on
what is 'essential' will probably wildly differ from mine, deciding what
to include and what not to include in the standard is not an easy
thing).
> Just look around for the other language standards, to see how
> _little_ they actully standardize.
The trend seems to be toward bigger and bigger standards. The ECMA
standard for C# will probably end up being huge, and I've already read
Bjarne Stroustrup talking a little about what will go into the next
version of the ANSI C++ standard (hash tables and garbage collection for
a start).
> Common Lisp standardizes so much more than most other languages. I
> refuse to consider the possibility that its high quality has turned
> Common Lisp programmers into spoiled, demanding brats, but some
> people make it so damn hard to stand fast on this refusal.
I hope I don't sound *too* much like a spoilt brat. The main reason I'd
like to see a couple of extra things standardised is not so much for my
own benefit, but to make it easier for Lisp programmers in general to
convince others that Common Lisp is a viable alternative. The case of
sockets is the best example I can think of off-hand, since socket code
in C is (these days) portable between all the major operating systems.
>> For widely-used features like sockets and perhaps regexps, a standard is
>> going to do much more good than harm, much as the CLIM does for user
>> interfaces.
>
> Well, if you think so, why have you not submitted a specification to the
> committee?
You'll have to forgive me for this, but until now this had not occurred
to me as a possibility.
> If you get a socket implementation that you have to fight when you
> need system-dependent socket options, have you really gained
> anything? (Java sockets are fairly crippled in this regard.)
To be fair on Sun, this is actually being worked on for JDK1.4, but I do
see what you mean. In fact the inadequate socket implementation in Java
is one of the reasons I don't use the language any more.
[...]
> If a "de facto standard" has no specification that it can be held up to,
> I think it is a misuse of the term.
I'm just appropriating it from elsewhere, but FWIW I agree with you
here.
>> Unfortunately many, many others do not agree with me, and are prepared to
>> settle for de-facto standards like Java instead. Creating a written
>> standard for APIs/implementation of important new features could
>> conceivably boost the attractiveness of CL in many people's eyes.
>> Provided that attracting more users of the language is what one is trying
>> to achieve, of course.
>
> Yes, standards are marketing tools, too, but if they become too much of
> that, they are generally quite horrible as specifications for people who
> are supposed to implement them faithfully.
I suppose there are some who would argue that this is already the case
with Common Lisp, without adding anything more...
> However, nothing stops you from implementing a Common Sockets library
> that takes care of presenting a common interface to the various ways
> people have implemented these things. If you want this, build it.
As I've more recently discovered, someone (Sam Steingold) has actually
saved me the bother of doing this.
--
Mark Hulme-Jones <mjo...@frottage.org>
> Or you could publish the source code for exported packages.
What is an exported package?
Can a Common Lisp program export a package?
Several people have donated their own time because they actually believe
in what they do and what they want to accomplish. Self-funding does not
make you rich, generally speaking, but a significant fraction of what has
gone into Emacs has been done on private time without any "funding". A
lot of other software has been developed in people's spare time at first,
at least. I find it quite insulting to those many of us who have in fact
donated our own time and money to various projects to imply that there we
have always used somebody else's resources. As far as I know, Linus
Thorvalds started Linux on his spare time and spent a lot of time working
on it before he shared it with anyone, and even longer before he got any
resources in exchange for it.
///
A package documented with its exported symbols and intended for others to
use. Any serious implementation will need housekeeping or internal
packages that they do not publish any documentation for.
> Can a Common Lisp program export a package?
No, but a vendor can choose to document and tell you about a package, or
choose to withhold such information.
///
I never received formal instruction on C (we were supposed to be
able to pick these things up by ourselves) so I wouldn't know what
happens in a formal educational setting. I do remember digging up the
mysterious headers (the ones that #include <foo.h> gets you) to see what
all this magic was about. Beyond that, I don't think it would have been
that useful to peek into libc when I was very inexperienced.
[...]
TM> PAIP has good source code examples for a certain class of
TM> problems. It touches on Lisp implementation, but nothing
TM> compares to having the source to running code and even better,
TM> having source that can be rebuilt with local modifications.
Yes, but that comes much later if at all. At that point I would expect
the students to be proficient in the use of the language. I am not
an educator, but I think SICP's sequence of presentation is pretty good
with the meta-circular evaluator and a machine towards the end. If
someone were misguided enough to turn me into an instructor, I don't
think I would have beginners or intermediate programmers look at, say,
the CMUCL compiler source w/o some exposure to architecture/assembly
and sizeable experience with Lisp. But I must admit I have picked up
several cute tricks from the said source (like writing macros that
get called at the top level at load time to write code for you to
avoid tedium).
TM> Stevens acquired the understanding he needed to write his
TM> fabulous books by.... reading the source code!
Yes. But he was a very gifted person. It was his gift and
perfectionisim that produced those fabulous books more than the
availability of the source. His loss still saddens me though I'd
never even seen him.
BM> form (Garnet, ACL2, LISA etc.) and PCL comes with the excellent
BM> AMOP book. (apologies to people whose work I cannot remember
BM> right now).
TM> Hmm, PCL, sounds like the source to Lisp implementation to me.
Of course. I think you know I am not arguing against the usefulness
of the source here. I _am_ arguing against the necessity of "open
source" in addition to "free of charge" or "inexpensive" in the
introductory instruction context.
[...]
>> ... Perhaps
>> they have some money for those ambitious plans and can shell
>> out the money for a student version of LispWorks (which is
>> non-crippled) for $699.
TM> Dude! That's like, a month's rent. [...]
Just where are these students living? My rent was $162.50 when I was
in school (and I had to bike uphill, happily only in the return home
direction). Anyhow, I am not saying $699 is insignificant, I _am_
saying ambitious projects in the sense I understand them should be
able to cough up the $699. It is cheaper than a decent box + decent
monitor, and 35hrs at $20/hr. take-home pay.
[...]
TM> I was arguing that, among other reasons, Free Lisp
TM> implementations and applications are important for educational
TM> reasons.
Ok, I think we have a reasonable level of agreement or at least
understanding here.
TM> I think we've about flogged that into the ground.
I think so. And I'd like to observe that referrals to psychiatrists
never came into the picture.
BM
SL
Janos Blazi wrote:
<snipped>
> Here is my wish list for Lisp.
>
> (1)
> It should be free.
> * Tim Moore <mo...@herschel.bricoworks.com>
> > As a student, wouldn't it have been instructive to be able to do so, at
> > least for the C library if not the compiler?
>
> Have you tried to peek inside the GNU C library? Have you looked at
> P. J. Plauger: The Standard C Library, for instance? Generally speaking,
> library stuff is really advanced stuff.
Not the GNU C library so much, but the BSD library, kernel and
applications, certainly, and gcc, gdb and binutils much moreso. Yes, it
is advanced. In my mind, "student" does not mean "beginner."
>
> > I was arguing that, among other reasons, Free Lisp implementations and
> > applications are important for educational reasons. I think we've about
> > flogged that into the ground.
>
> They are, but you should not dismiss all alternatives because you have
> found what you think is a panacea. That is actually all that is
> attempted by those who seem to oppose free implementations.
>
I think we're more or less in agreement.
Tim
> * Tim Moore <mo...@herschel.bricoworks.com>
> > Lack of source code.
>
> Have you actually asked for source code access for your needs? Do you
> know how much source code you get with a regular license? If not, as I
> suspect, there is a lack of sincerity in the claim that you need open
> source and cannot use commercial Common Lisps.
Maybe there is; after all, I'm not even a teacher. However, from my own
experiences in grad school I think I can assert that it will always be
much less of a hassle to use open source software for exposition
and research purposes than closed source. At a certain point
"closed-source" can not be used widely before it stops becoming closed
source.
>
> > Since I'm persuing the pedegogical angle here, I consider that to be
> > important, both to teach how Lisp works and for style examples.
>
> How much of a Common Lisp system do you expect to be written in Common
> Lisp?
From my experience, anywhere from "a good part" to "almost all."
Tim
Sorry, I assume "undergraduate" when someone says "student" in a
university setting.
///
I find this a very strange problem. I have not actually been involved in
securing funding for commercial projects myself, but I have worked on
several, including some medical projects that had absolutely no problem
working with the industry. On the contrary, they had to fight them off
and had to set up ethics committees and kinds of things to _avoid_ being
associated with industry.
* Erik Naggum
> How much of a Common Lisp system do you expect to be written in Common
> Lisp?
* Tim Moore
> From my experience, anywhere from "a good part" to "almost all."
That is not my experience. The parts that provide services outside of
the standard are so much larger than the parts that implement Common Lisp
and in order to implement them, you need access to system-specific code,
which means you have to use functions that cannot be expressed in Common
Lisp. That is, if you recursively search for all called functions or
methods and you stop at any function or method defined in the standard,
there will be a relatively small number of functions that terminate this
search with _all_ standard Common Lisp functions or methods.
///
> FWIW, in my experience (on Linux, FreeBSD, and Solaris), CLISP beats
> Perl both for loading and execution speed. Yeah, it's slow for a
> Common Lisp. But slow for CL means fast for a lot of languages.
> That's part of why I like it so much as an implementation -- it's
> massively portable and still fast enough for most all purposes.
The trouble with speed quirks is not only that they slow down your
program but also that they encourage you to find alternative ways to
implement something than the otherwise best way. Clisp seems to have
some fairly dramatic speed quirks, such that you can write a short
code snippet to show a speed difference of approximately two orders of
magnitude between it and the main commercial Lisps. Of course there's
a lot less speed difference for most programs, but it's the quirks
that get your attention. They're hard to ignore, like a spider on
your computer monitor is hard to ignore.
Erik> * Christopher Stacy <cst...@spacy.Boston.MA.US>
>> There might be exceptions, but it's not any of the "free" software that I
>> have ever used regularly. Remember, "free software" is not like "free
>> beer". Someone, somehow, pays for it. The "free" part refers to the
>> freedom to copy the software, once someone has already paid for it to
>> exist.
Erik> Several people have donated their own time because they
Erik> actually believe in what they do and what they want to accomplish.
I have done this myself, but on the whole, I bet that only a very few
self-employed people have contributed relatively little free software.
I am not just referring to self-employed contributors, but people who
work on something in their spare time. There are lots of those, but it
is hard to measure how much they have contributed, of course.
///
> For CL this means things like hash tables, vectors, structs and
> classes. All I'm saying is that it would be even better if Regexps
> and Sockets were included too.
Do regular expressions really need a separate Lisp specification?
They're already standardized (by POSIX). Now, most RE implementations
ignore this standard completely, but there's always the implementation
in the C library (on unix, anyhow). This is actually quite nice when
writing in C or C++. Sure, CL would want a different interface to the
RE language, but the variety of reasonable possibilities should be
small enough to make porting between them trivial.
I don't get the problem ... write your code assuming it'll be fast
enough. This assumption holds the vast majority of the time. When it
doesn't, profile and do targeted optimizations, like always.
> >> ... Perhaps
> >> they have some money for those ambitious plans and can shell
> >> out the money for a student version of LispWorks (which is
> >> non-crippled) for $699.
>
> TM> Dude! That's like, a month's rent. [...]
>
> Just where are these students living? My rent was $162.50 when I was
> in school (and I had to bike uphill, happily only in the return home
> direction). Anyhow, I am not saying $699 is insignificant, I _am_
> saying ambitious projects in the sense I understand them should be
> able to cough up the $699. It is cheaper than a decent box + decent
> monitor, and 35hrs at $20/hr. take-home pay.
They're living in Berkeley, perhaps? $700 isn't unusual for rent
around here. And we're a public university, so a whole lot of us
don't exactly have many means. 35 hours as a university student? You
do realize that school at a university like this usually takes more
than 40 hours per week of your time, right? That plus 35 hours
doesn't leave much time for ambitious projects. $20/hr take-home for
students? It happens, but it's unusual. The scheduling flexibility a
student needs tends to cut one's pay in *half*. Decent box and decent
monitor??? Box *maybe*, but most of us have crappy boxes and crappy
monitors. Why? "Decent" by non-student standards just costs *way*
too much.
My point is just that most people's assumptions of college students'
budgets are *waaaay* off. Sure, some people have mommy and daddy
giving them stacks of cash, but most of us are b-r-o-k-e. Federal
student aid is laughably under-funded, which means you can qualify for
tons of grants, but you're still lucky to get enough loans to cover
school.
Even for shared housing?
TFB> And we're a public university, so a whole
TFB> lot of us don't exactly have many means. 35 hours as a
TFB> university student?
35 hours cumulative was what I was thinking. You do get summers though
correct? Is this undergraduate or graduate anyway? What kind of
facilities does the school offer? If it is undergraduate, one thing
you might want to try is to hook up with a research project in the
grad school as a programmer, it might at least get you some access to
better facilities and might pay minimum wage + a few bucks.
As an aside, maybe you can get enterprising and organize something to
offer to code up all the nice things people seem to want for
reasonable prices?
[...]
TFB> Decent box and decent monitor??? Box *maybe*, but most of us
TFB> have crappy boxes and crappy monitors. Why? "Decent" by
TFB> non-student standards just costs *way* too much.
I'll take your word for it, but to throw figures around the present
market value of my desktop box is about $200. A monitor I could be
using if I were a student (17" .25 stripe pitch trinitron) can be had
for $80-100 used (that's what I paid for it at the local off-lease
place).
TFB> My point is just that most people's assumptions of college
TFB> students' budgets are *waaaay* off.
Ok, I take your point. I did not mean to offend (I don't think I did
but better be safe and say it). Again, if this is undergrad just hang in
there, it'll be over. If it's grad school, well what can I tell you ...
all the more reason to write the damn thing up (best) or badger your
advisor for decent funding (futile, but you'll hear about the best option
again).
cheers,
B<OT OT OT>M
Erik> * Christopher Stacy <cst...@spacy.Boston.MA.US>
>> I have done this myself, but on the whole, I bet that only a very few
>> self-employed people have contributed relatively little free software.
Erik> I am not just referring to self-employed contributors, but people who
Erik> work on something in their spare time. There are lots of those, but it
Erik> is hard to measure how much they have contributed, of course.
Typically, the contracts of full-time employees do not allow "spare time":
all ideas and programs that you write are the intellectual property of
the company, regardless of whether it happened during office hours.
But there are "lots of" people who cheat on that.
Fortunately the law in Washington state explicitly says otherwise.
Tim