I'm looking to learn python and wasn't sure what IDE's are available, what is the best one, etc. As a way of making the question more general, lets try to establish a definitive list of the best IDE for all languages. Here's a start

Java: Eclipse
Ruby: ?
Python: ?
x86 Assembly: ?

+9  A: 

This is a very subjective question. For example, I agree with you that Eclipse is a very powerful IDE, there are cases when I prefer to drop into something with a lot more powerful text editing capabilities, such as Emacs. When I am doing heavy text editing and not a lot of refactoring/code generation/code navigation, Emacs I have found to be significantly faster to get things done than Eclipse.

DISCLAIMER: If you are a Vim fan, read this response with "Emacs" replaced with "Vim"

Mike Stone
+1  A: 

I may not dislike Eclipse as much as you, but I do know I prefer NetBeans. As far as C/C++ stuff goes, I use SlickEdit. It's horribly overpriced, but it's a good editor. It has IDE features, and vim emulation, so for me it's the best of both worlds.

+1  A: 

You need to answer this question for yourself because there are a lot of factors to consider. The most important thing is that you want your editor/IDE to become a subconscious extension of your mind and that means that you want to think about ALL of the different things you'll be doing there. Do you work on Ruby AND Java AND C#? What about shell scripts or LaTeX? Do you work on more than one platform? What about working remotely -- perhaps a non-GUI mode is important for you. Also, if you're working on a team, it's important to consider how your tool choices will affect the others (could be good, could be bad). It's true that a good IDE can really help for certain languages but beware of trying to become an expert in 8 editors/IDEs... you'll end up spending too much time thinking about your tools. Choose carefully and choose for yourself. $0.02.

Pat Notz
+2  A: 

My answer is Vim (or Emacs depending on your religion) to all of the above (Java, PHP, Javascript, Python, C/C++, Ruby, C#).

Choose ONE editor and master it.


If you are out to specifically learn python, you could start without any feature rich IDE - in fact they will probably annoy you at first and slow you down (they can help later for larger projects I think).

What I did was use emacs (aquamacs on OSX - as it "fits in" graphically with the mac) and command line - had them open side by side, and a python shell open (you could go even further inside emacs if you like, I didn't). Vim would work just as well - both emacs and vim understand python indentation and want trap you at all (at least I guess vim does).

Michael Neale
+3  A: 

If you're working on Linux, you might take a look at the answers I got on my question on lightweight IDE's. I'm still testing some of the suggestions.

Mario Marinato -br-

For rails development, and the odd bit of PHP/python, I use textmate on the mac, and e-texteditor on windows, because it wants to be 'textmate-for-windows'

I use VS2008 for C#, but E and textmate are good enough that I won't actually bother launching VS unless I need to do some serious digging into code.

To me, the major benefit of using an IDE is build management. Creating some VS projects saves me mucking around with makefiles or NAnt scripts or some other equivalent, but for scripting languages like ruby/python/php where you don't need to compile anything, they don't really serve much purpose.

Another important thing is, you don't need to just find one IDE and try to apply it to everything. E is great at ruby, but that doesn't mean I'd automatically use it for java or C++, or anything else. Likewise trying to shoehorn ruby development into MSVS is a recipe for disaster.

Orion Edwards

I use VI on an original single line LED screen, that's how real coders code ;-D

Seriously though, I think there's a big difference between IDE and editor here. Emacs, Vim/Vi, Notepad (maybe 2 or ++), UltraEdit, etc are just editors. Extremely powerful editors, but not IDEs.

I regularly use both Eclipse and Visual Studio 2008 and I have to say VS is just miles ahead, they're not even comparable. I think VS is so good because it is so tied to MS's tech - i.e. what makes it really powerful for .Net is also why nothing else would benefit from it.

I not sure all languages need or would benefit from an IDE the way .Net does. I'm surprised that Sun hasn't improved on Eclipse for Java, but does Ruby need an expensive or complex development environment?

+5  A: 

If you weren't looking for the Emacs/Vi answer, try Komodo, which is an open-source cross-platform editor for dynamic languages. It comes in a free and commercial (IDE) flavors, and while the open source version is quite a bit behind currently, it's still pretty usable.

There's also the PyDev plugin for Eclipse, which I liked.

Edit: turns out the question of Python IDEs was discussed here earlier.

+7  A: 

For JAVA it has to be Intellij IDEA, it simply has no rival, I suspect anyone who disagrees probably hasn't used it, its a truly amazing IDE. I cannot live without its sister product Resharper, which brings some of IDEA's features to Visual Studio.

+6  A: 

Delphi is underrated as an IDE. They make an IDE for PHP called "Delphi for PHP" now, too.

It's about 7 years since I did any Delphi programming, but in the intervening time I still haven't found anything which comes close. I've mostly been wrestling with the memory-hungry beast that is Eclipse during this time.
Delphi has many virtues, but the newer versions are no lightweight when it comes to memory usage. Although D2007 starts up at about 20 MB, after doing a bit of browsing and building, it gets up to the mid-100s for me.

I am a C++ programmer under Linux and after trying many IDEs definitely I prefer Eclipse with the CDT plugin, it´s easy to use and powerful, just check out Eclipse Ganymede (the last version) , it feels great and has now included new refactoring features.


Komodo is great, Pydev is great, and even Textmate is great. They all offer pluses and minuses. I still haven't found a favorite.

+4  A: 

Most people probably overlook Netbeans because it has been traditionally Java-centric.

One frustration I've always had is finding a consistent, clean and fast(!) IDE that supports the languages I develop in, so that I don't have to learn a different IDE for each language I program in. I'm eagerly anticipanting Netbeans 6.5 (beta is out right now).

Version 6.5 will have PHP support, and the latest version (6.1) has Java, C, C++ and Ruby support, as well as database querying tools. It also has plug-in capabilities if you want to create your own extensions.

Steve M

Caveat: I'm a Windows developer, so the list is Windows-centric. All of the choices below are free/open source.

For .Net, it's hard to beat Visual Studio, but SharpDevelop is very usable. It has come a long way in just a few years. It's open, extensible, and solid.

For C/C++, CodeBlocks does it for me. It has built-in support for all of the major free compilers, as well as several commercial ones. It's generally well designed, with lots of wizards, visual editors, and other creature comforts you generally only see in commercial products.

Eclipse, I have heard, is unbeatable for Java development, but since I don't really do Java I cannot say from experience.

If you want a Delphi-like experience with Free Pascal, there is Lazarus. Lazerus is especially cool, because it re-creates most of what is so good about Delphi, but with a cross-platform, open-source environment.


Windows (.net): VS

Windows (everything else): e.texteditor

Mac: Textmate

Linux: VIM


Java: IntelliJ

C#: Visual Studio

PHP: TSW phpCoder


Being a window user (keep the boos at bay), I like to use notepad. It forces me to be a more attentive programmer. Otherwise if I need to use an IDE of some nature I use notepad++ or ConText which provide code highlighting and simple syntax checking.


I use Aptana Studio for Ruby on Rails development. It has integrated debugger, syntax highlighting and list of all available plugins. Though it does not very sophisticated in code completion, it's quite handy

Maxim Ananyev

Zeus. It has lots of programming specific features but it still feels light, fast and responsive.

Self promoting is a offense only punishable by death.
Why? If he believes in his product and thinks it's relevant to the discussion - there is no reason not to suggest it.
+2  A: 

Steve M is right on with Netbeans. I love it for PHP and Ruby, and it's much better than Eclipse in so many ways. Surprising for open source software.

Eclipse for anything Java, although I wouldn't rule out IntelliJ depending on your needs beyond writing straight code. Many of the Eclipse plugins are half-baked and require hours in the forums trying to figure out what's up.

FlexBuilder for Flex.

Flash CS4 for Flash, along with FlashDevelop (even if you have Mac, find a way).

VisualStudio for C#.

And while I'm at it, HeidiSQL for MySQL, along with the MySql GUI tools.


I prefeer Visual Studio for Web, c# and visual basic, eclipse 3.5 with visual editor for java, and borland builder 6.0 for c++