This talk contains the following:
Neither social nor technical changes are distributed evenly over time.
Academic identity is already messed up, and the "marketplace" of projects only worsens it.
Seeking "sustainability" is an inescapably existential problem.
All is not lost!
Groups of animals are fun. What do you call a group of ...
You could buy Debian in Electronics Boutique! And Quake III for Linux!
The "world" was still "reeling" from the Halloween Documents.
Andover (RIP) (who published Slashdot (not-quite-RIP)) was about to be bought by VA Linux (RIP)
Sourceforge was just being launched.
Python 1.5.2 was out.
I bought Debian at Electronics Boutique! (Also Quake III for Linux.)
Wow, those Halloween Documents! Microsoft is the Big Bad this season!
I had "perfect" karma on Slashdot. (And a 7-digit ICQ ID.)
GW-BASIC.EXE
wouldn't launch on my linux machine.
Monty Python was still in reruns on Comedy Central.
OSX had brought a Unix-alike to academics everywhere.
Python 2.5 was released. NumPy was uniting the community fragmented between numeric numarray.
GPLv3 was fresh and new.
"Properly" open source was still the exception in academia.
Distributed version control was starting to arrive (mostly) in the form of git
, hg
and bzr
. ("Begun, the Bitkeeper war has.")
Move over, SourceForge! Google Code is here!
I was three years into graduate school and both convinced I knew everything and convinced I shouldn't make too big of a fuss.
Everybody in astronomy just uses IDL. Or C. Or sometimes (me), Octave.
"How can I trick them into letting me use GPL so I can force social change?"
I can think of no instances where CVS
or svn
are not sufficient.
IDL was expensive, and we only had so many licenses.
Also, I felt like I had to prove something.
(We'll return to this later.)
"I remember Python! It's good for laying out VHS boxes. I bet it can do this stuff too."
(Unearned confidence will continue to be a theme.)
"Ooh, then I won't have to learn IDL."
import numarray as na
f = open("RedshiftOutput0030.hierarchy")
for line in f.readlines():
values = line.split("=")
left = values[0]
right = values[1]
(and so on)
"Now I just need to figure out how to do unit conversions."
import numarray as na
densityUnits = 1.54e-21
...
Still lots of handwritten code. But guess what that didn't stop me from doing?
That's right, telling other people they should use it!
"Wouldn't it be nice if we could see what it did? Let's try this locally-developed application, HippoDraw!"
"This is getting awfully complex."
"What it really needs is a name."
Maybe other people can do it?
(Slashdot jokes never (?) get old!)
Our dependency list remained nearly static for a very long time:
numpy
matplotlib
h5py
And we went to great lengths to keep it that short.
We aggressively aimed to build a community.
(...let's dissect that "aggression," shall we?)
Neither social nor technical changes are distributed evenly over time.
The broad landscape didn't change very much for a while. Within the Python arena, folks mostly used matplotlib, folks mostly used numpy, and folks mostly didn't have a really amazing story for how to install stuff.
The distinction between people who "made" software in academia and people who "used" software in academia was pretty strong. Software was just a thing you used, not something you were a part of.
OSX was kind of annoying to develop on again, but still pretty usable.
Python 3? Sure, I guess!
Permissive licenses: the only way to fly.
"Open Source" was on its way to becoming an assumption in many parts of academia.
If you weren't using git
, you were a bit of an outcast.
"Community" was a buzzword (and a successfully-revived TV show).
I was four years out from my PhD, finishing up my second postdoc, getting married, having a kid and moving to Illinois from New York.
Thanks, but I'll use Python 2. (Also, what's this new pandas
thing?)
Re-licensing will be our gateway to uptake!
Wait, you don't need to be convinced anymore?
We weren't using git
, because hg
was (is) better. It's your problem if you don't see that.
Turns out, if you're not careful, growth can saturate.
Neither social nor technical changes are distributed evenly over time.
All of a sudden, practices we thought were innovative -- direct outreach to users to contribute, thinking about capital-C Community, engaging people at many different research backgrounds -- were a bit ... passe.
Technologies started to shift rapidly. New visualization engines, new parallelism engines and new IO routines became popular and even prevalent.
All of a sudden, we had hundreds of users who -- rightly -- were not terribly keen on having everything change underneath them.
And some of us were making the transition to different career paths.
"Look, you have to recognize that this isn't just some thing, it's a Thing, and some of us have built careers around it." --said to me, 2013
"OK, let's get some funding for it."
"Who calls the shots?"
"Don't pull the rug out!"
I held us back in a few critical ways.
Docker? ...docker. Docker? Docker! Docker.
Python, Javascript, Julia, Rust, R
web or it didn't happen
Is it fair to ask people to work on this?
How finely sliced can time become?
Some of the stuff that was really hard ... isn't necessary anymore.
Also, who cares what you think anyway?
Academic identity is already messed up, and the "marketplace" of projects only worsens it.
Seeking "sustainability" is an inescapably existential problem.
If stability is a key promise, how can we innovate?
If we can't innovate, what can we do?
(From https://medium.com/@mmaybl/apple-the-innovators-dilemma-5df4e70ab109 )
All is not lost!
(He said, optimistically, hoping no one would notice his quavering tone of voice.)
Now some slides, courtesy of Madicken Munk, about where we're going!