Topics
Integrated Development Environments

Integrated Development Environments

Programs can be written in any text editor and then compiled by running the compiler for the language the program is written in. While this is a possible approach, as the programs become large and include multiple files, this process becomes tedious, cumbersome, and error-prone. An IDEs is a tool, with a user-frienly Graphical User Interface (GUI) that provide developers the ability to write, compile, build, testing, package, and deploy all from the one application.

Features of an IDE that assist developers in developing programs include:

  • Code editing automation
    High-level programming languages have syntax rules for how instructions must be written and how programs must be structured. An IDE has these rules built in and can suggest how code needs to be written for the selected language or highlights errors in the code that the developer can rectify right away. IDEs may support a single language or multiple languages.

  • Syntax highlighting and beautification
    An IDE can format code to make it more readable by making keywords bold or italic, or by using different font colors. It can also add spaces and indents as required to improve readbility.

  • Intelligent code completion
    IDEs can suggest and even auto-complete variable and function names in your code or in the libraries you use so you don't have to remember the exact name for each one.

  • Compilation and Debugging
    An IDE includes compilers for the languages it supports so that code can be compiled and even executed within the IDE itself. An IDE also allow an option to debug the executed program by stopping the execution at defined breakpoints so you can review some values, or even run the execution line by line to check if the programmed logic is working as expected, and if not, to easily identify where it is going wrong.

  • Version Control
    Version control is an important aspect of software development which we will cover in the next topic. IDEs integrate with version control systems allowing you to manage your code better and ensure work is not lost.

There are many IDEs, the more popular ones are Visual Studio (for Microsoft C# and .Net development), Visual Studio Code (supports multiple languages), and Eclipse (for Java development). There are IDEs specifically for mobile app development such as Android Studio (for Android app development) and XCode (for iOS app development). There are IDEs specifically for programming Arduino and Raspberry Pico microcontroller boards such as the Arduino IDE and Thonny (for microPython) which have additional features such as in-built libraries to connect to and manage multiple boards.

Here's a screenshot of the Visual Studio Code IDE:

Visual Studio Code IDE