On Tuesday, 31 March 2015 at 08:09:00 UTC, Andrew Brown wrote:
Visualisation is certainly not behind python's success in
bioinformatics, which predates ipython. If you look through
journals, very few of the figures are done in python (and none
at all in julia). It succeeded because it allows you to hack
your way through massive text files and it's not perl.
One problem with using D instead of C or C++ for projects like
this, is that these projects are a few people developing
software for many users, who are working on frequently very old
clusters where they don't have admin rights. Getting an
executable file to work for them is not trivial. Programs like
samtools solve this by expecting people to compile it
themselves, knowing they can rely on gcc to be installed. But
none of these clusters have a D compiler handy.
On my university, out of the box executables for ldc don't run,
gdc executable files don't link with libc, and dmd sometimes
shouts it can't find dmd.conf. And this is a fairly up to date
and well administered cluster, I know quite a few instituions
still on centOS 5. Now, I can work to fix these problems for
myself, but I can't expect a user spend 3 hours compiling llvm,
then ldc and various libraries to use my software, rather than
just look for the C/C++ equivalent.
Yesterday I was asked if I'd rewrite my code in C++ to solve
this problem, not really an option as I don't know C++. I guess
this is a fairly niche issue, D Learn kindly pointed me in the
direction of VMs which I think will solve most of my problems.
The sambabamba authors seem to be sharing dockers (congrat on
the paper by the way!). But I think it is a factor to be
considered when using D: disseminating software is trickier
than with C/C++.
Building LDC and its depedencies isn't that difficult, but it was
still a pain to have to do that just to compile my code for the
cluster.
There needs to be some sort of bootstrap script, downloads
included, available to go from a bare bones c++ toolchain to a
working D compiler. Or even just some executables online compiled
with an ancient glibc.