On Sun, 12 Feb 2006 03:03:20 -0800, bearophileHUGS wrote: > Steven D'Aprano>Very slow to do what, compared to what? The decay time > of the tau meson?< > > Probably every answer I can give you is wrong for you, so answering is > almost useless...
We do actually agree. You did explain why the speed of the language itself is rarely the critical factor. My criticism is that whatever good your post would have done was nullified by your opening comment stating that Python is very slow -- a comment which I think is not only harmful, but wrong, benchmarks like the one you linked to not withstanding. I think it is wrong to call Python "very slow" just because it is slower than some other language or languages, for the same reason it would be wrong to describe the population of the UK as "very low" because 60 million people is a smaller number than China or India's one billion plus. Doing so merely reinforces the premature optimizer's message that any language that isn't C (and sometimes Lisp) is "not fast enough". The benchmark you pointed to are of limited use for application developers. (Their value to language designers is another story.) Given that Ocaml is (say) 200 times faster than Python on average, it tells the application developer virtually nothing about the performance of his application. And that's what user's care about -- they couldn't care less about binary trees or partial sums, they care about how long it takes to render a JPEG, open an email, save their files, query the database, display a window, and so forth. Few application level tasks are limited by the speed of the language, not these days. You don't believe me? Consider the following: When you drag your mouse over text in a graphical text editor, the text highlights. How much money would you be prepared to pay to make that highlighting occur 200 times faster? $100? $1? One cent? Chances are you wouldn't pay a thing, because it is already fast enough, and making it faster is of zero value to you -- even if highlighting ten gigabytes of text might be uncomfortably slow. What about opening an email? How much would you pay to reduce the time it takes to open and display an email from a hundredth of a second to virtually instantaneously? I suggest that most people would consider 0.01s to already be be "virtually instantaneously". The important question isn't "is Python fast or slow?", it is "is Python fast enough?". That's a question that doesn't have a simple answer, because it depends. Fast enough to do what? But, in general, more often than not, Python is fast enough. The extra value of using something like Lua or Ocaml or even C is just not enough to make up for the disadvantages of using those languages. Of course Python isn't always fast enough. Please don't waste your time coming up with practical examples where pure Python is objectively too slow for a certain task, because you won't be telling me anything I don't already know. But the developer doesn't have to write pure Python, he can call a module written in C, or change the algorithm, or find another way to accomplish the same end result. Or even decide that for this specific task, Python is not the language to use. These are all good solutions, but they don't mean that Python is "very slow" in general. Even C is not always fast enough, but we wouldn't say C is "very slow" just because it can't calculate the first million Mersenne Primes in twenty milliseconds. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list