On Friday, 21 March 2014 at 21:39:54 UTC, w0rp wrote:
On Friday, 21 March 2014 at 21:30:29 UTC, Joakim wrote:
Heh, right before I read this, I stumbled across this snippet
from Miguel De Icaza's blog from a couple months back, where
he regretted using C++ to build Moonlight, their Silverlight
implementation:
"But this would not be a Saturday blog post without pointing
out that Cairo's C-based API is easier and simpler to use than
many of those C++ libraries out there. The more sophisticated
the use of the C++ language to get some performance benefit,
the more unpleasant the API is to use.
The incredibly powerful Antigrain sports an insanely fast
software renderer and also a quite hostile template-based API.
We got to compare Antigrain and Cairo back when we worked on
Moonlight. Cairo was the clear winner.
We built Moonlight in C++ for all the wrong reasons ("better
performance", "memory usage") and was a decision we came to
regret. Not only were the reasons wrong, it is not clear we
got any performance benefit and it is clear that we did worse
with memory usage.
But that is a story for another time."
http://tirania.org/blog/archive/2014/Jan-04.html
That is a really strange argument. Let's break it down into
stages.
1. Use C++ for better performance.
2. Find C++ library with better performance, but it's ugly.
3. Use C library in C++ instead because it's less ugly.
4. Conclude that C++ can't deliver better performance.
That is really weak. This is why the industry needs salvation
from C++ with D. It would mostly be then, "Oh it has better
performance with these template things... and it's not a pain
in the ass to use."
The removal of pain points is indeed, in my mind, the main issue.
:-)