[Proj] Use of C++
even.rouault at spatialys.com
Sun May 27 14:00:40 EST 2018
> I am sorry but I don't think we can conclude that. The proponents naturally
> are in favor and, given that they will do the work, that is a strong
> argument. However, there is often forgotten price to pay when a code moves
> from C to C++ that is the reduction of potential contributors.
We are speaking here about new code for new functionality. Existing code for
now would remain in C.
Your argument could be reversed: I'm a contributor to other C-written OSGeo
projects where I would certainly contribute more to one project in particular,
if dealing with its aging C code base wouldn't discourage me all the time
(complicated memory management, painful string usage, etc...)
> only from myself, but knowing I'm not alone, C++ is an awfully complicated
Agreed that mastering the whole C++ standard(s) can be awfully complicated.
Subset of it can be much more manageable.
> that it was really
> important but there were times I tried to contribute to GDAL but hit the
> C++ wall.
Huh really? GDAL use of C++ is just C with classes, nothing too fancy
> I also find the embedded systems argument a valid one but have poor
> knowledge on the subject.
I'd bet people working in embedded systems heavily constrained like
microcontrollers don't even use existing proj unmodified. They probably cut it
down to the few projections they must use, have to replace/remove all the
access to resource files, etc. Anyway the Linux kernel is written in C, but
there are a number of low-cost platforms that cannot run recent version of it
because it is too big and there are tensions in its community to know if it
must try to accomodate for those uses
I believe that most contributors and users of proj are in the desktop/server
segment. We can't address all potential use cases.
> What I have read here and there is that C++ codes
> makes bigger and more resource demanding needs that those made with C.
That depends. This is not a general truth. It can also produce more optimized
> That said, and as I mentioned in beginning, those that will implement the
> new features have ofc the main word.
Honestly I can't imagine coding in C all those new functionalities. Basically
the standards we want to implement is object oriented. I would spend too much
time reimplementing object-like concepts with lot of verbose and error-prone C
constructs (in a previous life, I've developed a complex project using GLib
GObject C model . It worked, but at what price...)
Spatialys - Geospatial professional services
More information about the Proj