Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is Qt Creator's core a plugin?

Do you have a clear explanation why they have chosen the core of the application to be a plugin like the other components, and not just a basic shared library? I cannot see any clear advantages, besides the 'coolness' of the design.

like image 374
Marco Fiocco Avatar asked Dec 06 '22 17:12

Marco Fiocco


2 Answers

I got an answer from the developers themselves:

Qt Creator doesn't aim to be an application framework. "Core" being a plugin has mostly academical reasons, though e.g. one practical advantage is that in that way the core of Qt Creator automatically has a "version", and the check if a plugin is compatible with Qt Creator is done the exact same way as with any other plugin dependencies. Also the whole startup initialization (including the initialization of the other plugins) is done the same way which leads to same concept and there is less to learn.

like image 165
Marco Fiocco Avatar answered Dec 09 '22 14:12

Marco Fiocco


As to "why" we can only guess. In their own documentation they state:

Qt Creator is extensible in various ways. For example, Qt Creator architecture is based on a plugin loader, which means that all functionality beyond plugin loading is implemented in plugins. However, you can extend and tweak many parts of Qt Creator without the need to resort to coding in C++ and implementing such a plugin.

So from this one could gather that this choice was made with extensibility in mind. I'm not sure if the answer to "why is the core a plugin?" is anything more than "why not?". If you are creating your application to be, as they say, a plugin loader, then why not keep it as "light" on functionality as possible and make the core a plugin as well.

like image 21
Bart Avatar answered Dec 09 '22 15:12

Bart