dynamic classes and duck typing

Pelle Månsson pelle.mansson at gmail.com
Tue Dec 1 03:40:10 PST 2009


Walter Bright wrote:
> retard wrote:
>> Overall these simplifications don't remove any crucial high level 
>> language features, in fact they make the code simpler and shorter. For 
>> instance there isn't high level code that can only be written with 
>> 8-bit byte primitives, static methods or closures, but not with 32-bit 
>> generic ints, singletons, and generic higher order functions. The only 
>> thing you lose is some type safety and efficiency.
> 
> I'm no expert on Python, but there are some things one gives up with it:
> 
> 1. the ability to do functional style programming. The lack of 
> immutability makes for very hard multithreaded programming.
> 
> 2. as you mentioned, there's the performance problem. It's fine if you 
> don't need performance, but once you do, the complexity abruptly goes 
> way up.
> 
> 3. no contract programming (it's very hard to emulate contract inheritance)
> 
> 4. no metaprogramming
> 
> 5. simple interfacing to C
> 
> 6. scope guard (transactional processing); Python has the miserable 
> try-catch-finally paradigm
> 
> 7. static verification
> 
> 8. RAII
> 
> 9. versioning
> 
> 10. ability to manage resources directly
> 
> 11. inline assembler
> 
> 12. constants

I mostly agree, but python actually has a rather elegant version of RAII.



More information about the Digitalmars-d mailing list