Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
New Lisp ?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 51 - 75 of 298 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Bijan Parsia  
View profile  
 More options Dec 25 2001, 12:34 pm
Newsgroups: comp.lang.lisp
From: Bijan Parsia <bpar...@email.unc.edu>
Date: Tue, 25 Dec 2001 12:22:24 -0500
Local: Tues, Dec 25 2001 12:22 pm
Subject: Re: New Lisp ?

On Mon, 24 Dec 2001, Jeffrey Siegal wrote:
> Andreas Bogk wrote:
[snip]
> > For the language user, there may be no middle ground.  From the
> > perspective of the language designer, the syntax is just one issue of
> > many, so even if you prefer S-expressions, there's still a lot of Lisp
> > to discover in Dylan.

> Did you mean "A lot _for_ Lisp to discover?"  There is little in Dylan
> that didn't originate with Lisp, except the syntax.  What does Dylan
> have that Scheme + CLOS + "a collections library" doesn't have?

I don't know if there's a *lot* for Lisp to discover, at least in the
sense of finding new constructs or general programming techniques. I
suspect that what there is to be learned from Dylan (for dynamic
langauges) are in the following three areas:

        1) What compromises with conventionality work and
           don't work.

           To wit, if you're going to abandone Lispy syntax, a *Pascal
        like* syntax probably isn't a good idea?

        2) What compromises with staticness work and don't work.

           Does sealing really help? How much? How constraining is it?
        What does it permit by way of optimization that CL doesn't?

Both the above hold only for the limited range of compromises Dylan
actually made. But at least there's some more or less production
experience with this range.

        3) How not to sell a language.

           After all, Dylan is *substationally* worse off than Common
        Lisp. Clearly, Dylan is the *much* more lost cause. One can blame
        historical circumstances (e.g., Apple's dropping the ball), but,
        after all, Dylan wasn't resiliant enough to take that blow easily.

          It does make me wonder how much of the goals of Dylan would have
        been better realized as an extention of Common Lisp (e.g., a bunch
        of packages) rather than merely having been implemented in it.

I still have a soft spot for Dylan, not least because it was reading a
Dylan book that introduced me to generic functions, which I think are
*incredibly* cool, even if I don't use them :) It was eye-opening. The
Lisp (ok, mostly Scheme, but there was some CL in there) documentation I'd
read to that point either didn't mention them, or deferred discussion
until *much* later in the game. If I'd had Keene's book then, I suspect
it would have done the job (it's really quite hard to say enough nice
things about her book).

Cheers,
Bijan Parsia.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andreas Bogk  
View profile  
 More options Dec 25 2001, 2:20 pm
Newsgroups: comp.lang.lisp, comp.lang.dylan
Followup-To: comp.lang.dylan
From: Andreas Bogk <andr...@andreas.org>
Date: 25 Dec 2001 20:17:59 +0100
Local: Tues, Dec 25 2001 2:17 pm
Subject: Re: New Lisp ?

Bijan Parsia <bpar...@email.unc.edu> writes:
>       To wit, if you're going to abandone Lispy syntax, a *Pascal
>    like* syntax probably isn't a good idea?

I don't think that introducing a Pascal-like syntax was a bad idea.
Dropping the Lispy syntax was the bad idea.

In the static language camp, I can happily mix libraries from Fortran,
Pascal, C and C++.  If there were interoperability between an infix
and a prefix Lisp-like language, that would be a huge win.

>       Does sealing really help? How much? How constraining is it?
>    What does it permit by way of optimization that CL doesn't?

One instance where sealing really helps is arithmetics.  Witness Java
for a language that gives up it's OO approach for fast integers, and
the problems this introduces.  In Dylan, integers are objects like all
others, still arithmetics is fast, because operations are sealed.

>      It does make me wonder how much of the goals of Dylan would have
>    been better realized as an extention of Common Lisp (e.g., a bunch
>    of packages) rather than merely having been implemented in it.

I like the "objects from the grounds up" approach, and Dylan feels
very clean and consistent to me.  That couldn't have been achieved by
a couple of libraries.

Andreas

(Followup-To set to comp.lang.dylan)

--
"In my eyes it is never a crime to steal knowledge. It is a good
theft. The pirate of knowledge is a good pirate."
                                                       (Michel Serres)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andreas Bogk  
View profile  
 More options Dec 25 2001, 2:20 pm
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Andreas Bogk <andr...@andreas.org>
Date: 25 Dec 2001 20:19:12 +0100
Local: Tues, Dec 25 2001 2:19 pm
Subject: Re: New Lisp ?
olc...@interaccess.com (Thaddeus L Olczyk) writes:

> What I saw of Dylan looked good, but it is a dead language. Stillborn.

There are two Dylan compilers being actively maintained, one
commercial, one free.  That's not exactly dead.

Andreas

--
"In my eyes it is never a crime to steal knowledge. It is a good
theft. The pirate of knowledge is a good pirate."
                                                       (Michel Serres)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andreas Bogk  
View profile  
 More options Dec 25 2001, 2:42 pm
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional, comp.lang.dylan
From: Andreas Bogk <andr...@andreas.org>
Date: 25 Dec 2001 20:42:11 +0100
Local: Tues, Dec 25 2001 2:42 pm
Subject: Re: New Lisp ?

Jeffrey Siegal <j...@quiotix.com> writes:
> I agree about modules, although I don't really like the way Dylan uses
> multiple files to define a simple module.  There should be a way of

The idea behind Dylan was that the source code resides in a code
database, and the file format is just used for interchange.  Of
course, in reality there are source files, and the interchange format
is a little awkward to use.  That should be easier, I agree.

> doing that in-line.  A CLOS-style object system does have type
> annotations, at least at the method level (which is probably enough),
> because they're necessary for dispatch.  

Having type annotations for bindings gives the optimizer a lot of meat
to work on.

> As for conditions, I prefer
> passing condition handlers as explicit arguments.  With proper tail
> calls and limited use of call/cc to escape out of CPS, it works fine.

I don't think so.  Having to pass around handlers for all sorts of
conditions is a nuisance.  This is something CL and Dylan got right,
IMHO.

> > Oh, and dynamism vs. performance tradeoffs like sealing,
> > primary classes and limited types.
> I think these are overhyped features which have been adaquately
> addressed in Lisp/Scheme using either different implementations as
> needed, declarations, etc.

The point is that you can start writing code without caring about
performance.  Once the design has settled, you can sprinkle some
adjectives here and there, and the code becomes fast, without having
to re-implement performance-critical code.  I consider sealing to be a
good thing.

Andreas

--
"In my eyes it is never a crime to steal knowledge. It is a good
theft. The pirate of knowledge is a good pirate."
                                                       (Michel Serres)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bijan Parsia  
View profile  
 More options Dec 25 2001, 6:35 pm
Newsgroups: comp.lang.lisp
From: Bijan Parsia <bpar...@email.unc.edu>
Date: Tue, 25 Dec 2001 18:24:26 -0500
Local: Tues, Dec 25 2001 6:24 pm
Subject: Re: New Lisp ?
On 25 Dec 2001, Andreas Bogk wrote:

> Bijan Parsia <bpar...@email.unc.edu> writes:

> >          To wit, if you're going to abandone Lispy syntax, a *Pascal
> >       like* syntax probably isn't a good idea?

> I don't think that introducing a Pascal-like syntax was a bad idea.
> Dropping the Lispy syntax was the bad idea.

Well, it depends on what you want to do. If you abandon (or deprecate, or
hide) a Lispy syntax, presumably it's because you want to please or
placate folks who are turned off from Lispy syntaxes. *Developer* type
folks (i.e., we're not talking scripting langauges for
non-programmers). The only remotely Pascal like syntaxed language that's
gained traction in the past decade that I know of is Python, and it dumped
begin/end.

(Hmm. Ruby has a bit of that too, IIRC.)

(This is in contrast with Delphi, which is a *holdover*.)

Myself, I don't care at all for C like syntaxes, but I concede that
they're more popular. If you're goal is to be popular, you might try past
successful moves :) Dylan's syntax wasn't successful for *any* camp.

[snip]

> >          Does sealing really help? How much? How constraining is it?
> >       What does it permit by way of optimization that CL doesn't?

> One instance where sealing really helps is arithmetics.  Witness Java
> for a language that gives up it's OO approach for fast integers, and
> the problems this introduces.  In Dylan, integers are objects like all
> others, still arithmetics is fast, because operations are sealed.

Eh. I didn't mean these to be questions you answer, but I'll note that you
didn't answer 'em. The interesting question is sealing *vs.* a CL like
approach.

(Smalltalk looks to this question, too. Optional type declarations plus
inferencing are seen as wins; sealing isn't.)

> >         It does make me wonder how much of the goals of Dylan would have
> >       been better realized as an extention of Common Lisp (e.g., a bunch
> >       of packages) rather than merely having been implemented in it.

> I like the "objects from the grounds up" approach, and Dylan feels
> very clean and consistent to me.  That couldn't have been achieved by
> a couple of libraries.

Is that a *goal* of Dylan, or just something it did?

In any case, that makes me think that you don't know Common Lisp very well
:)

Reset followups to the newsgroup I read.

And I'm sorta done with this thread, FWIW.

Cheers,
Bijan Parsia.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kaz Kylheku  
View profile  
 More options Dec 25 2001, 7:21 pm
Newsgroups: comp.lang.lisp
From: k...@ashi.footprints.net (Kaz Kylheku)
Date: Wed, 26 Dec 2001 00:19:59 GMT
Local: Tues, Dec 25 2001 7:19 pm
Subject: Re: New Lisp ?
In article
<Pine.A41.4.21L1.0112251809070.29424-100...@login6.isis.unc.edu>, Bijan

Parsia wrote:
>On 25 Dec 2001, Andreas Bogk wrote:

>> Bijan Parsia <bpar...@email.unc.edu> writes:

>> >      To wit, if you're going to abandone Lispy syntax, a *Pascal
>> >   like* syntax probably isn't a good idea?

>> I don't think that introducing a Pascal-like syntax was a bad idea.
>> Dropping the Lispy syntax was the bad idea.

>Well, it depends on what you want to do. If you abandon (or deprecate, or
>hide) a Lispy syntax, presumably it's because you want to please or
>placate folks who are turned off from Lispy syntaxes.

Then you are no longer practicing technology, but psychology or politics.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julian St.  
View profile  
 More options Dec 25 2001, 10:16 pm
Newsgroups: comp.lang.lisp
From: boelth...@gmx.net (Julian St.)
Date: 26 Dec 2001 04:15:18 +0100
Local: Tues, Dec 25 2001 10:15 pm
Subject: Re: New Lisp ?

Bijan Parsia <bpar...@email.unc.edu> writes:

[...]

> non-programmers). The only remotely Pascal like syntaxed language that's
> gained traction in the past decade that I know of is Python, and it dumped
> begin/end.

[...]

There is still Ada95 which I consider quite cool. A language that
really works platform-independently (Perhaps as there is only one
free compiler.... *g*) and deserves more attention.

Regards,
Julian Stecklina

PS. I come from the PASCAL camp, so don't blame me too much. ;)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bruce Hoult  
View profile  
 More options Dec 26 2001, 12:18 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Bruce Hoult <br...@hoult.org>
Date: Wed, 26 Dec 2001 18:18:37 +1300
Local: Wed, Dec 26 2001 12:18 am
Subject: Re: New Lisp ?
In article <3C27C7BC.DECCE...@quiotix.com>, Jeffrey Siegal

<j...@quiotix.com> wrote:
> Andreas Bogk wrote:
> > I suggest to take a look at Dylan.  It's a pretty recent Lisp-like
> > language, and it's got a few things right (but on the other hand
> > omitted some features some people consider essential).

> I consider Lisp syntax (or something similarly elegant) to be
> essential.  I suspect that many proponents of Dylan-like languages would
> consider it unacceptable.  I strongly suspect there is no middle ground.

I can happily use either.  Or paren-less prefix (Logo, ML).  Or postfix
(PostScript, Forth).  But even after much use of the others I find that
I do prefer "conventional" syntax.

> (Yes, I'm aware of Lisp-syntax Dylan, but I think there's a reason it
> got abandoned.)

The reason as I understand it is that no one could figure out how to
bidirectionally map macros between infix and prefix.

I'm not sure whether this is impossible or merely hard.

It's interesting that some of the more complex macros in Common Lisp
look uncommonly like the "infix" syntax in Dylan.  e.g. the "loop"
macro, which is nearly identical to the Dylan "for" statement macro.  
Thus it might be acceptable to the Lisp-syntax people to essentially
retain (nearly?) the same syntax for statement macros in both modes.  
Function macros are easy to translate.  That leaves Dylan's declaration
macros to think about.

Another solution might be to explicitly define both syntaxes when you
define a macro.  More work, but then you don't define new syntax quite
as often as you define functions.

-- Bruce


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bruce Hoult  
View profile  
 More options Dec 26 2001, 12:26 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Bruce Hoult <br...@hoult.org>
Date: Wed, 26 Dec 2001 18:26:16 +1300
Local: Wed, Dec 26 2001 12:26 am
Subject: Re: New Lisp ?
In article <3C27D85C.9E5FE...@quiotix.com>, Jeffrey Siegal

Perhaps not a lot that is radical, but simply a lot of nice cleaning up.

- having a "let" where the scope is implicit (to the end of the current
progn) is a big win in unclutering code

- Dylan's ":=" and CL's "setf" are the same idea, but := is easier to
read for some people.

- same goes for "[]" vs "element()".

- why do aref and gethash in CL have opposite argument orders?

I think you get the point.

None of these (or other) items are critical in themselves, but I find
that put all together they provide a cleaner, easier to use (and
remember) language.

-- Bruce


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bruce Hoult  
View profile  
 More options Dec 26 2001, 12:44 am
Newsgroups: comp.lang.lisp
From: Bruce Hoult <br...@hoult.org>
Date: Wed, 26 Dec 2001 18:44:34 +1300
Local: Wed, Dec 26 2001 12:44 am
Subject: Re: New Lisp ?
In article
<Pine.A41.4.21L1.0112251208250.33498-100...@login9.isis.unc.edu>, Bijan

Parsia <bpar...@email.unc.edu> wrote:
>       To wit, if you're going to abandone Lispy syntax, a *Pascal
>    like* syntax probably isn't a good idea?

I'm not sure what you mean here.  Dylan is a lot closer to Modula-2 or
Ada than to Pascal.  Would you prefer a {}-rich C syntax?

Some people might prefer that -- certainly everything from Perl to Java
to Corba has adopted a C-like syntax even if the semantics are way
different.

I'm not sure this is easily compatable with an extensible syntax,
though.  Dylan gets a lot of parsing certainty and error-checking out of
having definition macros and statement macros *always* ending in "end".  
You could easily enough change the parser to look for } instead, but
then where would you hang the name of the macro or of the thing being
defined e.g. "end" vs "end method" vs "end foo" vs "end method foo", all
of which are automatically valid (and checked) in Dylan.

Of course Lisp gets away with just ), so maybe this error checking is
overrated.

>    3) How not to sell a language.

>       After all, Dylan is *substationally* worse off than Common
>    Lisp. Clearly, Dylan is the *much* more lost cause. One can blame
>    historical circumstances (e.g., Apple's dropping the ball), but,
>    after all, Dylan wasn't resiliant enough to take that blow easily.

Well dispite that Dylan hasn't gone away.  The number of users is small,
but it seems to be growing.  I wonder if Andreas has any stats on the
number of hits or downloads at gwydiondylan.org?

Is the number of CL users increasing?  Or has it just been around a lot
longer?

Hundreds of millions of dollars being spent promoting Java at the same
time that Apple dropped the ball certainly didn't help Dylan.  But
people are starting to see through that, a little.

-- Bruce


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bruce Hoult  
View profile  
 More options Dec 26 2001, 12:53 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Bruce Hoult <br...@hoult.org>
Date: Wed, 26 Dec 2001 18:53:26 +1300
Local: Wed, Dec 26 2001 12:53 am
Subject: Re: New Lisp ?
In article <3C28500F.6652B...@quiotix.com>, Jeffrey Siegal

<j...@quiotix.com> wrote:
> Andreas Bogk wrote:
> > > What does Dylan have that Scheme + CLOS + "a collections library"
> > > doesn't have?

> > That would be conditions, type annotations and a useful module/library
> > system.  

> I agree about modules, although I don't really like the way Dylan uses
> multiple files to define a simple module.  There should be a way of
> doing that in-line.

No one does.  That was supposed to be just an interchange format, not
something that users had to deal with.  That was the case in the Apple
IDE, where all the code was kept in a database.

We've had a bit of discussion recently on a way to put various modules
into the same source file.  Nothing has been agreed yet, but in Gwydion
we have recently done a related thing in implementing a "single-file
mode" that lets you write small programs without a library or module
declaration at all, with a default set of imports.  If/when your program
outgrows that you can always add the .lid file.

The ability to put imports/exports in the same file with code is
something we definitely plan for fairly soon.

-- Bruce


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
jeff  
View profile  
 More options Dec 26 2001, 2:25 am
Newsgroups: comp.lang.lisp
From: jeff <jn...@houseofdistraction.com>
Date: Tue, 25 Dec 2001 23:12:51 -0800
Local: Wed, Dec 26 2001 2:12 am
Subject: Re: New Lisp ?

Successful language design is all these things.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
israel r t  
View profile  
 More options Dec 26 2001, 3:15 am
Newsgroups: comp.lang.lisp
From: israel r t <israe...@antispam.optushome.com.au>
Date: Wed, 26 Dec 2001 19:10:34 +1100
Local: Wed, Dec 26 2001 3:10 am
Subject: Re: New Lisp ?
On Tue, 25 Dec 2001 23:12:51 -0800, jeff

<jn...@houseofdistraction.com> wrote:
>>>Well, it depends on what you want to do. If you abandon (or deprecate, or
>>>hide) a Lispy syntax, presumably it's because you want to please or
>>>placate folks who are turned off from Lispy syntaxes.

>> Then you are no longer practicing technology, but psychology or politics.

>Successful language design is all these things.

True. Unless one gets mind share ( and consequent market share )
language design is meaningless.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Andreas Bogk  
View profile  
 More options Dec 26 2001, 6:54 am
Newsgroups: comp.lang.lisp
From: Andreas Bogk <andr...@andreas.org>
Date: 26 Dec 2001 12:13:56 +0100
Local: Wed, Dec 26 2001 6:13 am
Subject: Re: New Lisp ?

Bruce Hoult <br...@hoult.org> writes:
> Well dispite that Dylan hasn't gone away.  The number of users is small,
> but it seems to be growing.  I wonder if Andreas has any stats on the
> number of hits or downloads at gwydiondylan.org?

I don't have reliable download stats, since there are a lot of
mirrors, but a new release generates a few hundred downloads at the
main FTP site.  The web server served about a million requests since I
keep stats (beginning October 99), and currently about 1500 pages are
requested per day.

Andreas

--
"In my eyes it is never a crime to steal knowledge. It is a good
theft. The pirate of knowledge is a good pirate."
                                                       (Michel Serres)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeffrey Siegal  
View profile  
 More options Dec 26 2001, 9:38 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Jeffrey Siegal <j...@quiotix.com>
Date: Wed, 26 Dec 2001 06:38:23 -0800
Local: Wed, Dec 26 2001 9:38 am
Subject: Re: New Lisp ?

Bruce Hoult wrote:
>>Andreas Bogk wrote:

>>>I suggest to take a look at Dylan.  It's a pretty recent Lisp-like
>>>language, and it's got a few things right (but on the other hand
>>>omitted some features some people consider essential).

>>I consider Lisp syntax (or something similarly elegant) to be
>>essential.  I suspect that many proponents of Dylan-like languages would
>>consider it unacceptable.  I strongly suspect there is no middle ground.

> I can happily use either.  Or paren-less prefix (Logo, ML).  Or postfix
> (PostScript, Forth).  But even after much use of the others I find that
> I do prefer "conventional" syntax.

It isn't a question of using.  It is a question of being able to define
new syntax without stretching or breaking the inherent limits of the
existing syntax.  Lisp lives essentially forever in the world of
computer languages because it almost can't be outgrown.  To the extent
that Dylan lives at all, it will still die when the world decides that
objects aren't that central to programming after all, and moves on to
some other model, or when someone comes up with a new syntactic
construct that it is incompatible with Dylan's syntax. Lisp will live on.

>>(Yes, I'm aware of Lisp-syntax Dylan, but I think there's a reason it
>>got abandoned.)

> The reason as I understand it is that no one could figure out how to
> bidirectionally map macros between infix and prefix.

> I'm not sure whether this is impossible or merely hard.

And the reason the decision was made to drop prefix rather than infix
when that happened was the overriding goal of trying to sell Dylan
alongside Java or C as a language for the great masses. (Which today
seems utterly absurd.)

Many smart people have observed that when you encounter a "hard" (if not
impossible) problem, you have already made a mistake somewhere back down
the road. Trying to "add" an infix syntax without recognizing that this
almost certainly means losing expressive power and generality was just
such a mistake.

> Another solution might be to explicitly define both syntaxes when you
> define a macro.  More work, but then you don't define new syntax quite
> as often as you define functions.

That would be very error prone.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeffrey Siegal  
View profile  
 More options Dec 26 2001, 9:42 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional, comp.lang.dylan
From: Jeffrey Siegal <j...@quiotix.com>
Date: Wed, 26 Dec 2001 06:42:22 -0800
Local: Wed, Dec 26 2001 9:42 am
Subject: Re: New Lisp ?

Andreas Bogk wrote:
>>doing that in-line.  A CLOS-style object system does have type
>>annotations, at least at the method level (which is probably enough),
>>because they're necessary for dispatch.  

> Having type annotations for bindings gives the optimizer a lot of meat
> to work on.

I'm not so sure about that, given good type inference, and methods that
are kept reasonably small.  In any case, it is a trivially small matter
to add type bindings to let statements one they exist for methods.

>>As for conditions, I prefer
>>passing condition handlers as explicit arguments.  With proper tail
>>calls and limited use of call/cc to escape out of CPS, it works fine.

> I don't think so.  Having to pass around handlers for all sorts of
> conditions is a nuisance.  This is something CL and Dylan got right,
> IMHO.

Chocolate and vanilla.  I would add that explicitly passing condition
handlers around is a bit like explicit typing, becuase it prevents you
from leaving conditions unhandled.

>>>Oh, and dynamism vs. performance tradeoffs like sealing,
>>>primary classes and limited types.

>>I think these are overhyped features which have been adaquately
>>addressed in Lisp/Scheme using either different implementations as
>>needed, declarations, etc.

> The point is that you can start writing code without caring about
> performance.  Once the design has settled, you can sprinkle some
> adjectives here and there, and the code becomes fast, without having
> to re-implement performance-critical code.  I consider sealing to be a
> good thing.

I do this in Scheme today, and I don't even sprinkle adjectives here and
there, by developing in a developer-friendly environment and then
switching to a highly-optimized block compiler for tuning and production.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bruce Hoult  
View profile  
 More options Dec 26 2001, 11:05 am
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Bruce Hoult <br...@hoult.org>
Date: Thu, 27 Dec 2001 05:05:12 +1300
Local: Wed, Dec 26 2001 11:05 am
Subject: Re: New Lisp ?
In article <3C29E0DF.8020...@quiotix.com>, Jeffrey Siegal

That's true only in the trivial sense that Lisp has no syntax, so Lisp
syntax can't be outgrown.  Dylan has pretty much all the same semantics
as Lisp, and a malleable syntax.

> To the extent
> that Dylan lives at all, it will still die when the world decides that
> objects aren't that central to programming after all, and moves on to
> some other model, or when someone comes up with a new syntactic
> construct that it is incompatible with Dylan's syntax. Lisp will live on.

There is no such construct.  If it can be fitted into Lisp's
functions-only notation then it can also be fitted into Dylan's
functions and function-macros.  In Dylan in may well be *better* fitted
into statement macros, but that's an additional possibility, not a
restriction.

> >>(Yes, I'm aware of Lisp-syntax Dylan, but I think there's a reason it
> >>got abandoned.)

> > The reason as I understand it is that no one could figure out how to
> > bidirectionally map macros between infix and prefix.

> > I'm not sure whether this is impossible or merely hard.

> And the reason the decision was made to drop prefix rather than infix
> when that happened was the overriding goal of trying to sell Dylan
> alongside Java or C as a language for the great masses. (Which today
> seems utterly absurd.)

Why?  Since that decision was made, the great masses have adopted both
Java and Perl, while Lisp has remained in the wilderness.  I don't see
any reason to think that infix syntax is a *disadvantage* to the goal of
attaining popularity.  The time may simply be not yet right.  After all,
it is only just now that reasonably mature Dylan implementations are
becoming available.

> Many smart people have observed that when you encounter a "hard" (if not
> impossible) problem, you have already made a mistake somewhere back down
> the road.

Or no one had the correct "ah-ha" moment yet.

> Trying to "add" an infix syntax without recognizing that this
> almost certainly means losing expressive power and generality was just
> such a mistake.

In your opinion.

> > Another solution might be to explicitly define both syntaxes when you
> > define a macro.  More work, but then you don't define new syntax quite
> > as often as you define functions.

> That would be very error prone.

A great many things in programming are error prone.  In fact anything in
which it is impossible to make a mistake is almost certainly not
powerful enough to be useful.  It is reasonable to expect that
programmers have *some* skill.  Also, even if a compiler can't
reasonably translate an infix macro to a prefix macro (or the reverse),
it seems entirely reasonable for it to apply some consistency checks to
two such macros supplied by a human.

-- Bruce


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeffrey Siegal  
View profile  
 More options Dec 26 2001, 12:07 pm
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Jeffrey Siegal <j...@quiotix.com>
Date: Wed, 26 Dec 2001 09:07:40 -0800
Local: Wed, Dec 26 2001 12:07 pm
Subject: Re: New Lisp ?

Bruce Hoult wrote:
> That's true only in the trivial sense that Lisp has no syntax, so Lisp
> syntax can't be outgrown.

Hardly.  It just has a syntax with a very simple and powerful basic
construction rule.  However, on top of that construction rule,
enormously powerful syntactic abstractions can be (and are) built.  What
Algol-like languages lack is the basic construction rule which allows
you to decompose the syntax down into elemental componets.  That makes
any macro system either enormously complex or lacking in power, or both.

Consider, for example, what low-level Lisp macros would look like in an
Algol-like language.  They can be done but the result is enormously
complex (and also fragile; if the language syntax is extended, macros
written that way will likely break).  

> There is no such construct.  If it can be fitted into Lisp's
> functions-only notation then it can also be fitted into Dylan's
> functions and function-macros.

Of course it can, just as you could write a Lisp interpreter in Dylan
and use that.  But at some point it becomes language-abuse, not
language-use, becuause the facilities the language provides to help you
end up either being in the way, or being useless warts.  I can tell you
from experience that trying to do extremely complex things with
function-style macros in an Algol-like language is far, far worse than
doing the same thing in Lisp, since such things are a natural extension
of the Lisp syntax but stronly conflict with the flavor of an
Algol-style langauge.  Yes, it can be done that way, but it might as
well not be possible because no one will want to use it.

> > And the reason the decision was made to drop prefix rather than infix
> > when that happened was the overriding goal of trying to sell Dylan
> > alongside Java or C as a language for the great masses. (Which today
> > seems utterly absurd.)

> Why?

I didn't mean the decision was absurd at the time, just that the
possiblity of Dylan being sold to the great masses today is absurd.
Dylan is a useful niche language, which is all it will ever be.  As a
niche language, though, you don't need to sell it with a candy-coated
syntax.  I might be using it today if the Lisp syntax had been retained,
but I have no interest whatsoever in an Algol-syntax niche langauge.  If
I'm going to use such a langauge, it is going to at least be a
mainstream one with all of the benefits that acrue from that status
(i.e., all things considered I'd rather use Java, and I do, than Dylan,
despite recognizing that Dylan is a much nicer language).

> Since that decision was made, the great masses have adopted both
> Java and Perl, while Lisp has remained in the wilderness.  I don't see
> any reason to think that infix syntax is a *disadvantage* to the goal of
> attaining popularity.

I wasn't suggesting that.

> The time may simply be not yet right.  After all,
> it is only just now that reasonably mature Dylan implementations are
> becoming available.

With all due respect, I think you are dreaming, and I think some honest
self-reflection would confirm that.

> > Many smart people have observed that when you encounter a "hard" (if not
> > impossible) problem, you have already made a mistake somewhere back down
> > the road.

> Or no one had the correct "ah-ha" moment yet.

Taking a path which requires an as-yet-unknown "ah ha" to suceed is a
design error.  It is those moments which make new paths feasible.  Blind
leaps occasionally do lead there (I'm a big fan of evoluationary
learning), but when they don't, you should be willing to accept that the
leap was a mistake and backtrack.  

> > Trying to "add" an infix syntax without recognizing that this
> > almost certainly means losing expressive power and generality was just
> > such a mistake.

> In your opinion.

Absolutely true.  

> > > Another solution might be to explicitly define both syntaxes when you
> > > define a macro.  More work, but then you don't define new syntax quite
> > > as often as you define functions.

> > That would be very error prone.

> A great many things in programming are error prone.  In fact anything in
> which it is impossible to make a mistake is almost certainly not
> powerful enough to be useful.  It is reasonable to expect that
> programmers have *some* skill.

Requiring a programmer to maintain two distinct pieces of code which are
supposed to have the same effect is something that experience shows to
be extremely difficult and error prone.  As development practices go,
such an approach is best avoided.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Bijan Parsia  
View profile  
 More options Dec 26 2001, 1:05 pm
Newsgroups: comp.lang.lisp
From: Bijan Parsia <bpar...@email.unc.edu>
Date: Wed, 26 Dec 2001 12:52:18 -0500
Local: Wed, Dec 26 2001 12:52 pm
Subject: Re: New Lisp ?

Well, some others have responded, and I'd hoped not to get dragged back
it, but I think that if this was intended as a criticism, it was
misguided. First off, I'm not sure what "practicing
technology" means. Second, presumably when you're designing something to
be used by humans, attending to psychology is important. Third, presumably
language design, if it is practically and production oriented, has to take
account of economic and political factors. From the postings of many,
e.g., Kent Pitman, I see the design of Common Lisp very strongly governed
by the psychology, politics, and economics of its varying user base. Pure
technical "goodness" is to be weighed against lots of other things.

I was trying to suggest that there may be stuff on the *political* side
for Lisp to learn from Dylan. Is it really controversial that it's a
fairly risky move to adopt a Pascal like syntax than can't be easily
mapped back into a Lispy one? I mean, who do you win over with that move?

OTOH, given Python's growing user base (and note, python's syntax is an
*issue* for many folks; witness the whitespace wars on
comp.lang.python) there might be some lessons to draw from Dylan for
either Python (how to smoothly integrate more Common Lisp stuff into
Python) or Common Lisp (how to layer a popular syntax on top). Not that
Dylan necessarily has to have the *answers*, but even if it screwed all
these up, it might be worth examining a worked out failure.

Cheers,
Bijan Parsia.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Kaz Kylheku  
View profile  
 More options Dec 26 2001, 2:04 pm
Newsgroups: comp.lang.lisp
From: k...@ashi.footprints.net (Kaz Kylheku)
Date: Wed, 26 Dec 2001 19:03:35 GMT
Local: Wed, Dec 26 2001 2:03 pm
Subject: Re: New Lisp ?

In article <jd1j2uggcr52j22jtk7cu43crp41l75...@4ax.com>, israel r t wrote:
>On Tue, 25 Dec 2001 23:12:51 -0800, jeff
><jn...@houseofdistraction.com> wrote:

>>>>Well, it depends on what you want to do. If you abandon (or deprecate, or
>>>>hide) a Lispy syntax, presumably it's because you want to please or
>>>>placate folks who are turned off from Lispy syntaxes.

>>> Then you are no longer practicing technology, but psychology or politics.

>>Successful language design is all these things.

A psychologically successful design arises out of psychology.
A technically successful design arises only out of good technology.

>True. Unless one gets mind share ( and consequent market share )
>language design is meaningless.

That is utter nonsense.

A machine can understand whatever language you want it to understand.
Users are usually not aware of what language a delivered program is
written in.

There have existed programming languages which were unique to the
application that they were integrated into. That application was
successful nevertheless, nonexistent mind share of the hidden language
notwithstanding.  Thus even completely unknown, unique programming
languages can be used successfully in a program that has a shot at
becoming widely used.

It's nice to have a community surrounding a programming language; there
are benefits from not being the only one using it. You're unlikely to
have a high quality implementation for multiple platforms if you're
the only user.  But if 99.999% of the apparent community is clueless,
then the real community is just the remaining 0.001%.

For instance, out of all the C++ programmers, how many really know the
ISO standard C++?  Informally, one gets the impression that the proportion
is vanishingly small.

Somehow, the bulk of the remaining users don't manage to contribute to
the quality of the language or of the available tools.  They don't even
know exactly what those tools are supposed to implement.

So in the end, popularity of a language is something that only matters to
the inventor and to some tool vendors. To the developer, it provides no
useful benefit. In fact, it is a liability. Language popularity makes the
tool vendors complacent, and at the same time ensures that the job market
is full of programers who all cite knowledge of that language on
their resumes. If you need a developer, you get a truckload of
resumes, most of which are chaff. If you need a job, your resume ends
up in such a truckload.  Microsoft Visual C++ is undoubtedly the most
popular C++ implementation; perhaps not by coincidence, has the worst
standard compliance, and is packaged in a horribly inefficient, buggy,
unreliable development environment.  There is zero motivation to do
anything about it.

The decision about what language to use should be made on purely
technical and economic grounds, because the success of the software
depends on it. There are sound technical reasons for preferring Lisp
syntax, whereas there is no technical reason for preferring, say, Pascal
or C syntax.  People who only know non-reflexive languages think that
syntax is just such a matter of taste. Or worse, that its details are
somehow semantically significant: that, for instance, being able to
write while (*s) *d++ = *s++; is somehow inherently powerful, compared
to splitting the operation into several expressions, when in fact the
clueful user writes a call to strcpy(). People who understand Lisp know
that seemingly convenient syntax can actually become a huge barrier
between the user and the language. So the choice of syntax actually
has real implications; it's not just some emotional matter of taste,
but another techical decision.  You're not selling the language, but
software. Catering to tastes may not be the best thing for the end result
you are trying to achieve.

Yes, psychology must be taken into account when designing software for
people.  And there is a domain where those considerations are appropriate:
human-computer interface design.

There is another domain in which psychology is relevant: software
engineering.  The success of large scale development is critically tied
to the limitations of the human brain. Programming languages which are
designed to exhibit a convenient syntax in tiny programming examples
are successful at seducing naive programmers, so on one level they
are the result of successful psychology. But the important psychology,
which has an impact on the technical success of software development,
is overlooked. Human beings require abstraction in order to avoid
cognitive overload: trying to understand the large scale pattern in
a morass of insignificant details. Therefore programming languages need to
be able to express abstractions. The choice of syntax becomes important,
because it affects how easy it is to make the syntax of the language
programmable, at the right level of abstraction, where the programmer
can have the illusion that he's working directly with that syntax,
rather than some translated representation of it.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Barry Margolin  
View profile  
 More options Dec 26 2001, 2:11 pm
Newsgroups: comp.lang.lisp
From: Barry Margolin <bar...@genuity.net>
Date: Wed, 26 Dec 2001 19:11:22 GMT
Local: Wed, Dec 26 2001 2:11 pm
Subject: Re: New Lisp ?
In article <bapW7.51884$cv4.1651...@news1.calgary.shaw.ca>,

Kaz Kylheku <k...@ashi.footprints.net> wrote:
>In article <jd1j2uggcr52j22jtk7cu43crp41l75...@4ax.com>, israel r t wrote:
>>On Tue, 25 Dec 2001 23:12:51 -0800, jeff
>><jn...@houseofdistraction.com> wrote:

>>>>>Well, it depends on what you want to do. If you abandon (or deprecate, or
>>>>>hide) a Lispy syntax, presumably it's because you want to please or
>>>>>placate folks who are turned off from Lispy syntaxes.

>>>> Then you are no longer practicing technology, but psychology or politics.

>>>Successful language design is all these things.

>A psychologically successful design arises out of psychology.
>A technically successful design arises only out of good technology.

Ergonomics and interface design are aspects of technology that take into
account the physiology and psychology of the users.

One could claim that assembly or machine language is the best technical
solution to programming computers, because it allows you to take advantage
of all the computer's features.  But this discounts the psychological
effort that it takes to program in machine language compared to high level
languages.  HLL's owe their existence to psychological needs.

--
Barry Margolin, bar...@genuity.net
Genuity, Woburn, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Macros in LISP and other languages" by Francois-Rene Rideau
Francois-Rene Rideau  
View profile  
 More options Dec 26 2001, 2:49 pm
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Francois-Rene Rideau <fare+NOS...@tunes.org>
Date: 26 Dec 2001 20:49:26 +0100
Local: Wed, Dec 26 2001 2:49 pm
Subject: Macros in LISP and other languages
Jeffrey Siegal <j...@quiotix.com> writes Re: New Lisp ?
> Consider, for example, what low-level Lisp macros would look like in an
> Algol-like language.  They can be done but the result is enormously
> complex (and also fragile; if the language syntax is extended, macros
> written that way will likely break).

I wonder what you think or someone who knows them as well as LISP macros
thinks of CamlP4 or of parse-tree filtering in Erlang.
These may not be as seamlessly integrated in their mother language as are
LISP macros, but they look very promising.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
[  TUNES project for a Free Reflective Computing System  | http://tunes.org  ]
A language that doesn't affect the way you think about programming,
is not worth knowing.           -- Alan Perlis


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New Lisp ?" by Kaz Kylheku
Kaz Kylheku  
View profile  
 More options Dec 26 2001, 2:59 pm
Newsgroups: comp.lang.lisp
From: k...@ashi.footprints.net (Kaz Kylheku)
Date: Wed, 26 Dec 2001 19:58:25 GMT
Local: Wed, Dec 26 2001 2:58 pm
Subject: Re: New Lisp ?

That's correct; that's who you are trying to sell some product to,
or so I'm assuming.

>One could claim that assembly or machine language is the best technical
>solution to programming computers, because it allows you to take advantage
>of all the computer's features.  But this discounts the psychological
>effort that it takes to program in machine language compared to high level
>languages.  HLL's owe their existence to psychological needs.

Which is something that I mention at the bottom part that you snipped.
Those psychological needs are still driven by the need to create
sophisticated, reliable software. Making a language popular requires
a different use of psychology manipulation that has nothing to do
with enabling users to make software; it has to do with manipulating
their egos and insecurities, or appealing to what they find familiar.
There is a difference between using the psychology to create
acceptance, and using psychology to best adapt the machines and
tools to human capability.

So it boils down to what you mean by successful language design.
Israel R T, for instance, thinks that successful equals popular. Thus,
for instance, Visual Basic is a successful design.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Macros in LISP and other languages" by Jeffrey Siegal
Jeffrey Siegal  
View profile  
 More options Dec 26 2001, 3:33 pm
Newsgroups: comp.lang.scheme, comp.lang.lisp, comp.lang.functional
From: Jeffrey Siegal <j...@quiotix.com>
Date: Wed, 26 Dec 2001 12:33:23 -0800
Local: Wed, Dec 26 2001 3:33 pm
Subject: Re: Macros in LISP and other languages

Francois-Rene Rideau wrote:
>>Consider, for example, what low-level Lisp macros would look like in an
>>Algol-like language.  They can be done but the result is enormously
>>complex (and also fragile; if the language syntax is extended, macros
>>written that way will likely break).

> I wonder what you think or someone who knows them as well as LISP macros
> thinks of CamlP4 or of parse-tree filtering in Erlang.

I have not looked at them before so I am not very familar with them. I
looked quickly at CamlP4 and it looked very similar to what I've seen
before in terms of attempts to do this.  In particular, fairly complex,
and requiring the programmer to understand quite a bit about parsing
theory and practice (an interesting field, but not one that every
programmer necessarily knows about or wants to know about).

Anyone who can not see that the complexity of such things is a strong
argument in favor of a simple Lisp-like syntax[*] is blind or
prejudiced.  Perhaps not an overriding argument that would cause one to
use a Lisp-syntax despite other issues, but still...

[*] By "Lisp-like" syntax I mean a syntax that can be constructed and
decomposed using a few simple, easy-to-understand rules.  It doesn't
neceessarily need to be Lisp-syntax itself.  For example, it might use
indentation rather than parenthesis to indicate nesting.  Or it might be
something else.  But whatever it is, it should reduce to some sort of
logical and simple internal form, not some mostly random collection of
Algol-like constructs that exist largely the result of a string of
historical accidents.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New Lisp ?" by Andrew Cady
Andrew Cady  
View profile  
 More options Dec 26 2001, 5:28 pm
Newsgroups: comp.lang.lisp
From: Andrew Cady <afc...@attbi.com>
Date: Wed, 26 Dec 2001 22:28:54 GMT
Local: Wed, Dec 26 2001 5:28 pm
Subject: Re: New Lisp ?

k...@ashi.footprints.net (Kaz Kylheku) writes:
> People who only know non-reflexive languages think that syntax is
> just such a matter of taste. Or worse, that its details are somehow
> semantically significant: that, for instance, being able to write
> while (*s) *d++ = *s++; is somehow inherently powerful, compared to
> splitting the operation into several expressions, when in fact the
> clueful user writes a call to strcpy().

To pick an OT nit, that won't do what strcpy() does; it won't copy the
null terminator.  What you want is while (*d++ = *s++) ;

--
F*CK CENSORSHIP


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 51 - 75 of 298 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »