Higher Level Language Snob March 20, 2007
Posted by gordonwatts in computers.trackback
I’m on shift again. Which means I am catching up on old emails. I stumbled on a very cool looking bit of tech (my first question was: can I get the D0 online event display to run on that!?). One person has already written a framework that allows plug-ins to drive the keyboard images. The plug-ins are written in .NET — that is, an interpreted language. He got a comment back that sounded familiar to me complaining that C++ was much better — and wrote back a great response. He makes the point that a programming language can’t be judged on speed alone, but also on how quickly you can write a bug-free program (if it was speed alone we’d never have gotten python or java).
In constructing this argument he quotes from a fellow named William Caputo (his whole post is worth reading on this topic):
In the real world, its not “write once, run forever”, its “write a bit, run a bit, change a bit, run a bit”, and so on.
And that, my friends, is why HEP will be stuck with C++ for years and years to come.
Just a technical nit… – .NET languages like C# aren’t “interpreted.” They are compiled, JITted (Just in time) as the DLL loads. After the just-in-time compilation they run at native speed. The commenter was complaining more about the additional layers of indirection, I think, than the speed. C# has been proven to regularly be as fast as C++ – any speed losses are often algorithmic or due to layering.
Yes, very good point. No reason these guys can’t be compiled before runtime, even.