A quick Google search informs, that:
* Microsoft is very quiet on WPF development. I guess they have to be, in order to support the new HTML5 strategy.* Discussions on blogs about WPF+Silverlight contain a lot of "It will still run on Windows 8" - but not "This is how apps should be built today" or "WPF is still Microsoft's strategy for making Windows 8 apps"
I am not surprised. Microsoft keeps renewing itself, by abandoning old development tools. It has been this way ever since... well... forever. Who knows, maybe they will invent a new paradigm for NUMA cpus, that abandons compatibility with programming languages based on Garbage Collection. Or they will adopt Python and a new version of C++ as their new primary development languages. If you're in doubt whether these statements are jokes from my side or not, don't worry. I'm in doubt, too, and Microsoft does not really explain the choices this time. Explanations don't seem necessary any more, other things are more important, things move on, and "developers, developers, developers" is history.
Interestingly, Delphi 1 source code made in 1996 still compiles with Delphi XE today, with the same GUI forms, and it still outperforms .net and Java on speed, while having a similar complexity level and developer productivity. Now, this is impressive technology.
Further proving that my decision 10 years ago to stick with native development using Delphi was the correct one.
Does Microsoft's ever-shifting development landscape remind anyone else of Joel Spolsky's classic Fire And Motion article?
That's why Delphi is the best solution :)
or directy try
and compare with a Delphi version of the code for yourself.
Alas no, Lars, look again, there are no GPUs involved in the links I provided. This is pure CPU-side computation.
(the source code is provided)
And this is no a benchmark oddity, I've since observed it on a variety of workloads.
1) The actual Delphi compiler is really obsolescent, especially when it comes to floating point computation (AFAIK it doesn't use SSE and the like)
2) Any standard graphical output will involve GDI calls. Since Vista GDI does no longer take advantage of hardware acceleration (in 7 only very partially).
Benchmarks are interesting, especially when they are not designed to highlight a certain positive aspect of one of the contenders. When I look at the kinds of stuff that we do, health care systems with a lot of data and advanced high-performance algorithms, there is no doubt that we beat almost all alternatives with regard to speed. But we achieve this using a combination of architecture, algorithms and the Delphi compiler, and getting memory management out of algorithms is critical. Fortunately, Delphi makes this very easy and natural.
If all you're dealing with are integers, like in your benchmark you refer, the old Delphi compiler can still be competitive, but that's a restrictive area.
Current JS engines have advanced beyond untyped containers, FireFox has a tracing compiler, V8 uses hidden classes, that's what allow both of them to beat Delphi in numerical benchmarks, as they'll compile to straight SSE2 floating point instructions.
Floating point calculations are evil - they introduce rounding mechanisms, that are usually handled as "noise", which basically means that code become non-deterministic. This is not a big problem in Mandelbrot, but it is when it comes to applications that involve money, statistics and technical calculations. Also, in order to make algorithms work well, they are usually based on integers for indexing and flow control.
Post a Comment