dynamic classes and duck typing

Walter Bright newshound1 at digitalmars.com
Tue Dec 1 03:13:28 PST 2009


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



More information about the Digitalmars-d mailing list