Python syntax in Lisp and Scheme

Marco Antoniotti marcoxa at cs.nyu.edu
Wed Oct 8 11:27:59 EDT 2003


Carlo v. Dango wrote:

> 
>> I'd humbly suggest that if you can't see *any* reason why someone
>> would prefer Lisp's syntax, then you're not missing some fact about
>> the syntax itself but about how other language features are supported
>> by the syntax.
> 
> 
> sure, but it seems like noone was able to let CLOS have
> (virtual) inner classes,
> methods inside methods,
> virtual methods (yeah I know about those stupid generic functions :),
> method overloading,

 From what you are saying it is obvious that you do not know what you 
are talking about.

True, you do not have "inner" classes, but that has never stopped 
anybody from writing good code.  As for your comments on methods and 
generic functions it is obvious that you do not know what multiple 
dispatching is (yes, there is an ugly hacked up Python library to do 
that floating around; I do not know if it will make it it 3.0), so you 
comment looses value immediately.

> A decent API (I tried playing with it.. it doesn't even have a freaking 
> date library as standard ;-p


Apart form the fact that the language has GET-UNIVERSAL-TIME, 
DECODE-UNIVERSAL-TIME etc etc, you can get a nice and portable (across 
all n > 1.8 CL implementations) date parsing library at

http://www.cliki.net/net-telent-date



> 
> Yes I agree with the compile time

The term "compile" should already make you think.

> macro expansion is a nice thing. 
> However, if I want to do some serious changes to the structure of 
> objects and classes (i.e. create a new kind of objects) then I have to 
> spend a long time finding out how the CLOS people hacked together their 
> representation of classes, methods, method call etc... it has been far 
> easier for me to just do some small changes using __getattribute__ and 
> metaclasses in python. So in that respect Im not really sure the macro 
> idea is advantageous for other than 'straight away' macros...

And how exactly does CLOS forbid you to do the same? You can do that 
using accessor, reader and writer generic functions (ooops, I forgot 
that you do not know enough about them :) ) If that is not enough, the 
CLOS Metaobject Protocol is available in practically all major CL 
implementations (and that is more than the 1.8 Python implementations 
out there).  And it seems to me that

> 
> yes this mail is provocative.. please count slowly to 10 before replying 
> if you disagree with my point of view (and I know Pascal will disagree 
> ;-) ... not that I ever seen him angry ;-)


I counted until 42 :)

Cheers
--
Marco






More information about the Python-list mailing list