At the moment, thanks to John Colvin's work, you can write D in an ipython/Jupyter notebook. I find it a nicer work flow for playing around with things, since you can see results inline, and iterate rapidly. In theory maybe no better than having your editor/IDE hooked up, but the difference between theory and practice is greater in practice than in theory...

It's early stage, so there are no line numbers, and hard to see which bit of code a compile error refers to. But still quite useable.

You can hook up your own (or code.dlang.org) libraries via dub arguments passed in the notebook. So same idea as python - your libraries do all the work and you write some light scripting in the notebook in an iterative way as you see the results evolve.

And of course you can call bash, lua, redis etc from within the notebook.

One thing that might be helpful is to turn it into a proper D REPL.

At the moment if you write:
%%pyd
writefln("hello world");

It won't go well. You need the imports and a function wrapper. That doesn't matter in this case, but it would be nice to be able to write immediate code that retains state without rerunning from scratch.

so for example

%%pyd
@pdef auto getApple()
{
  bars=priceBars("NASDAQ/AAPL");
}
you can in python do:
bars=getApple()

and then if the auto conversion works, or you have written something bars will
be a python object that you can operate on - display, chart etc.

but it would be nice to be able to write pure D code in REPL mode within the notebook.

so:
%%pyd
auto bars=priceBars("NASDAQ/AAPL");

and then in next cell
  %%pyd
  bars=bars[$-100..$]l;
  bars.chartOHLC;

so you would have a REPL as we do already, but with all the features of Jupyter. I had an idea about how to do this, but I am sure it could be improved. More here:

https://github.com/DlangScience/PydMagic/issues/21

Reply via email to