Perfect is the enemy of good enough. The huge goal of CPython (especially 3.x - those who still stuck on 2.x are, well, just stuck on 2.x) is that it is good enough, was designed to be good enough and simple. Need speed? Write extension is C. It is simple and it was designed to be so.
Most of people still didn't get it. CPython 3.x is good enough for its purpose and its goals. It's evolving according to its philosophy (http://www.python.org/dev/peps/pep-0020/) and it is really really good (If you understand some general principles like The Middle Way, Being Good Enough, Divide Et Impera and so on).
Making things too complicated is as bad as making them naively oversimplified. ^_^ And porting everything to JVM is just some kind of sport.
Being simple extendable and at the same time close enough to a hardware and using optimizations provided by an OS is much better.
Yeah, I was influenced by my previous comment. Original article didn't mention JVM.
But there is a bigger view - if most of the modules are mere wrappers around plain C libraries it is very ineffective approach to try to use some complicated VM while you must do zillions of FFI calls. That is of no use.
So, in my opinion, for a scripting language fast and efficient module calls are more important that any modern JIT stuff, while your modules mostly are mere plain .so
btw, this is yet another point where Java sucks. If you are re-implementing everything in Java, that is probably OK (if you don't care about performance. NIO2 is still just a spec), but if you wish to call any code outside JVM - it sucks. The approach itself is deeply flawed. Look what mess JDBC is.
It is so obvious, that I really disappointed by the level of discussions on HN.
The good is the enemy of the better especially if you keep thinking its good enough.
As the Java folk found out more speed is an important goal that can mean the difference between having your language used in certain fields
and c extensions can have more then a few deficiencies compared to code designed in the same language (or compiling to the same bytecode). Does it work on both unix like and windows systems?,does it work with alternate implementations?, ect.?
Ideas (algorithms and data structures) are what matters. Language is just a language, you can translate ideas (not code) between them if you're familiar with both languages and the field. ^_^
Yes, it's very computer-sciency to hold that opinion. Say that next time you're stuck tracking down a buffer overflow.
The point of Python, as far as I'm concerned, is to avoid writing C, not go to it when something is hard. As such, a better-performing Python reduces the need for C extensions and thus makes it better at actually doing things I care about.
Most of people still didn't get it. CPython 3.x is good enough for its purpose and its goals. It's evolving according to its philosophy (http://www.python.org/dev/peps/pep-0020/) and it is really really good (If you understand some general principles like The Middle Way, Being Good Enough, Divide Et Impera and so on).
Making things too complicated is as bad as making them naively oversimplified. ^_^ And porting everything to JVM is just some kind of sport.
Being simple extendable and at the same time close enough to a hardware and using optimizations provided by an OS is much better.