[Tutor] Which computer operating system is best for Python developers?

Steven D'Aprano steve at pearwood.info
Thu Feb 23 05:33:34 CET 2012


On Wed, Feb 22, 2012 at 07:00:57PM -0600, Tamar Osher wrote:
> 
> Hi.  I am still having trouble installing and using Python on my (new) Windows 7 computer, but I plan to contact Microsoft forums and see if they can help me, since this is a Windows problem and not a Python problem.
> 
> My question: For the future, what type of computer is best for Python developers?  Do all Python developers use some type of Unix computer?
> I appreciate your feedback and look forward to hearing from you.  Thanks for your time.

For sure, Linux is the best OS for development.

That doesn't mean that you can't develop on other OSes, or that Linux is 
perfect, but generally speaking it is the simplest and easiest, at least 
once you learn the Linux/Unix ways of thinking, or can memorize a few of 
the most common commands you need to use.

And please don't read this as an attack on Windows, or Mac OS, or 
whatever your favourite OS is. All OSes have their strengths and 
weaknesses, and the range and quality of free development tools happens 
to be one of Linux's biggest strength.

If you hang around on the python-dev mailing list, you will see that one 
of Python's ongoing weaknesses is that the developers don't have enough 
people able and willing to test Python under Windows and fix problems as 
they occur. When you ask why, they tell you that it's because dealing 
with Microsoft licencing is difficult, that the C compilers change too 
often in backwards-incompatible ways, that they can't get people to do 
testing, that in a thousand little ways it just isn't fun or easy to 
develop Python on Windows. Or even develop *in* Python.

On my Linux system, I get Python pre-installed, plus a whole bunch of 
programmers' editors, debugging tools, admin tools, etc. If they don't 
come installed, they are usually one command away:

yum install name-of-package
aptitude install name-of-package

depending on whether you are using Red Hat based Linux, or Debian based 
Linux. On Windows, every package needs to be installed by hand. If 
there's a binary installer, I better hope it works on my system, 
because compiling it myself is a PITA even if I had a C compiler, which 
I don't.

On Windows, I have Notepad, which is a crap editor, WordPad, which isn't 
designed for programming, or heavyweight IDEs that come with my 
compiler. I would need to learn a whole new IDE for every language I 
learn.

On Linux, I have half a dozen programmer's editors already available for 
me. Even the feeblest, nano, is more powerful than Notepad. I just use 
whatever tools I'm already used to using, and it just works:

http://blog.sanctum.geek.nz/series/unix-as-ide/

Unix/Linux is designed to be an development environment, rather than 
having development be an optional extra. No suprises there: Linux 
particularly, but also Unix back in the early days, was built by 
programmers to scratch their own itch: they wanted a good development 
environment, and so they built Unix to be a good development 
environment.

With Windows and Mac OS, it is primarily designed as a desktop OS, with 
development being a necessary evil rather than a design choice.

If you decide to shift from Windows to something else, you may find that 
it's more work learning the new OS than it would have been to have just 
stuck with what you know and learn to use it effectively.


-- 
Steven



More information about the Tutor mailing list