Is Python good for big software projects (not web based)?
<p>Right now I'm developing mostly in C/C++, but I wrote some small utilities in Python to automatize some tasks and I really love it as language (especially the productivity). </p>

<p>Except for the performances (a problem that could be sometimes solved thanks to the ease of interfacing Python with C modules), do you think it is proper for production use in the development of stand-alone complex applications (think for example to a word processor or a graphic tool)?</p>

<p>What IDE would you suggest? The IDLE provided with Python is not enough even for small projects in my opinion.</p>

<p>We've used IronPython to build our flagship spreadsheet application (40kloc production code - and it's Python, which IMO means loc per feature is low) at <a href="http://www.resolversystems.com/">Resolver Systems</a>, so I'd definitely say it's ready for production use of complex apps.</p>

<p>There are two ways in which this might not be a useful answer to you :-)</p>

<ol>
<li>We're using IronPython, not the more usual CPython.  This gives us the huge advantage of being able to use .NET class libraries.  I may be setting myself up for flaming here, but I would say that I've never really seen a CPython application that looked "professional" - so having access to the WinForms widget set was a huge win for us.  IronPython also gives us the advantage of being able to easily drop into C# if we need a performance boost.  (Though to be honest we have <em>never</em> needed to do that.  All of our performance problems to date have been because we chose dumb algorithms rather than because the language was slow.)  Using C# from IP is much easier than writing a C Extension for CPython.  </li>
<li>We're an Extreme Programming shop, so we write tests before we write code.  I would not write production code in a dynamic language without writing the tests first; the lack of a compile step needs to be covered by something, and as other people have pointed out, refactoring without it can be tough.  (Greg Hewgill's answer suggests he's had the same problem.  On the other hand, I don't think I would write - or especially refactor - production code in <em>any</em> language these days without writing the tests first - but YMMV.)</li>
</ol>

<p>Re: the IDE - we've been pretty much fine with each person using their favourite text editor; if you prefer something a bit more heavyweight then <a href="http://www.wingware.com/products">WingIDE</a> is pretty well-regarded.</p>
