D scripting in D

Mike B Johnson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 1 19:32:43 PDT 2017


On Friday, 2 June 2017 at 02:15:27 UTC, Adam D. Ruppe wrote:
> On Friday, 2 June 2017 at 02:06:27 UTC, Mike B Johnson wrote:
>> I wonder if it is possible to somehow turn D in to a scripting 
>> language that can be run inside D?
>
> Why not just use regular compiled D?


Because it requires one to recompile and relink the code for 
every change(and to possibly restart the app and redo all the 
work to get to some point to start testing the code). In a 
scripting engine one can simply call a function and execute 
commands immediately in an interactive way. This allows for much 
faster testing.


e.g., with a hypothetical app that has an interactive Dscript, 
one could do

> App.PlaySound("test123.wav");


instead of

1. change test12.wav to test123.wav
2. save file
3. recompile.
4. run
5. Get back to same test point(could be a lot or a little amount 
of work).


Regardless, that is not the point though. If that was the only 
reason, lua or some other scripting language would suffice.

The problem is that the grammars of all those languages do not 
translate directly in to D. Anglescript is a C++ like script that 
has a near 1-1 correspondence so "porting" code from it to C++ is 
easy.

But it would be nice if a D had a scripting language that used 
the same D syntax as this would make porting a piece of cake.


The point is, why should I develop, say, 100's of algorithms in 
the scripting language that can never easily be ported to native 
and be fast as possible simply because the of the amount of work 
to rewrite the code when, semantically, nothing changes?

Wouldn't it be much better to be able to confidently write the 
code in a scripting environment that allows for nearly instance 
response knowing that it can simply be recompiled to native 
without issue when the time comes for performance optimizations?

Anglescript effectively does this. Note only does it have a C++ 
like syntax, it has the ability to compile to native directly 
with an addon.

I'm looking for something like this in D because D's features are 
much better. having meta capabilities in scripting would be cool.







More information about the Digitalmars-d-learn mailing list