Do you prefer Declares or Plugins?

When working with Xojo, it appears that there are two types of users: 1) those who prefer plugins, and 2) those who prefer declares.

When I work on projects, I prefer Declares because the code is able to be changed by me. One of the problem with declares are that they are only working with one operating system.

Plugins are nice since they have all of the information bundled together. However, the plugins can be outdated and the programmer can’t modify them.

This is just an open topic, and I am looking for some thoughts. :slight_smile:

And the IDE SUCKS handling many plugins, it is really slow loading them and you cant reload to update them.


After 11 years at Xojo where no 3rd party plugins were used, I got very good at macOS and iOS declares. My experience with Windows & Linux declares is quite limited however and I kinda wish I’d spent more time learning those.

Plugins do have the advantage of being able to take advantage of some OS things that you can’t do in Xojo code… like reacting to calls that come in on background threads and redirecting them onto the main thread.


I like plugins from the virtue of letting the plugin author maintain them, enhance them, and often expose the same interface to multiple operating systems. I originally picked up MBS because it had some functions I needed quickly and didn’t want to take the time to develop myself. But then discovered the treasure trove of things I can just drop into projects, that I would not bother to do otherwise. I also keep up licenses to several other things.

Declares have their place too, especially when you don’t have to research them but can drop in code from various samples or libraries. But declares also need more maintenance for OS changes, etc.


Declares for basic interaction with the operating system and plugins when interacting with 3rd party libraries / more complex stuff.


For custom stuff, like the MS Style RibbonWindow I’m working on now, declares is a necessity, eg. for creating the Rounded corners on a Win 11 form/window, there is no plugin I know that does that.

I use plugins for business stuff and things I dont want to create myself, or to save development time.

1 Like

If I understand the post, I prefer Plugins. Declares is so difficult to use!
For single instructions it can also be usable, but for more complex libraries (example: DirectShow) it is “deadly”


Well, for over 20 years Monkeybread Software has a business in making plugins for Xojo.

This includes wrapping of OS libraries, which you may mostly do yourself with declares. But we provide the convenience of automatic memory management, exception handling, thread safety and parameter conversion.

So we provide the convenience of a huge toolbox with a lot of things to add quickly to your application without thinking about the small details like calling conventions or data structures.


Using declares is difficult and time-consuming, I prefer plugins. MBS and Einhugur plugins are a must for serious development.


For me Declares. I’m retired and can’t afford to spend the money on plugins, as great as they may be. I’m also now only targeting macOS so that makes things easier.


I do prefer a language so feature complete (including its standard library) that 98% of the time people don’t need “Declares” nor “plugins” to do whatever they want. But if I need some very specific feature that falls in such 2% range, I do prefer to write my own modules, because if you start using a plugin and something happens to the provider, or the plugin prices rises to unfair prices at some point, or if the next OS “upgrade” kills the plugin and the provider of it give up on it, you will need to write the broken functionalities anyway.


If you are retired, you can contact us and get a discount.
You may need to provide some kind of proof.

1 Like

being able to use declares, to understand OS libraries, to be able to understand C / C ++, your reasoning can be there. Otherwise…
Then it is obvious that operations “indefinitely” cannot be predicted. Sooner or later the new operating systems (unfortunately for us) will lead us to have to do “the new version”

Not sure what you are arguing, not even if it’s pro or against my explanation.

Thanks Christian, that’s a kind offer. I’m retired but not yet of retirement age. So no proof would be available. I’m 57 but have stopped working. Our plan was to travel the world, and then the pandemic came :slight_smile:

You may still email us…

It’s not about being for or against. Simply that if I were to interface to DirectShow directly, without plugins, maybe I would already be dead. Same story with other complex libraries. If it is a single and trivial call of a function it is quite another story obviously.

1 Like

Well, so you are talking about you, about the lack of native support of the language for your needs, your necessities, your difficulties. I still don’t understand why you replied me, but ok. You should just express your preferences and grievances direct to the OP. I’m not the OP. :grinning_face_with_smiling_eyes:

what is the OP?

what language are you talking about?

what are you doing on a forum then?

I honestly don’t understand anything about your answers.

Op=original poster