This is the mail archive of the guile@sourceware.cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: can't we all get along? (was: Syntactic sugar and identifier permissivity)


On Tue, Apr 04, 2000 at 03:06:22PM -0700, Michael Vanier wrote:
> 
> This seems unnecessarily harsh on everyone's side.  I don't think someone
> should be criticized _in principle_ for proposing a syntax extension,
> wrong-headed or not.  I also think that condemning guile because it doesn't
> do things the standard-OO way is too harsh.  Let's calm down, folks!  On
> the python newsgroup, for instance, people propose syntax changes all the
> time (though none of them ever get implemented :-).

I'm not condemning guile because it doesn't do things the
standard-OO way, because I realize it's possible (and easy) to
emulate "the standard-OO way" with what Guile has.

I'm condemning Guile because it reminds me of those cartoons
where 4 characters get a poor victim, one by one hand, another
by the other hand, yet another by one foot and the last one by
the other foot, and try to get the poor character to 4
directions in the same time. In cartoons this is cool because
the character will strech. In real life it would break apart
(assuming the strength is big enought - this actually was a
medieval form of execution). Either way, it doesn't go in any
of the intended directions.

Let me put it another way: if the folks who started the Hurd
weren't so stuck on "doing it right" (in this case, using a
microkernel) we would have a free kernel 10 years ago and Linux
probably wouldn't exist at all.

If Guile doesn't focus, what will happen is probably very
similar; someone will sooner or later write a tool that does
what Guile proposes to do (perhaps with a higher degree of
kludge, but with the bonus that it exists), then Guile will be
mostly forgotten by pretty much everyone.


> How about this instead: have a pragma-type function such as
> `(use-syntax-extension standard-OO)' at the top of the file which says "the
> reader will recognize the construct `foo,bar' as meaning (slot-ref foo
> 'bar)' [or whatever] in this file".  Thus, if you don't like `foo,bar' you
> just don't put that in your file and you refer to slots the standard way.

That's +- what I proposed, or at least I thought so :-)

> BTW Mikael's `(bar foo)' is not bad either, but I find it hard to grok;
> it's like saying "the bar belonging to foo".  `foo:bar' is great, though;
> does CLOS support this?  My understanding was that `foo' in this case is a
> package name; does every instance of a class get its own package name, or
> is there one package name per class?  I thought the latter was the case,
> which means `foo:bar' doesn't solve the problem addressed here.

foo:bar is clearer, but : is a valid character for a Scheme
symbol so I didn't propose it. And foo.bar would be even better
but is not practical IMHO for the same reasons.

[]s,
                                               |alo
                                               +----
--
          Hack and Roll  ( http://www.hackandroll.org )
            News for, uh, whatever it is that we are.


http://www.webcom.com/lalo           mailto:lalo@hackandroll.org
                 pgp key in the personal page

Brazil of Darkness (RPG)    ---     http://zope.gf.com.br/BroDar

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]