News

Finding the Right IDE for Your Application

November 25, 2020 by Jake Hertz

If you're not sure which IDE to choose, here's a good place to start.

Not sure which IDE is right for you? Here's a quick introduction to five programs to help you choose based on your skill level, project type, and the language you're using.

When it comes to picking an Integrated Development Environment, or IDE, there are many factors to consider. For instance, some IDEs are really good for quick scripting work but others are better for long projects.

Also, the type of IDE you choose can depend on what skill level you are at and how comfortable you are with the language. Below is a list of some of the most common IDEs, what languages they support, and some of their strengths.

This list does not include every IDE, but covers different types of IDEs and a large variety of programming languages that can be used with them.

 

MPLABX

 

 

Languages:​ Assembly, C, C++, etc. 

Skill Level:​ Intermediate.

MPLAB X is the very popular IDE for embedded development for PIC microcontrollers developed by Microchip. It is based on Eclipse (covered below),​ and can run on a personal computer with support for Windows, Mac OS, and Linux.

Some popular features include C/C++ compilers, a debug tool, macros, third-party tools, complex breakpoints, auto-completion, and a live syntax checker meant to detect common errors.

 

STM32CubeIDE

 

 

Languages:​ Assembly, C, C++, etc.

Skill Level:​ Good for beginners.

STM32CubeIDE is a C/C++ development platform with peripheral configuration, code generation, code compilation, and debug features for STM32 microcontrollers and microprocessors. This system is based on the Eclipse framework, GCC toolchain for development, and GDB for debugging. It allows the integration of the hundreds of existing plugins that complete the features of the Eclipse® IDE.

When using this IDE, initialization code will be automatically generated upon the selection of an empty STM32 MCU or MPU. Users can configure this initialization code to set the pinout, clock, peripheral, and middleware configuration. The IDE also offers a variety of debugging tools, such as CPU core, peripheral register, and memory views, and a CPU fault analysis tool.

 

ARM Keil

 

 

Languages:​ Assembly, C, C++, etc. 

Skill Level:​ More advanced.

ARM Keil encompasses an entire environment of development tools for creating embedded applications meant specifically for ARM-based devices. The software package includes leading C/C++ compilers, simulation models, debuggers, linkers, assemblers, and middleware libraries.

ULINK debug adapters are very useful, allowing developers to program, debug, and analyze embedded applications. Some noteworthy adapters include ULINKproadapter, which provides streaming of the instruction trace, ULINKplus, which enables power measurement and test automation, and ULINK2, which helps debug Arm and legacy architectures.

 

Arduino IDE

 

 

Languages:​ C, C++ 

Skill Level:​ Beginner.

Arduino may be the best IDE and platform out there for beginners. The Arduino IDE is optimized to work with the Microchip ATmega328P microcontrollers on Arduino boards, but it can work with many different microcontrollers in the market. It's an open-source IDE that provides a range of features and libraries that make embedded programming much easier.

Utilizing its own language, based on C, the Arduino IDE is extremely intuitive and straightforward, making it a great learning tool. Furthermore, Arduino benefits from having ready-to-use boards for developing on, having an open-source hardware and software, and a large and helpful community.

 

Code::Blocks

 

 

Languages: C, C++, Fortran

Skill Level: Great for beginner programmers. 

Code Blocks has highlighted keywords so you know if you are typing built-in functions correctly. The interface has smart indent, code folding, and customizable highlighting to keep the code neat and easy to read.

The debugger has conditional breakpoints, data breakpoints, and code breakpoints for easy examination of the code during runtime. Multiple compilers are supported, such as GCC and MSVC++.

Code::Blocks runs on Linux, Mac, and Windows and is Open Source.

 

Eclipse

 

 

Languages: C, C++, Python, Perl, PHP, Java, Ruby, etc.

Skill Level: Eclipse has a lot of features for both advanced and beginner programmers.

This IDE can be used with many languages because of the extensive library of plugins. It also has a lot of helpful code suggestions/completions to speed up projects. The workspaces and hierarchy of folders help to keep different projects and parts of code organized and easy to find.

Eclipse can be used cross-platform, but a Java Runtime Environment (JRE) as well as Java Development Kit (JDK) are required to compile and run Java code.

 

Visual Studio

 

 

Languages: Ajax, Javascript, Visual Basic, Visual C#, Visual C++, etc.

Skill Level: Most skill levels.

Visual Studio has been around for a very long time and there are a lot of features that have been added that really make it a great IDE.

It uses Xamarin which has cross-platform development across Android, IOS, and Windows apps. Utilizing the shared project option makes code available across different console applications. Also, the code editor helps find unnecessary or redundant code so that you can remove something that is unneeded.

 

IntelliJ IDEA

 

 

Language HTML, Javascript, Node JS, etc.

Skill Level: This is the most developer-centered IDE on this list.

The IntelliJ IDE provides a lot of tools to help complete code, find errors in code, and make changes. There is version control to keep edits of your code organized, an inline debugger to show changes in variable values, quick fixes which highlight potential mistakes and offer solutions, and refactorings to quickly change the names of classes, methods, variables, or anything else.

 

ConTEXT

 

 

Language: HTML,C, C#, C++, Visual Basic, Java, SQL, Fortran, etc.

Skill Level: Great for beginners.

ConTEXT is an easy-to-use text editor. It has syntax highlighting for multiple languages including PHP, XML, Javascript, Perl, the above list of languages, and many more.

Auto indent and custom code highlighting options keeps code easy to read based on your personal preferences. ConTEXT's file compare capabilities are great for looking at differences in pieces of code. Its code templates help get a beginner coder started off on the right track.

 


 

IDEs are very useful tools whether you are an experienced coder or just starting out and want to get your feet wet. The above list is by no means comprehensive but is a good starting place.

It’s important to remember that, depending on the application, one IDE may outperform another. It’s a good idea to try out a few different IDEs and see what works best for you.

Looking for more? Check out our article on an additional five IDE options.

16 Comments
  • Israel_Garibay July 23, 2016

    no mention of Apples Xcode IDE?

    Like. Reply
  • G
    gnagy July 26, 2016

    “Real men” write their own IDE.
    And I’m not just saying it because my friend and I wrote one (after seeing how crappy emacs and vi were back then).
    😊

    Like. Reply
    • M
      mstevens August 05, 2016
      Hmmm... that's funny. Seems that both emacs and vi are still going strong.
      Like. Reply