Today we will review and compare 3 Integrated Development Environment (IDE) tools available on Haiku.
They should facilitate the creation of applications for Haiku and you might already know some of them : Qt Creator, Paladin and Genio.
Which one is best suited for your needs ?
Which features are available on each IDE ?
Which one is reactive to use ?
You will know everything at the end of this article. Before entering into the details of the features, here is a brief description of each IDE :
Below is a list of features an IDE can propose nowadays to help developers write their applications.
For each IDE (Qt Creator / Paladin / Genio), it indicates if the feature is available or not :
Feature | Qt Creator | Paladin | Genio |
Syntax coloring | Yes | Yes (1) | Yes |
Auto-completion | Yes | No | Yes |
Integrated debugger | Yes | No | No |
Release/Debug build | Yes | Yes (2) | Yes |
Code navigation | Yes | No | Yes (3) |
Refactoring | Yes | No | Yes (4) |
Integration of version control systems | Yes | Yes | Yes |
Plugins support | Yes | No | No |
Framework integration | Yes | No | No |
Multi-platform | Yes | No | No |
Integrated terminal | Yes | No | Yes |
Integrated help/documentation | Yes | No | Yes (5) |
Files preview | Yes | No | No |
Code fix suggestions | Yes | No | Yes (6) |
Custom templates | No (7) | No (7) | Yes |
Last version / date | 14.0.1 / 2024 | 2.9 / 2023 (8) | 3.1 / 2024 |
Memory footprint | 160 Mb | 15 Mb | 20 Mb |
All three IDEs have syntax coloring as per below :
From left to right : Qt Creator, Genio, and Paladin.
(1) Paladin rely on an external code editor, so the syntax coloring will depend on the editor used (default is Pe editor)
The code auto-completion is handled by Qt Creator :
But Genio is handling this feature quite well also :
For Paladin, if you use the default Pe code editor, you will not have code auto-completion.
However if you have attached your ".cpp" source files to an editor like KDevelop, then it will work.
Both Genio and Paladin are just launching the default Haiku debugger, and do not provide any GUI which can interface with a debugger like GDB.
Qt Creator, on the opposite, can nicely communicate with this debugger like below :
For huge projects, GDB debugger is the recommended solution as the default Haiku Debugger has some known limitations and bugs.
All three IDEs propose to build your project in Release or in Debug mode.
(2) Please note, I found Paladin IDE a bit more tricky to use to deal with dependencies or to external build tool like CMake.
Qt Creator has the ability to go through the sources of the classes definition in header files. If you do Alt+Click on the BHandler class :
Then it will open automatically the corresponding header file at the BHandler class definition line :
For Genio, it's more straightforward regarding the header files.
You just need to click on it, because it's considered as a link :
For class definition like BGLView :
You need to use the pop-up menu "Go to definition" :
(3) Genio can open definition of class in the included header files, however once in a header, it seems it cannot go deeper compared to Qt Creator.
In Qt Creator, you can rename a symbol - like a class name - and it will impact all the files referencing that symbol with the new class name :
Qt Creator propose also other refactoring options like below :
Genio can also rename symbol via the pop-up menu "Rename symbol" :
(4) Genio has only the option to rename symbol in the refactoring feature, compared to Qt Creator which has other refactoring possibilites.
All three IDEs propose an integration with version control systems like GIT.
For Qt Creator, it's done via the "Tool>Git" menu
For Genio, the "Git" menu provide access to version control features :
And for Paladin, the access is via the "Project>Source control" menu :
Please note, I didn't test in details this feature in Qt Creator, Genio or Paladin.
So you will need to explore which one is best suited for your need.
Only Qt Creator is able to handle plugins whatever the area : build systems, c++, code analyzer, other languages, scripting... :
Qt Creator is primary used to develop applications with the Qt framework, that's why the integration of this framework is very well handled in this tool (usage of qmake or ".pro" files to setup a project for instance).
The two other IDEs do not integrate any specific framework.
The aim of Qt Creator is to propose a multi-platform framework.
It's the only one in the list to be able to do that, ie write applications for Windows, Linux, Macos or even Haiku. In case you use Qt Creator under Haiku, you will have two possibilities :
Qt Creator gives the possibility to display the application's output inside the IDE :
Genio propose also the Terminal integration, you just need to tick the "Run>Run in terminal" option in the project preferences :
So that when you run the application, its output will be visible inside Genio console :
Qt Creator propose a nice integrated help and documentation about the Qt Framework.
In case you need it, you can install it via pkgman :
pkgman install qt6_doc
If you ask for the Help on the QMainWindow class, it will display inside the IDE all the details about that class:
There are also nice schema like below in this documentation :
(5) Genio has a limited documentation focused on the IDE GUI details, but not on the Haiku API :
Qt Creator is able to preview Markdown files.
It can be very interesting in case you need to create a README.md file or any kind of markdown file for your project:
QtCreator is able to provide some suggestions on code fix like below :
For Genio this feature is not available out of the box
(6) However Genio can provide code fix suggestions if you have the "llvm18_clang" and "gcc_syslibs_devel" packages installed.
To complete the setup, type :
pip3 install compiledb
Then in the directory of your project :
compiledb make -Bnwk
And then you should see the code fix suggestions in the "Problems" tab :
In case of Genio, some default templates of code are available when you create a new file:
In case of custom template, you just need to create a new folder containing all the files required your code template in the "/boot/home/config/settings/Genio/templates" folder :
It will then make this template automatically available in Genio the next time your launch the IDE !
(7) Qt Creator and Paladin are not handling custom templates, however you can use under Haiku, some existing templates like below :
Qt Creator code templates
Paladin code templates
In case new templates are needed for Qt Creator or Paladin, they must be provided in the package directly, because the below template folders are system only :
Both Qt Creator and Genio proposes regular updates of their IDE.
(8) Regarding Paladin, no major update has been noticed since 2020. Year 2023 is only a minor update.
If you are limited in memory on your Haiku machine, maybe this criteria is important.
Genio or Paladin do not require much memory when the IDE is opened : between 15-20 Mb.
On the opposite, Qt Creator will require 160 Mb for the same project.
You should now have all the criteria to select the Haiku IDE which match the best your need.
In my case, I would use the Genio IDE for native projects, while I would use Qt Creator in case I need to work with the Qt framework for cross-platform applications.
Another usage of Qt Creator, when dealing with native Haiku projects or ported applications, is its ability to nicely interface with the GDB debugger.
What about your current choice ?
If you would like additional details for each IDE on Haiku, you can check the articles Develop with Genio, Develop with Paladin, or Develop with Qt Creator.