[GRASS-dev] GRASS-TNG

Frank Warmerdam warmerdam at pobox.com
Wed Feb 21 17:06:05 EST 2007


Sören Gebbert wrote:
>> For example, on your site, you suggest that C++ be used because it is
>> the standard for "modern" development. The reality is, if you want
>> speed and memory efficiency, well coded plain C wins every time. If you
>> want to do GUI development, then C or C++ is probably not necessary for
>> most tasks, so some Python based solution is more appropriate. For core
>> libraries plain C is likely the best choice. Choosing a tool because it
>> is "modern" rather than because it is the best tool for the job, is not
>> logical.
> 
> I disagree. Because C is a subset of C++
> you are able to combine object orientated approaches with speed.
> Many fast libraries and applications are written in C++. And they chosed 
> C++ not because its a modern language, they chosed C++ because it was 
> the best choice for the project. And this includes not only GUI projects 
> like:
> * FLTK, wxWidgets or Qt
> It includes also libraries and programms which need to run as fast 
> possible:
> * most game graphic engines: eg. ogre!
> * visualization libraries: VTK, Open Inventor, OpenSceneGraph ...
> * gdal, ogr, proj.4
> ...
> 
> And in my humble opinion: an object orientated approach is the best
> choice for a GIS. Because every point on earth has the same property:
> Coordiantes in space and time and all kind of attribute data. Those 
> points can be represented as raster or voxel cells, vector point, lines 
> ... and so on. And with an objectoriented approach based on this 
> principle you can create a very sophisticated GIS core.

Sören,

I'd just like to point out that PROJ.4 is C, not C++.  I'd also point out
that GDAL and OGR took quite a conservative approach to the use of C++
features, and even at that have suffered substantially due to the fragility
of C++ ABI's, and the difficulty of calling C++ functions from other languages.

Libraries such as FDO and GEOS that I would claim make agressive use of
modern C++ features have caused me substantial amounts of personal pain.

My point being, that a C callable interface can be more stable and flexible
for a library than a C++ interface.  I'd also stress that object oriented
abstraction can be achieved in C or with conservative use of C++.

As for GRASS TNG I think it is presumptuous to use this name for a project
that originated with a single individual with limited support from the
GRASS community.

Best regards,

-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGeo, http://osgeo.org




More information about the grass-dev mailing list