On Thu, 2009-02-19 at 12:48 -0800, Falcolas wrote: > That's fair, but by using a high level language in the first place, > you've already made the conscious decision to sacrifice speed for ease > of programming. Otherwise, you would probably be programming in C. My parents would have gone mad at me for saying that when I was young - C is just about the highest-level language they ever used - Assembly/hex all the way!
So if you really want speed then why don't you write your code in assembly? That's the only "perfect language" - it's capable of doing everything in the most efficient way possible on your machine. Of course that's a hassle, so I guess you may as well use C, since that's almost certainly only linearly worse than using assembly, and it takes far less time to use. Oh, but then you may as well use python, since (again) that's probably only linearly worse than C, and well-programmed C at that - I certainly wouldn't end up with some of the optimisations that have gone into the python interpreter! That's basically what my mind goes through whenever I choose a language to use for a task - and why I almost always end up with Python. > It's a proposition that used to bother me, until I did some actual > programming of real world problems in Python. I've yet to really find > a case where the application was slow enough to justify the cost of > using multiple Python processes. I deal with those situations a fair bit - but the solutions are normally easy - if it's limited by waiting for IO then I use threads, if it's limited by waiting for CPU time then I use multiple processes, or share the job over another application (such as MySQL), or run a task over a cluster. If you have a task where the linear optimisation offered by multiple cores is really important then you can either: * Run it over multiple processes, or multiple machines in Python or * spend a year writing it in C or assembly, by which time you can buy a new machine that will run it fine in Python. Yes, we're coming to a point where we're going to have tens of cores in a chip, but by that time someone far cleverer than me (possibly someone who's on this list) will have solved that problem. The top experts in many fields use Python, and if they weren't able to make use of multiple core chips, then there wouldn't be any demand for them. Tim Wintle > > ~G > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list