Learning to Program – Integrated Development Environments (IDE’s)

This entry is part 21 of 22 in the series Learning to Program

There are probably as many Integrated Development Environments as there are programming languages. That’s not even counting using notepad, the command line, notepad ++, or other text editors. Some of the IDE’s are specific to a language, while others are generic and cover everything that they can. Some are free, while others cost money to use. I won’t claim to be an expert on IDE’s but as a teacher and someone who’s spoken with companies in the industry, I can give you some good ideas.

I will cover the main groups of languages and list the IDE’s that I feel are best for them, along with why I believe they are. Some may be listed in more than one category, and your favorite may not be listed in the category you use it for. As always, I welcome your opinions about IDE’s–especially ones that I haven’t looked at here.

Visual – languages (Visual Basic, Visual C#, .NET Development)

Microsoft Visual Studio – It goes without saying that Microsoft’s IDE will be the best choice for their languages. They are designing the language as well as the IDE, so the integration is seamless. The main drawbacks are the cost of Visual Studio (if you don’t use the Community or MSDN editions), and that it takes up huge amounts of disk space. Visual Studio 2015 Enterprise with everything installed clocks in at around 50 GB and Visual Studio 2017 with everything installed is 80 – 85 GB (depending on the edition).

Visual Studio Code – This is a lightweight IDE that Microsoft is developing. It’s specific to Visual C# and possibly other C-related languages. You won’t have the drag and drop designer that comes with Visual Studio, but if you’re the type of person who likes to code everything from scratch, it might be your answer. Plus it’s free.


Codeblocks – I discovered this while taking a few C/C++ courses on Udemy and fell in love with it. It’s fairly simple to use and straight-forward. It doesn’t come with a compiler, but you can install the MinGW compilers or use other compilers that you might have installed already. The only drawbacks that I can think of off-hand are that you’ll have to tweak the themes (especially the Darcula theme) to make sure your code and cursor are visible.

Eclipse – I’m not a huge fan of Eclipse, but that’s only because I’ve gotten used to other IDE’s for the various languages that I’ve coded in. But that doesn’t mean it’s not great for development. Eclipse is one of the most versatile IDE’s out there. Want to code in C or C++? Eclipse has an extension. Java? Covered. COBOL or FORTRAN? Yep, it’s there. As I mentioned above, my issues with Eclipse are that they either don’t have certain features or the features are more difficult to locate, than other IDE’s. ***You’re going to see Eclipse listed a lot because it’s so versatile.

Netbeans – I’m leery of including Netbeans simply because I haven’t used it for anything other than Java. But, like Eclipse, it has extensions for various languages including C and C++.


Speaking of Java…

Netbeans – Oracle (and Sun before that) recommends Netbeans as their IDE. While it may be resource heavy, it does Java excellently. And it’s cross-platform. Netbeans also has extensions for other languages, but Java is their bread and butter. One feature that I love in Netbeans (for Java at least) is “Fix imports”. When you start creating your code and the IDE is highlighting syntax errors, you can right-click on the word and choose Fix Imports. It will search through the Java language libraries and add the proper import statement at the top of the program for the command.

Intelli-J IDEA – JetBrains entry into the Java IDE is one that I heard of when our college toured Redstone Consulting. They’re a purely Oracle solutions provider, and Intelli-J is the IDE of choice there. While you’re welcome to use your own OS/IDE, it’s the one they recommend. Also if you take some of the Java courses on Udemy, they recommend Intelli-J as well (and one offers a coupon to extend the trial for Ultimate). There are a few features that it lacks (or are difficult to find) compared to NetBeans, but it’s still an excellent choice.

Eclipse – I have to include Eclipse, as it’s versatile and if you take courses at the Oracle Academy, they have used Eclipse as their IDE. One of the bonuses of Eclipse is that you don’t have to “install” it like a traditional IDE. In fact, you can set it up to run entirely from a USB Drive and move it from computer to computer. Java was one of the first languages that Eclipse was designed for, so it makes sense that it’s used for that.


I should start out by clarifying that my only experience with Python IDE’s is Komodo, although I know Eclipse, Visual Studio, NetBeans and others provide support for Python. So I’m going to give you my opinions based on a hat tip to noeticforce.

Eclipse – Again, Eclipse (with PyDev) is the most versatile IDE out there. It wasn’t designed for any specific language, which is one of its strengths. Because while IDE’s like Visual Studio or NetBeans can do Python coding, they were designed for a specific set of languages–so they are better at those.

PyCharm – JetBrains IDE for Python coding is one of the top commercial offerings. There’s a Community Edition which is still packed with features, so you’re able to try it out without having to pay a lot of money–unless you need the more advanced features. And JetBrains IDE’s are used by some of the major companies, like Twitter, Groupon, Spotify, and E-Bay.

Komodo – Komodo is a full-featured IDE that offers both a commercial and open source version. Their commercial offering is free to educational institutions. When I first created my Tunnelbroker updater, I used Komodo to make a GUI for the program. It was fairly easy to use–even though I hadn’t developed in Python at all prior.

So tell me what your favorite IDE’s are for the languages you use. And if there are languages and IDE’s that I missed, let me know. I covered what I think are the main languages, and the IDE’s that I’m most familiar with for each.

Series Navigation<< Learning to Program- Two Main Types of ErrorsLearning to Program >>

Leave a comment

Your email address will not be published. Required fields are marked *