I'll be in Austin, TX for SciPy next week, and I'll be giving an updated talk
about tools for reproducible
research.
What follows is the abstract of a talk that I really wanted to give and
submitted to the general track which did not get in. I care deeply about
this topic, and I'm hoping to have conversations with others about it. The talk
was deferred to a poster, so if you don't bump into me at other times, seek me
out during the poster
session (mine's poster #15,
10:35 AM - 11:35 AM on June 27th).
This post is intended as a pre-conference warm up to that.
Navigating the Scientific Python Communities - the missing guide.
The awful truth: our newcomers have a deluge of options to wade through as they
begin their journey. What tools are available, how do I install them, how do
I make them work together -- all hard questions facing a budding
scipythonista.
On developer-friendly platforms, the popular approach is to just install numpy,
scipy, matplotlib, and ipython using package management facilities provided by
the operating system. On Mac OS X and Windows, the least painful, bootstrapping
approach is to use a Python distribution like Python(X,Y), EPD, Anaconda, or
Sage.
Both of these paths obscure a reality which must be stated explicitly: the
development of packages is fundamentally decentralized. The scientific python
ecosystem consists of a loose but thriving confederation of projects and
communities.
The chaos of installation options and lack of centralization around a
canonical solution, which on the surface appears to be a point of weakness
that is detrimental to community growth, is a symptom of one of its greatest
strengths. Namely, what we have is a direct democracy for user-developers.
They vote with their feet: filing bug reports, testing pre-release versions,
participating in mailing lists, writing and reviewing pull requests, and
advertising the tools they use in talks, papers, and conversations at
conferences.
I will discuss why this is the case, why this is a good thing, and
how we can embrace it. The talk will present the ethos and expectations of an
effective newcomer, as well as resources and strategies for incremental
progress toward becoming a master scipythonista.