[Proj] Geo Transfoms and calculations

strebe strebe at aol.com
Wed Jan 14 15:52:53 EST 2009


I agree GCC's diversity of platforms is unique, a considerable achievement, and important to some constituencies.

However, I have two things to say about that and then will bow out of the discussion, in recognition both that it is off-topic and esoteric.

A) A compiler's support of diverse platforms is not important to most software developers. Porting is no fun, but as long as the compilers comply with standards, at least it is feasible to use different compilers on different platforms, and in fact is normal practice in large shops.

B) While I use nothing but C++ both vocationally and avocationally, it is a programming language so vast, so complex, so riddled with semantic subtleties and pitfalls, that the programmer is obliged to pay much of his coding attention to linguistic semantics instead of algorithms.* No single person exists who understands it in its entirety — not even Stroustrup. The only reason I use it, and the only reason I find defensible for using it, is the run-time performance if affords while maintaining algorithmic generality. To sacrifice the efficiency of code generation in pursuit of platform diversity thereby eliminates the reason for using C++... and the compiler.

This is not academic or hyperbolic. GCC-generated code for map-projection numerics and image manipulation runs at half the speed of Microsoft's VS C++ on the same hardware. Meanwhile, just-in-time compilers and other modern techniques applied to elegant interpretive languages sometimes bring their execution speeds to parity with GCC.

*Sadly, you cannot even reasonably decide to use a subset of C++ in order to avoid the semantic complexities, because then you lose out on the very techniques that afford the performance advantages of C++.

— daan Strebe

On Jan 13, 2009, at 7:51:28 PM, Hamish <hamish_b at yahoo.com> wrote:
it is a bit simplistic to judge only based on runtime speed.

The goal of GCC besides standards conformance you should consider is
the very tricky problem of portability across hardware architectures.
Intel & VSC only have one target, while gcc has 14+ to consider*.
Optimization will be least third down on gcc's list of priorities behind
these two. actually, probably 4th behind code readability.
compile-speed is another competing variable to consider, as is
"Freedom" and cost.

[*] debian; probably there are more

and FWIW, millions and millions of professional users and successful
deployments worldwide make these things world-class, not some benchmark
or our opinions/ideologies.

as with most things, be it a tool, license, projection, or a spouse,
the best solution for you depends on your specific needs, and it is
silly to argue which is "best" or unfit. but we try anyway :)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/proj/attachments/20090114/d67e6afa/attachment.htm 

More information about the Proj mailing list