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.