On Tue, 2011-05-03 at 23:14 -0400, dsimcha wrote: [ . . . ] > BTW, yes, I know Java and C# can be pretty fast sometimes. The problem > is that they both have abstractions you can't get beneath in your most > performance-critical code. If you're writing code from scratch (as > opposed to something that would benefit from tons of libraries that D > doesn't have yet), I also think they're not as productive because they > don't make metaprogramming easy.
I don't know about C#/CLR (no experience of knowledge) but for Groovy/Scala/Java/Clojure on the JVM, and indeed Python on the PVM, if there is a small piece of code that is truly performance critical and you can't get the JVM/JIT to make it fast enough and native code can then you call out to C or C++ -- real performance data not speculation is required here though. Of course this is far, far easier with Python. Much of the "need flexibility"/"developer time is more important than run time because I am just using APIs that are already optimized" HPC-ish stuff is now happening in Python with C/C++/Fortran libraries, cf. NumPy, SciPy. Why is D not an up-front contender here more widely than it is? Ease of creating GUIs and rendering data mostly I would suggest. It's so much about data visualization rather than computation these days. Python has easy connection to Qt, GTK, wxWidgets, etc. QtDesigner, Glade, and wxGlade make laying out the UI easy, generating XML specification. Then the dynamic aspects of Python make it trivial to read in XML and instantiate all the widgets and connect up the events. C, C++, Go, and D are not even in the race except for systems such as games where the timings are so critical, assembly language is a real contender. I wonder if D could get more traction by adding dataflow to the evolving actor and data parallelism stuff. With Groovy/GPars (dynamic languages make metaprogramming really trivial btw) we are seeing a take up of dataflow as well as actor model and data parallelism. There are even commercial Java dataflow frameworks that are storming the analytics using JVM world. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part