Replies: 6 comments 1 reply
-
What is an extension? What is core functionality? What is the difference between those two - besides the directory where they are located? For example, I use (among others) GIL's capabilities to read and write JPEG images. While the code for that is in the I/O extension and thus considered an extension, to me that is a "core" functionality in the sense that it is vital for an image library to be able to read and write images. That is why I believe the distinction between core and extension is not really relevant from the perspective of the users of the library. In the end both core and extension are part of GIL, and that is what matters to library users in the first place. |
Beta Was this translation helpful? Give feedback.
-
I believe being in extension directory has two purposes. The first one is build simplicity. I/O libraries require 3rd party dependencies to be used. This is clearly the case for PNG, JPEG and co. |
Beta Was this translation helpful? Give feedback.
-
Beside the points made by @simmplecoder, I would say the main difference might be the maintenance effort given to it. Core is the main building block. Core should be stable, flawless, while I would expect little glitches in the extensions. Does that mean it's a question of software quality? Probably not. There is a notion of "optional" in extension. Just a couple of observations:
|
Beta Was this translation helpful? Give feedback.
-
AFAIR, we included, with @simmplecoder, the rasterization as part of the image processing bag during the GSoC
I agree it is a good idea to move it to extension. |
Beta Was this translation helpful? Give feedback.
-
Yes, @simmplecoder and @sdebionne explained the differences very well.
The notion of extensions in Boost.GIL is very similar, if not the same, as in Boost.Geometry. For example, it offers geometric/vector features for Geographic Information Systems (GIS) as an extension, so such domain-specific stuff does not mess the core functionality/structure. |
Beta Was this translation helpful? Give feedback.
-
Should this distinction between core and extension also be made in the examples directory, i.e. move all extension examples into the relevant subdirectory? |
Beta Was this translation helpful? Give feedback.
-
Related to the grand true merge from
develop
tomaster
discussed in #667, I wonder if that could be an opportunity to discuss "core vs extension". For instance I wonder if "rasterization" should not be an extension?Beta Was this translation helpful? Give feedback.
All reactions