• TalkBass has been independent since 1998. Add your voice.
    Create a free account to reply to discussions, view embedded media, and browse with fewer display ads.
    Join freeLog in
    Want zero display ads or expanded classifieds tools? Compare plans.

Any C++ types out here?

I've been greatly enjoying Python. The speed issue is something to consider of course -- it boils down to a tradeoff between making the most efficient use of your computer's time, or of your time writing programs. But for the kinds of programs that I write, including a fair amount of computation, I don't find myself waiting around for programs to finish. And there are modules for improving computational speed such as numpy. Also, if your program is using the resources of the OS, or of services such as the Web, then the computer will be spending most of its time executing those functions rather than Python code.

It's not just the speed of your code as executed. Python threads also do not distribute CPU load onto multiple CPUs (for that you have to fork, make a new process). That can be a serious problem both from a performance standpoint and from an education/jobserching status.

Writing code that multithreads to use more than one CPU and does that well is a big thing now that even our phones are multi-core.
 
It's not just the speed of your code as executed. Python threads also do not distribute CPU load onto multiple CPUs (for that you have to fork, make a new process). That can be a serious problem both from a performance standpoint and from an education/jobserching status.

Writing code that multithreads to use more than one CPU and does that well is a big thing now that even our phones are multi-core.
That's useful to know. For me, it's probably not a show stopper. I'll admit that I mainly use programming as a problem solving and prototyping tool in my work (R&D for chemical analysis instruments), and not to develop commercial software. In fact it looks like there's a growing interest in Python among scientists and engineers, competing with commercial apps such as Matlab and LabVIEW. There was something that happened to science research funding within the past couple of years that suddenly made it harder to buy expensive commercial apps, and a fair amount of functionality is being ported into Python add-ons.

I also use ANSI C on microcontroller targets. But my resume as it stands today would probably not get me a job doing just programming.

Some things that I like about Python are being able to deploy the development tools on practically any modern computer in a matter of minutes, and to share my programs in source code form with a reasonable chance that somebody else can use and modify them. At any given moment, my programs are running on probably a dozen or more computers, at multiple work sites worldwide.

But not on millions of computers. ;)
 
Wow, that stuff is over my head. But it points to one of the strengths of Python, which is the ease of creating and using powerful libraries.

At the same time, Python may also be evolving towards the language of choice for people like beginners, kids, hobbyists, scientists, etc. I consider that to be a good sign, because those people just want to start using something that's easy to learn, without a lot of fluff.
 

I need to point out very strongly how misleading this is.

Yes, you can of course use the processing power of multiple CPUs if you either do your work in C code you call or by doing some form of separate process via pipes or RPCs or other forms of interprocess communication.

That doesn't change the fact that plain python code you write can use threads only to not block on systems calls, but you cannot speed up your program by spreading it over processors if you are using too much CPU. And that happens quickly, an algorithm straight implemented in pure python is easily 100x slower than C++.

Python shares this problem with Ruby and most of the other scripting languages, but C++, Java, Lisp and other languages use multiple CPUs for your threaded code.

If high performance and using SMP is desired in a less than insane language Go (golang) is about the only option visible to the public right now, assuming Lisp is too much under the radar for you.

What that does for job search is hard to predict. Google is behind Go which gives is automatic street credit with all those companies who are now picking tools based on what Google uses. But I doubt this is very useful for entry level positions.