Integrated development environments
Integrated Development Environments (IDEs) are not required components of the software development process, and this statement is especially applicable to programming on the Unix / Linux platform. In Unix, for developing programs, it is traditionally considered sufficient to have only a text editor, although it has additional capabilities, such as text color marking, contextual search and replace functions. There are a large number of editors on Linux that meet these requirements, starting with traditional vim and Emacs, or simple file editing in mc. And as experience shows, these funds are quite enough for the development of small and medium-sized projects.
But using an IDE often allows you to more effectively organize the software development process and quickly execute the cycle: editing code – building a project – debugging an application. Also, the role of the IDE increases in the development of GUI applications, since most IDEs offer visual builders (wizards) of the graphical user interface in their composition.
Integrated development environments
There are many different IDEs available for Linux, and there are already so many of them that a detailed description becomes meaningless, since the choice and use of a particular development environment is largely determined by subjective preferences or habits. Below are listed only the most widely used IDEs with examples of graphical interface, so that at least preliminary conclusions can be drawn.
The Kdevelop IDE is a development environment for the KDE project that has been actively developed since 1998. In addition to projects in the C language, it can create projects in almost all languages that are used in Linux, C ++, Perl, Python, PHP, Java, Fuby, Ada, Bash, Pascal, Fortran. In addition, the environment allows you to integrate (KParts technology) into various text editors, but the main editor is Kate.
The Kdevelop environment is not multi-platform, unlike many other IDEs, and can only be used on the Linux platform (but regardless of the desktop environment used: KDE, GNOME, MATE, and others). It can also generate initial application skeletons. A distinctive feature of Kdevelop (and a big advantage for individual scripts) is that among such templates there is a Linux kernel module (driver) project, as shown in Figure 1. Figure 2 shows a typical view of a project opened in KDE.
Projects created in Kdevelop are quite cumbersome, as you can see from the Kdevelop catalog in the examples archive (in the “Downloads” section). But this, in general, is common to all IDEs. Here”s how much space a simple project takes after cleaning up generated executables:
Development environments based on the Java platform
The Eclipse IDE (Eclipse Integrated Development Environment) is one of the most popular development environments that emerged in the early 2000s as a proprietary IBM project and then turned into an open source project. A distinctive feature of Eclipse is the ability to improve through dynamic plug-ins (which can be created by ordinary users), as there are plug-ins to support dozens of programming languages, including: Java, C / C ++, PHP, Python and others, and the number of available plug-ins is constantly growing.
This development environment is presented on almost all operating systems, due to the fact that it itself is fully implemented on the Java platform. But the Eclipse IDE is a multi-platform environment not only in terms of supporting many operating systems, but also many non-x86 hardware platforms for which software development can be carried out: ARM, MIPS, PPS and even microcontrollers, such as AVR. In addition to development tools, plugins are available for the Eclipse IDE to programmatically emulate other hardware platforms (such as Android ARM) with debugging support. On the basis of the Eclipse IDE, third-party developers have already created many other IDEs (clones) intended for highly specialized areas, which can create difficulties in choosing a particular IDE modification.
The Eclipse IDE is available in the repositories of almost any Linux distribution from where you can install it. But the project is constantly evolving, so it makes sense to install the most recent IDE implementation directly from the project site.
Figure 3 shows a basic ARM7 development project open in the Eclipse IDE.