Sébastien Wilmet

2013-07-03 :: Developing graphical IDEs the UNIX way

Introduction

Programming on a UNIX environment typically involves the use of CLI (Command Line Interface) tools and TUI (Terminal User Interface) programs. What is really nice about these tools is that they do only one thing, but do it well.

An advantage of a GUI (Graphical User Interface) application is that it can have features that are almost impossible to implement as a TUI. So a GUI program is sometimes more convenient to use.

An IDE is an integrated development environment. What people think about this "environment" is generally a single program. But what if the environment is not one big application, but several small programs? The small programs can interact a little together through an Inter-Process Communication system like D-Bus.

The different tools and their interactions

So, the idea is to create development tools as several small GUI applications. You need a text editor, a tool for git, something to compile and run the project, a debugger, a documentation browser, a terminal of course, and so on.

All these could interact. IDEs usually have the concept of projects. We can imagine the same with small apps, by having for instance a hub application to create and open projects, and then it opens the other apps with the current project.

Or just being able to launch another tool from the text editor, with a given context so that the other tool is directly opened with the right content.

Conclusion

Such an "IDE" would feel more lightweight than a single application. It would be interesting to explore and experiment this idea.

Revisions:
July 2013: first version, contained too many details and a troll about Eclipse.
April 2024: new version, almost entirely rewritten.