The Complete Magazine on Open Source

Top 8 IDEs for Raspberry Pi

The Raspberry Pi, a tiny single-board computer, has revolutionised the way in which computer science is being taught in schools. It has also turned out to be a boon for software developers. Currently, it has gained popularity much beyond its target market and is being used in robotics projects.

Raspberry Pi, a small development board minicomputer that runs the Linux operating system, was developed in the United Kingdom by the Raspberry Pi Foundation to promote the teaching of basic computer science in schools in the UK and in developing countries. Raspberry Pi has USB sockets, which support various peripheral plug-and-play devices like the keyboard, the mouse, the printer, etc. It contains ports like HDMI (High Definition Multimedia Interface) to provide users with video output. Its credit-card-like size makes it extremely portable and affordable. It requires just a 5V micro-USB power supply, similar to the one used to charge a mobile phone.

Over the years, the Raspberry Pi Foundation has released a few different versions of the Pi board. The first version was Raspberry Pi 1 Model B, which was followed by a simple and cheap Model A. In 2014, the Foundation released a significant and improved version of the board —Raspberry Pi 1 Model B+. In 2015, the Foundation revolutionised the design of the board by releasing a small form factor edition costing US$ 5 (about ` 323) called Raspberry Pi Zero.

In February 2016, Raspberry Pi 3 Model B was launched, which is currently the main product available. In 2017, the Foundation released the updated model of Raspberry Pi Zero named Raspberry Pi Zero W (W = wireless).

In the near future, a model that has improved technical specifications will arrive, offering a robust platform for embedded systems enthusiasts, researchers, hobbyists and engineers to use it in multi-functional ways to develop real-time applications.

Figure 1: Raspberry Pi

Raspberry Pi as an efficient programming device

After getting the Pi powered up and the LXDE WM up and running, the user gets a full-fledged Linux box running a Debian based operating system, i.e., Raspbian. The Raspbian operating system comes with tons of free and open source utilities for users, covering programming, gaming, applications and even education.

The official programming language of Raspberry Pi is Python, which comes preloaded with the Raspbian operating system. The combination of Raspberry Pi and IDLE3, a Python integrated development environment, enables programmers to develop all sorts of Python based programs.

In addition to Python, various other languages are supported by Raspberry Pi. A number of IDEs (integrated development environments) that are free and open source are also available. These allow programmers, developers and application engineers to develop programs and applications on Pi.

Figure 2: The BlueJ GUI interface

Figure 3: The Geany IDE GUI interface

Best IDEs for Raspberry Pi

As a programmer and developer, the first thing you require is an IDE, which is regarded as a comprehensive software suite that integrates the basic tools that developers and programmers require to write, compile and test their software. An IDE contains a code editor, a compiler or interpreter and a debugger, which the developer can access via a graphical user interface (GUI). One of the main aims of an IDE is to reduce the configuration necessary to piece together multiple development utilities, and provide the same set of capabilities as a cohesive unit.

An IDE’s user interface is similar to that of a word processor, for which tools in the toolbar support colour-coding, formatting of source code, error diagnostics, reporting and intelligent code completion. IDEs are designed to integrate with third-party version control libraries like GitHub or Apache Subversion. Some IDEs are dedicated to a particular programming language, allowing a feature set that matches the programming language, while some support multiple languages.

Raspberry Pi has a wide range of IDEs that provide programmers with good interfaces to develop source code, applications and system programs.

Let’s explore the top IDEs for Raspberry Pi.

Figure 4: The Adafruit WebIDE GUI interface

BlueJ

BlueJ is an IDE that is dedicated to the Java Programming Language and was mainly developed for educational purposes. It also supports short software development projects. Michael Kolling and John Rosenburg at Monash University, Australia, started BlueJ development in 2000 as a powerful successor to the Blue system, and BlueJ became free and open source in March 2009.

BlueJ provides an efficient way for learning object-oriented programming concepts and the GUI provides a class structure for applications like UML diagram. Every OOPS based concept, like class, objects and function calling, can be represented via interaction based design.

Features

  • Simple and interactive interface: The user interface is simple and easy to learn as compared to other professional interfaces like NetBeans or Eclipse. Developers can focus mainly on programming rather than the environment.
  • Portable: BlueJ supports multiple platforms like Windows, Linux and Mac OS X, and can even run without any installation.
  • New innovations: BlueJ IDE is filled with innovations in terms of the object bench, code pad and scope colouring, which makes development fun even for newbies.
  • Strong technical support: BlueJ has a hard-core functioning team that responds to queries and offers solutions to all sorts of developer problems within 24 hours.

Latest version: 4.0.1

Geany IDE

Geany IDE is regarded as a very lightweight GUI based text editor that uses Scintilla and GTK+ with IDE environment support. The unique thing about Geany is that it is designed to be independent of a special desktop environment and requires only a few dependencies on other packages. It only requires GTK2 runtime libraries for execution. Geany IDE supports tons of programming languages like C, C++, C#, Java, HTML, PHP, Python, Perl, Ruby, Erlang and even LaTeX.

Features

  • Auto-completion of code and simple code navigation.
  • Efficient syntax highlighting and code folding.
  • Supports embedded terminal emulator, and is highly extensible and feature-rich since lots of plugins are available for free download.
  • Simple project management and supports multiple file types, which include C, Java, PHP, HTML, Python, Perl, and many more.
  • Highly customised interface for adding or removing options, bars and windows.

Latest version: 1.30.1

Figure 5: The AlgoIDE GUI interface

Figure 6: The Ninja IDE GUI interface

Adafruit WebIDE

Adafruit WebIDE provides a Web based interface for Raspberry Pi users to perform programming functions, and allows developers to compile the source code of various languages like Python, Ruby, JavaScript and many others.

Adafruit IDE allows developers to put the code in a GIT repository, which can be accessed anywhere via GitHub.

Features

  • Can be accessed via Web browser on ports 8080 or 80.
  • Supports the easy compilation and running of source code.
  • Bundled with a debugger and visualiser for proper tracking, the navigation of code and to test source code.

AlgoIDE

AlgoIDE is a combination of a scripting language and an IDE environment, designed to function together to take programming to the next paradigm. It incorporates a powerful debugger, real-time scope explorer and executes the code, step by step. It is basically designed for all age groups to design programs and do extensive research on algorithms.
It supports various types of languages like C, C++, Python, Java, Smalltalk, Objective C, ActionScript, and many more.

Features

  • Automatic indentation and completion of source code.
  • Effective syntax highlighting and error management.
  • Contains a debugger, scope explorer and dynamic help system.
  • Supports GUI and traditional Logo programming language Turtle for the development of source code.

Latest version: 2016-12-08 (when it was last updated)

Ninja IDE

Ninja IDE (Not Just Another IDE), which was designed by Diego Sarmentero, Horacio Duranm Gabriel Acosta, Pedro Mourelle and Jose Rostango, is written purely in Python and supports multiple platforms like Linux, Mac OS X and Windows, for execution. It is regarded as a cross-platform IDE software, especially designed to build Python based applications.

Ninja IDE is very lightweight and performs various functions like file handling, code locating, going to lines, tabs, automatic indentation of code and editor zoom. Apart from Python, several other languages are supported by this IDE.

Features

  • An efficient code editor: Ninja-IDE is regarded as the most efficient code editor as it performs various functions like code completion and code indentation, and functions as an assistant.
  • Errors and PEP8 finder: It highlights static and PEP8 errors in the file.
  • Code locator: With this feature, quick and direct access to a file can be made. The user can just make use of the ‘CTRL+K’ shortcut to type anything, and the IDE will locate the specific text.
  • Its unique project management features and tons of plugins make Ninja-IDE highly extensible.

Latest version: 2.3

Figure 7: The Lazarus IDE GUI interface

Lazarus IDE

Lazarus IDE was developed by Cliff Baeseman, Shane Miller and Michael A. Hess in February 1999. It is regarded as a cross-platform GUI based IDE for rapid application development, and it uses the Free Pascal Compiler. It inherits three primary features—compilation speed, execution speed and cross-compilation. Applications can be cross-compiled from Windows to other operating systems like Linux, Mac OS X, etc.

This IDE consists of the Lazarus component library, which provides varied facilities to developers in the form of a single and unified interface with different platform-specific implementations. It supports the principle of ‘Write once and compile anywhere’.

Features

  • Powerful and fast enough to handle any sort of source code, and supports performance testing.
  • Easy to use GUI, which supports drag-and-drop components. Additional components can be added to the IDE through Lazarus package files.
  • Makes use of Free Pascal, which is highly enhanced with new features and is even used in Android app development.
  • Highly extensible, open source and supports various frameworks to compile additional languages.

Latest version: 1.6.4

Codeblock IDE

Codeblock IDE was written in C++ using wxWidgets as a GUI toolkit and was released in 2005. It is a free, open source and cross-platform IDE supporting multiple compilers like GCC, Clang and Visual C++.

Codeblock IDE is highly intelligent and performs various functions like Syntax highlighting, code folding, code completion and indentation, and has a number of external plugins for varied customisations. It can run on Windows, Mac OS X and Linux operating systems.

Features

  • Supports multiple compilers like GCC, Visual C++, Borland C++, Watcom, Intel C++ and many more. Basically designed for C++, but today supports many languages.
  • Intelligent debugger, which allows users to debug programs via access to the local function symbol and argument display, user defined watches, call stack, custom memory dump, thread switching and GNU debugger interface.
  • Supports varied features for migrating code from Dev-C++, Visual C++ and others.
  • Makes use of custom-built systems and stores information in XML extension files.

Latest version: 16.01

Figure 8: Codeblock IDE interface

Figure 9: Greenfoot IDE interface

Greenfoot IDE

Greenfoot IDE was designed by Michael Kolling at the University of Kent. It is a cross-platform Java based IDE basically designed for educational purposes for high schools and undergraduate students. The Greenfoot IDE features project management, automatic code completion and syntax highlighting, and has an easy GUI interface.

Greenfoot IDE programming consists of sub-classing of two main classes — World and Actor. World represents the class where the main execution occurs. Actors are objects that exist and act in World.

Features

  • Simple and easy-to-use GUI, which is more interactive than BlueJ and other IDEs.
  • Easy to use even for newbies and beginners.
  • Highly powerful in executing Java code.
  • Supports GNOME/KDE/X11 graphical environments.
  • Other features include project management, auto-completion, syntax highlighting and auto-correction of errors.

Latest version: 3.1.0