Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: MishoM <mihaylov.mihail@xxxxxxxxx>
- Date: Tue, 5 May 2009 14:23:48 -0700 (PDT)
On May 4, 7:37 pm, Tamas K Papp <tkp...@xxxxxxxxx> wrote:
On Mon, 04 May 2009 09:03:24 -0700, namekuseijin wrote:
Everything is always just a SMOP in CL. I fear that when the need for
SMOPs abound, perhaps it is time for a new revision for the language?
C++ is getting a new one just about now and it's coming with plenty of
good stuff. Including lambdas, can you imagine? o_O
I don't see how a revision would benefit you more than just loading a
library, especially given the high cost of revisions.
I think a revision is warranted when the language is so constraining
that you just cannot implement things as a library. Even though CL
has some constraints, they are the most lax of all languages I know
and give you lots of freedom.
As the examples show, pattern matching is something you can do just
fine in a library, so I don't see the point of asking for a revision
to the language.
It is amazing though that this question crops up so often on c.l.l,
people argue that certain libraries/features need to be made
"standard", so they would be spared the expense of downloading &
loading the relevant library. Perhaps the reason is that ASDF, the
prevalent distribution/management system for libraries, has a lot of
flaws. But replacements are in progress.
Tamas
This is really amazing. I've been disconnected for less than a week
and look how this topic got dragged all over the place. About a dozens
different arguments interlinked into each other, most of them not at
all related to the original post. Newlisp and Clojure proponents
taking every opportunity to advertise their Lisp and getting accused
of it. Common Lisp people looking down on everybody else, thinking
that CL and Lisp are synonyms and CL is the last word... And the most
amazing thing is that this is typical...
As I've said before, I'm new to Lisp, and I'm learning slowly, because
I have very little free time. But I'm not new to programming - that's
my job. Problem is, I seem to come from a different background than
most of the people who post on this group. I've been working in
different software companies for the last 10 years making products for
end users. But many of you (especially the most active ones) seems to
have a very different experience - academia, consulting, big custom
projects, web programming... All these areas are very different from
the situation when you are providing a product, instead of a solution
(*). So it seems to me that most of the time most of you don't think
at all about the end user, the one without whom almost no software
would exist...
Someone said on this thread, that he felt that Python was not made for
programmers, that it was made for secretaries and scientists (I can't
see how on earth these two groups got lumped together, but that's
another story). And a number of people said that the CL standard does
not need updating, because it permits all kinds of new features and
paradigms to be seamlessly integrated into the language. And recently,
when I posted a question about building native deliverables that don't
include things that are not used, several people explained to me that
I'm wrong to want this, because the user would benefit from having a
REPL (who, the secretary???, or am I forbidden to target mortals with
software written in Lisp???), and I would benefit from having it in
the customer's installation of my product too... All examples of this
"solution-centric" thinking...
And what is worse, these same people regard the language as a solution
instead of a product too. They find it normal that every programmer
should find the CL implementation and set of libraries most suitable
for him/her through trial and error... But what is the benefit of
every new user of CL needing to go through a painful period of feeling
lost and frustrated? And is it efficient when every programmer has his/
her own custom development environment, and then everyone else needs
to duplicate it (or parts of it) to be able to use code created by the
first programmer? I think that everybody would agree that the most
important virtue of a programming language is to make programming
EASY. That's what makes Lisp's extensibility so valuable - it makes
programming easy. And having to hunt for libraries makes it HARD... or
at least a little bit harder. Having been used to Windows (like many
younger programmers), and coming to a place where Emacs is the best
choice makes things a bit harder too. The fact that common-lisp.net
and CLiki are not very friendly adds another frustration to the pile.
And then getting accused that you "just don't get it" (or more bluntly
that you are plain wrong) when you share your frustration here can be
the last drop which drives you away from CL and Lisp in general...
I like Common Lisp, I really do. In the last couple of years I was
growing more and more frustrated with the shortcomings of C++ and I
started thinking about what would my perfect programming language look
like. Then I found CL, and it met all my requirements. But I'm afraid
that it is going down with a slow and steady pace, because it is just
very user unfriendly... It is time for the CL community to realize
that programmers are users too, and make CL a nicer place. Apparently
a lot of you have both the depth of knowledge and the programming
experience necessary. Just start a civil discussion and try to agree
on a "recommended set of libraries" out of the existing ones. Not an
expensive, years-consuming standard update, just a list of portable,
well supported libraries. Put this list where it is hard to be missed.
Write some tutorials based on these libraries... Do this, and CL will
be much more appealing to newcomers like me. And who knows, maybe even
some of you will find that this makes CL a better experience for you
too...
Now, I expect some people will ask me who am I to tell you what to do.
Well, of course, all of this is just my opinion, but if I'm not
mistaken, other people have said the same things before me. So maybe
there is at least some truth in what I've said. Think about it.
* By "solution", I mean software which solves the specific problem of
a single customer, and by "product", I mean software which is used
out of the box by many unrelated users.
.
- Follow-Ups:
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Scott Burson
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Lars Rune Nøstdal
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: namekuseijin
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Phil Armitage
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Pascal J. Bourguignon
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- References:
- Re: Qi Seems Great
- From: namekuseijin
- Re: Qi Seems Great
- From: Marco Antoniotti
- Re: Qi Seems Great
- From: namekuseijin
- CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Marco Antoniotti
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: namekuseijin
- Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- From: Tamas K Papp
- Re: Qi Seems Great
- Prev by Date: Re: ABCL and Clojure
- Next by Date: Re: ABCL and Clojure
- Previous by thread: Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- Next by thread: Re: CL-UNIFICATION as a library (Re: Qi Seems Great)
- Index(es):
Relevant Pages
|