If you're new to programming (or new to programming in a particular language) you might be looking for an IDE — that's an 
integrated 
development 
environment,
 the handy, dandy piece of software that acts as text editor, debugger 
and compiler all in one sometimes-bloated but generally useful package.
Unless you're committed to working in a text editor and a command prompt window (and there are 
compelling reasons
 for doing exactly that) you might be looking for some advice on how to 
choose a good IDE, the pros and cons of various varieties, the relative 
costs (financial or system resources) of running a particular IDE, what 
other languages the IDE might handle well, the operating system(s) it runs on and ever so much more.
I was recently in need of such advice, myself. As some of the readers
 of this blog know, I recently went back to school to study computer 
science. Being an utter novice, I made the mistake of asking developers 
in my sphere what IDE I should use.
The topic is apparently a minefield of catastrophic proportions. 
Developers are passionate, experienced and opinionated when it comes to 
optimizing their workflows, and recommendations (and 
anti-recommendations, e.g., "NetBeans is superlatively bad and will turn
 your hardware into Cream O' Wheat!") fly like shells over a 
battlefield.
Here's a less opinionated, concise but thorough look at IDEs for the 
new programmer. If you need more detailed information or want to find an
 IDE for a less common programming language, check out the 
Wikipedia article comparing just about every IDE known to humankind.
And if we left out an IDE you particularly love, let us know about it
 in the comments — but try to keep the NetBeans/Eclipse, Vim/Emacs 
flamewars to a minimum.
IDEs Built from Text Editors
It's a slightly more complicated setup, but some pro developers swear
 by these workflows, which take a lightweight, run-of-the-mill text 
editor and turn it into a full-fledged, be-all-end-all IDE.
Ars Technica
 has an excellent step-by-step article on how to turn Vim into a great 
IDE using Exuberant Ctags, completion modules, script collections and 
more.
Emacs users can also use commands to make this editor more developer-friendly. And of course, this topic gets a 
thorough discussion at StackOverflow.
When in doubt, search Google for tips on turning your favorite text 
editor into a great IDE for your language of choice. Chances are 
someone, somewhere has already attempted it and is willing to hand out 
advice.
Multi-Language IDEs
As a beginning programmer, you might not need tools for coding in Ruby 
and Python 
and C++ 
and PHP, but if you're aiming for a multi-language career later on, you might consider learning the ropes of a multi-language IDE.
One kind 
gent
 (or lady) on Hacker News wrote, "Although many IDEs can handle more 
than one language, few do it well. Plus, it's likely overkill if you are
 just getting started." This individual suggested instead using a simple
 text editor such as gEdit (Linux) or TextMate (Mac) for multi-language 
practice.
Languages: C, C++, Python, Perl, PHP, Java, Ruby and more
Price: FREE
Eclipse is the free and open-source editor upon which many 
development frameworks are based. It's one of the granddaddies in its 
field and comes highly recommended by many a professional developer. 
Eclipse began as a Java development environment and has greatly expanded
 through a system of lightweight plugins.
Languages: Java, JavaScript, PHP, Python, Ruby, C, C++ and more
Price: FREE
NetBeans is neck-and-neck with Eclipse as the most-recommended IDE in
 this category. It's free and open-source, supports tons of languages 
with more plugins coming all the time, and is incredibly simple to 
install and use, even for a beginner.
Languages: Perl, Python, Tcl, PHP, Ruby, Javascript and more
Price: $295
This enterprise-level tool might be best for the pro developer 
because of its higher price point. For beginners, you might also want to
 check out the Komodo-based, FOSS editor 
Open Komodo or Komodo's FOSS version, 
Komodo Edit.
Languages: HTML, CSS, JavaScript, AJAX and others via plugins
Price: FREE
Aptana is a popular choice for web app development. Aptana Studio 2 
can be used as a stand-alone IDE or can be plugged into Eclipse. Aptana 
comes with Firebug support built-in, and its developer community seems 
to release plugins for other languages as needed.
Languages: Python and Ruby
Price: $59.99 (personal developer license)
This IDE is designed for Python and Ruby devs creating apps for 
Windows and Linux. It includes a text editor as well as a GUI designer 
that uses pyQT and QT Designer. The makers of BlackAdder allow you to 
test drive the IDE in a limited 
demo version.
Languages: C, Java, PHP, HTML, Python, Perl, Pascal and a boatload more
Price: FREE
Geany bills itself as a "small and fast" IDE, but it is by no means a
 lightweight. Its list of supported languages is about a block long; 
it's highly customizable; and it features a robust set of plugins which 
is open for hacking.
Here's a chart showing the differences and similarities between a few
 multi-language IDEs. An asterisk denotes the need to use a third-party 
or other plugin to achieve the desired functionality. The .NET column 
indicates support for .NET languages, particularly C#. "FOSS" is the 
acronym for "free and open-source." Click the image to see a slightly 
larger version.
IDEs for Mobile Development
These days, developing mobile applications is one of the most 
compelling and exciting reasons for learning how to code. We're still 
looking for that perfect, all-in-one, 
cross-platform
 mobile app IDE — in fact, we particularly welcome your comments and 
suggestions on this score — but here are a few ideas to get you started.
Try some of 
PhoneGap's
 cross-platform tools. PhoneGap works with Xcode and Eclipse for iPhone 
and Android, respectively. You could also try the web-based, hosted 
RhoHub, which allows for git-powered source control and team collaboration.
Another good bet for mobile developers is 
Appcelerator's Titanium Mobile,
 which lets you write in any language/IDE you choose, then translates 
your code to Objective-C or Java. You can also check out our list of 
cross-platform mobile development tools. Finally, the mobile development products (and resultant applications) from Adobe are getting 
more interesting all the time — we highly recommend keeping an eye on their developer tools.
Also, if you're already using a multi-language or other IDE, check 
the web to see if a mobile-development plugin already exists; many IDEs 
such as Eclipse have this functionality.
Web-Based IDEs
If you're working remotely or need a last-minute fix, these IDEs might be worth looking into.
Languages: ASP.NET, PHP, Ajax, C#, JavaScript, CSS, HTML and more
Price: FREE
This broswer-based IDE works in Chrome, Firefox, Safari and even good
 old Internet Explorer. Like the more robust multi-language IDEs, 
CodeRun supports Visual Studio projects and .NET languages. Best of all,
 your code is sharable via hyperlinks; it's even got built-in social 
sharing tools, should you want to tweet your code.
Languages: PHP, HTML, CSS and JavaScript
Price: FREE
ShiftEdit brings revision history and code snippets to the browser. 
Any files you access will stored until next time you log in. This IDE's 
text editor is based on Mozilla's Bespin (mentioned below).
If you need a collaborative, web-based code editor — great when 
working on joint projects or as part of a team — you might also want to 
check out 
Squad. And for HTML5-based code editing, try Mozilla's 
SkyWriter, formerly codenamed Bespin.
IDEs for Microsoft/.NET/C# and Apple/iPhone/Mac Devs
Some languages require a bit of special handling; not all 
multi-language IDEs support all languages, and if you're working with 
the Cocoa API, for example, or with a .NET framework language, you might
 want to consider something more specifically suited to a Microsoft or 
Apple development environment.
Another part of this category includes single-platform IDEs such as 
Coda and Espresso. They only run on Mac Operating Systems, but they 
allow for multi-language development within a very Apple-flavored GUI.
Languages: Visual C++, VB.NET, C#, F# and others
Price: $549
Visual Studio is Microsoft's IDE. If you're building Silverlight apps or planning on working in a .NET shop (such as 
MySpace),
 you may want to spend some time with Visual Studio. Visual Basic has 
some support for non-Microsoft languages such as Python and Ruby, but 
you'll have to install those services yourself. A free, limited-time 
trial version is available.
Languages: Objective-C, Objective-C 2, Cocoa and Cocoa Touch APIs
Price: FREE
This IDE is just for creating iOS and Mac apps. If you're thinking 
along Apple-y lines and want to get into iPhone or iPad development, 
Xcode might be your first stop. This IDE includes an iPhone simulator 
and GUI builder, too.
Languages: C/C++, Visual Basic, C# and other .NET languages
Price: FREE
Monodevelop is a good option if you're working in a .NET languages 
and don't want (or need) to fork over the $550 for Visual Studio. This 
free-as-in-beer IDE also allows you to port your apps to Linux while 
maintaining a single codebase.
Languages: HTML, CSS, XML, JavaScript and PHP
Price: $79.95
Espresso, a tool for Mac web devs, comes from the makers of CSSEdit. 
Its supported languages and other features are extensible through 
plugins known as "Sugars."
Languages: PHP, JavaScript, CSS, HTML, AppleScript and Cocoa API
Price: $99
Coda bills itself as "one-window development" for the Mac user, and 
its a favorite of many developers on this platform. It's a full-featured
 IDE, but one of its most interesting features is live collaboration 
with other users.
It's not delirium tremens; it's just an elePHPant.
IDEs for Specific Languages
Here are a few suggestions for IDEs that cater to developers working 
in a single language. Some of these options are more costly than others,
 but most of the non-free IDEs here will also have a free trial version 
available for you to test-drive the software, learn to use it and decide
 whether or not you need and want its features and interface.
We only have space to highlight a few of the more popular programming
 languages here. If we left your preferred language out of this list, 
search 
StackOverflow for IDE recommendations, or ping the friendly devs over at 
Hacker News for their advice.
C/C++
C/C++ languages are some of the most widely used in the world of 
computer programming. Almost every multi-language IDE will support 
C/C++, but here are some dedicated IDEs just for C programmers.
Bloodshed Dev-C++Price: FREE
Code::BlocksPrice: FREE
CodeLitePrice: FREE
C-FreePrice: $79.95 (single-user license)
Java
Yeah, yeah, I've heard about how much Java sucks more times than I 
can recall. But it's used in the Android stack as well as in a lot of 
intro-level programming courses, so here's a lineup of good Java IDEs.
JikesPrice: FREE
JcreatorPrice: $89 (single-user license)
IntelliJ IDEAPrice: FREE
Python
Never mind the fu and bar, here's some spam and eggs. If you got that
 reference, you might want to check out these links. Here are a few IDEs
 dedicated to Python, a powerful, readable and fascinating language. For
 more suggestions and comparison information, check out this exhaustive 
StackOverflow list of Python IDEs.
IdlePrice: FREE
PyCharmPrice: $49 (personal license)
PidaPrice: FREE
WingPrice: $35 (personal license, single OS)
PyscripterPrice: FREE
PHP
PHP powers some of the most ubiquitous web apps around today, from 
WordPress to 
Facebook.
 Many of the free multi-language IDEs also support PHP development. Here
 are some full-featured, pro IDEs we've seen recommended.
PHPStormPrice: $99 (personal license)
PhpEDPrice: $119
Zend StudioPrice: $399
PHP DesignerPrice: $45 (personal license)
Ruby/Rails
For a relatively young language, Ruby gets a lot of mileage, from consumer-facing apps like 
Twitter to dev-centric sites such as 
GitHub. In addition to these IDEs, also check out 
Ruby In Steel, a Ruby tool for Visual Studio, and 
Heroku, the so-hot-right-now PaaS for Ruby apps.
RubyMinePrice: $99 (commercial license)
RedcarPrice: FREE (and still under development)
RadRailsPrice: FREE
Use What You Love, Love What You Use
Finally, after scores of links and a huge data-dump of information, 
we can only tell you this: Developers are passionate and opinionated 
about their IDEs because each individual has researched, chosen, used 
and come to appreciate a specific IDE (or set of IDEs) for personal as 
well as practical reasons.
We recommend you try out a few of the free (and free trial) IDEs 
before making a hard and fast choice as to what you'll use, but you 
should ultimately use the IDE that suits you best and makes you 
happiest. Anyone else's recommendations are just highly subjective 
suggestions.
We wish you well, and happy coding!
Disclosure: The author of this post uses gEdit, Notepad, NetBeans, JCreator, and a magnetic needle and a steady hand.