AutomaticComponentToolkit
AutomaticComponentToolkit copied to clipboard
Clarify the meaning of "dynamic" for bindings
Just my experiences as a first time user of this library while I'm digging through the library itself, the tutorial, etc:
Currently, it is not obvious what the difference between C++ and C++ Dynamic bindings is (Same for C and C dynamic).
My first idea was that it could be related to the internal usage of dynamic_cast or something like that, but it seems like this is not the case.
Am I correct assuming that dynamic refers to the way the library is loaded (dynamically or statically linked)? The C++ dynamic bindings will have all the dlsym bits in it, whereas the normal C++ binding assumes static linking?
If that is correct, I propose the following changes:
- Add a new
Linking typecolumn in theFeature Matrix: Bindingstable that (eitherdynamicorstatic) - Clarify that most of the bindings are implicitly
dynamic- I think it's a bit confusing that C and C++ have variants without the suffix (static linking) and with thedynamicsuffix (dynamic linking), whereas the other language like Python or Pascal are just implicitly dynamic without the suffix.
If you're not using the library for the first time this may seem obvious, however to me as a first time library user it was not.
Hi @robinchrist, Yes, you are correct.
"Dynamic" refers to libraries that are loaded at runtime (dlopen/dlsym). On the other hand, those without the Dynamic suffix are dynamically linked at load time.
The C/C++ Bindings with Dynamic suffix represent run-time dynamic loading whereas the one without Dynamic suffix represents load-time dynamic loading. Other Bindings are dynamically loaded at runtime.
Adding a new column with load-time dynamic linking and run-time dynamic linking is not preferred.