D for project in computational chemistry
Laeeth Isharc via Digitalmars-d
digitalmars-d at puremagic.com
Wed Aug 5 16:37:36 PDT 2015
On Wednesday, 5 August 2015 at 18:49:21 UTC, bachmeier wrote:
> On Wednesday, 5 August 2015 at 17:47:49 UTC, Yura wrote:
>> The dominant languages in science now for production codes are
>> Fortran or C/C++, may be D could become another option?
>> With kind regards,
> Yes. The question is whether we can put together a group of
> developers to build the infrastructure, which is a lot more
> than just code. That means, in particular, good documentation
> and using it for our own projects.
> Everyone these days talks about how Python is a powerhouse
> scientific programming language. A decade ago it was crap. I
> know, because I watched it for years wishing I could use it.
> There were some poorly documented, domain-specific,
> hacked-together libraries, but Python was not for the most part
> a suitable choice.
> There is no reason we can't do the same for D. The main
> question is whether we are sufficiently committed to that goal.
> Others may consider Python, Julia, and Matlab to be good enough
> alternatives (I don't, but not everyone necessarily agrees with
Yes - I fully agree with everything you say here.
John Colvin has done great work in putting together a scientific
computing portal for D, and writing a wrapper so you can write D
within an ipython notebook (and call it transparently from python
code). Great for rapid iteration and exploration of data, and it
means you don't need to write the whole stack from scratch in D.
One place I started in a small way was implementing a limited
subset of dataframe functionality. There's not much to it, but
it's something very handy to be able to slurp in data from csv or
hdf5 that might not fit in a more rigid format and do spreadsheet
type stuff with it.
So instead of an array of variants, you define a type for the
column (every entry in the column is the same type, but different
columns may be of different types). In addition each column has
a name and you can add and remove columns easily. I've
implemented a just about usable version of that, but it's not
pretty, rigorous, or especially efficient. The next stage is
creating indexing by columns a la pandas.
Dataframes aren't intellectually very exciting, but they are very
useful for iterative data exploration and quick prototyping since
all of that starts with getting the data in from somewhere in a
The problem I have is that I have an ambitious project and too
few resources for now. So I can't at this stage put much time
into making anything someone else could use. But maybe we could
work together on parts of this, if that would be interesting.
I am speaking to Vlad Lefenfeld about this a bit too.
On the pure numerical stuff, speak to John Colvin.
If you want you can email me laeeth laeeth dot com.
More information about the Digitalmars-d