language_fan wrote:
Mon, 21 Sep 2009 13:17:38 -0400, Jeremie Pelletier thusly wrote:
Justin Johansson wrote:
bearophile Wrote:
- Currently D isn't very useful for the web/mobile, where lot of
programmers are.
I'd be interested to know how good D is for implementing
scripting/dynamic languages .. maybe that could change the odds? I
know about DMDScript (ECMAScript in D) supposedly being fast, though
whatever I've read is no doubt out of date as Javascript engine
(performance) wars between Google (webkit) and Mozilla (spidermonkey?)
engines have been raging as of late.
It is definitely easier to implement scripting languages in D than it is
in other languages such as C/C++. However where I believe V8 (google's
JS engine) is gaining in performance is at the direct translation of
parse nodes to assembly without using intermediate representation in
between and without the need of an interpreter, they even go as far as
to modify code paths dynamically to gain more performance. I hear
mozilla rewrote their JS engine lately too but didn't check what
improvements they made.
When implementing a scripting language VM, it does not really matter if
you use C, C++, D, Ada, Eiffel, Pascal, Obj-C, Haskell or OCaml (or any
of the top15 languages in the great language shootout). They all are
pretty fast. The fact is, if you have studied CS and know mechanisms like
dynamic translation, generational garbage collection, or region
inference, you can build a fast scripting language VM in any decent
language. D is in no way special here. In fact it is not even hard to
make the fastest Javascript VM in the world with D - the current ones are
not very good.
Studying CS has nothing to do with how competent you are, period. The
number of languages and algorithms a guy can name has no relevance
either. It can help to get you started, but anyone with enough interest
in programming can learn much more on their own and in much less time.
Sorry for the rant, I'm just tired of seeing CS thrown around as an
argument.
When it comes to writing scripting engines, with IR running in a VM or
generated machine code, the language used is really just a matter of
preference, it will affect productivity way more than performance, if
the code is properly done. That's what I meant by easier to do in D,
you'll have way less lines of code than in C/C++ or most other systems
languages.
Now its only obvious that things like garbage collection and whatnot are
required to be familiar to the programmer implementing it, no need to go
to CS to know that :)