Hi guys.
So no demo for me.
I'm just here for some food for thoughts.
And I will talk as a social scientist about a specific case.
What I want to do, I have very little time, so I will move very fast, is to make two things.
First, a very, very short history of Jupyter's notebooks.
And then, sort of a plea for better knowledge of the way scientific software are made and their history.
Because I think it takes a lot in our area.
The question is, and my starting point is, where are our stories of scientific software right now?
I mean outside the specific events and globally in the main scientific area.
Because software won't say a lot about these everywhere.
And they ran from bespoke and code to international stars.
So we are software's every-round research, but very little stories of how they have been made and how they evolved.
And social sciences rarely looked at those software.
And when they look at them, they show there are very specific dynamics going on.
Research of software are open indeed. They are looking for uncertain ends.
Researchers are usually known as specific developers, and there are very specific funding constraints on how software are developed.
And these are specific consequences of the way those specific kinds of software evolved.
The code can have some brittlessness.
There is a lot of intertwinement with scientific activity.
And it led some researchers to become specialized in software engineering and developing software.
And it led to a lot of specific journalist of friend.
We have seen one with J.F.E. Light just at the beginning of this day of the room.
So I want to take a step back.
And because there is a lot of open question about that.
First, how can we tell the stories of our scientific software and how social sciences can tell stories of scientific software?
Because there are different journeys, especially in open source.
And there are different steps in the history of each scientific software.
Sometimes it stops, sometimes it continues for years and years.
And on a broader level, there is much intertwinement between open source and academia.
And especially, what are the links between open source and science?
And how the connection is made between academics and software engineers?
And just to quote Christopher Calti in two bits about UNIX.
In fact, the UNIX spread first to university, computer science departments, and not to business government or not government organizations.
And then that it also became part of the co-pedetrical practices of generation of programmers, computer scientists.
So there is something connected between open source and open science.
And I want in my very little time, but I had to work with a specific case, which is the case of Jupiter's notebooks.
And to say it in one sentence, innovation, it is an innovation going from research to become a worldwide infrastructure of data science.
It was released, notebooks were released in 2011, 2012, and spread everywhere.
And they won the ACM award in 2017.
And it is the perfect viewpoint to see how a scientist of course emerged,
how he progressively get more and more abstract from this starting point in the laboratory,
and diffuse within and outside academia.
If you want a long version French history, there is a paper in Al, but I will keep it very short.
I'm not here to advocate about Jupiter notebooks.
I use them, I love them, but I won't try to convince you.
And I'm quite sure there is a lot of people against them around here.
And if you are not against them, but you want to see why people are against them,
just have a look to the dry-gross talk.
But I'm making some sure that you know approximately what Jupiter's notebooks are,
because I have no time to discuss about them now.
What I just want to say is a very quick story.
It is first a PhD student, then a specific script, which is a Python,
then notebooks appeared, and finally we got Jupiter, as we know currently,
which is basically an infrastructure for interactive data science with different kinds of languages.
And you can see this evolution with the Python Dev mainly released,
with the progressive emergence of notebooks around 2010, and the appearance of Jupiter.
I just go back on those different steps.
So let's dive in this history.
The important part is to have the context of the early 20, or the term of the millennium.
And we are at a moment where we had a lot of achievement with the free software movements
and open source development.
And there is around the laboratories, paradigm of literal programming,
from the next move.
And for people coming from computational science or mathematics,
there are a lot of proprietary open software specialized for interactivity
with programming like MAPL, Mathematica or MATLAB.
And at this moment, there are also the beginning of the scientific Python community,
which just is starting to develop with the first SciPy workshop organized in 2002,
in 2002 in Austin, Texas, especially in the south.
And in this context, Fernando Perez was at the beginnings of Python and then Jupiter,
was a PhD student in his fourth year, tried to finish dissertation and wanted to move from
proprietary software to open source and Python and need something more interactive to do his work.
And the script which will become Python was a simple personal fix for the problem
of his own workflow and was really grounded in his common sense as a researcher in physics
and computational science.
So he wanted something to make sense, programming with interactivity.
And this was the idea, the value inside this moment that will unfold in a job.
In this basic case, the SciPy community, so the scientific Python community was quite an
amplifier and there was a very quick reception, and to the secret reception by this community
and the company which backed SciPy and thought posted IPytranslations on their web page.
And they get a lot of support from this community, think back and contributors,
and quickly after this start, other contributors joined the projects, especially Brian Kanger,
who jumped in 24.
And they managed to secure financial possibility to continue and it was attained with
post-doctoral grants that fellow Peerers get at Colorado Bolger and then thanks to the support
of a team in Berkeley which joined in 2008.
So the fact is, IPytern is something really well grounded in academia and SciPy community.
If you look to the main contributor of IPytern, almost everyone was a PhD,
some of them are in a position even later after the emergence of the software.
And notebooks in this context were just a feature which appeared later of IPytern.
And because 2004 and 2011, the project developed, a lot of support was given by the
Python community and there is a lot of features and tried multiple times to add a
notebook feature because it was something already here in other software.
There are five missed attempts before they were able to make a first
fabled version of notebooks because some technology, especially for browser, was not available.
So in 2011, 2012, a new release of IPytern included IPytern notebooks.
It was the beginning of the history of Jupyter and it works pretty well because it was really
quickly adopted by the SciPy community while outside the first specialty frontiers of the
developers of IPytern. And in 2021, Nature can say that IPytern notebooks are one of the
ten codes that are making science, sort of a huge thing inside the SciPy community.
But progressively, the notebooks became something more important and they led to
abstraction of what a notebook is and the way researchers are using programming in their work.
And there are two dynamics. The first, it was a movement of abstraction
out of the Python community and on the other one, it was strengthening of the practices in the
project of software engineering. And this allowed the project to make a split and to move
from a very specific IPytern tool to something more general, more abstract, which became the
Jupyter project and was backed with six million dollar grants of foundations that support open
science. So it was a huge move because it led to refactoring the code, change the philosophy,
reconstruct your latest with the whole project and there was a lot of money involved because it
needed a lot of, you know, hiring of software engineering to do so. So at this point,
Jupyter became something which escaped the academic world and had a worldwide option.
Notebooks became standard of data science and they were integrated a lot of services like,
you know, Google collab or use in third party, you know, tools already existing like the
regular studio code. So it was, you know, a turning point in the way this initially
scientific project became something way bigger than scientific community. And somehow I would stop
here because it opened a lot of questions. Of course, for the research community, the question
are what the current users of scientific, of competition on the books, what kind of work
are they doing? How does it make the way we are programming change? But at this point, the question
I want to carry here is does Jupyter project or software are still scientific software? And so
how does something which was created inside within the scientific community is starting to
get another dimension and to be something bigger or no more, you know, a research tool.
So just to rub up because I am going to the end of this presentation, I want to stand for more
historical documentation, not only documentation of code, but historical documentation of how
those specific software genres are associated with scientific specialties, institutional background,
funding possibility. And we need to take this specific dynamic seriously because of course,
for competition on the books as we are trying to do with other colleagues in different projects,
and there is a GitHub repo if you want to add some archive in the story, but also for all the other
tools that are inside our laboratories, inside our daily routine of scientists, because they are a
huge part of the way we are crafting knowledge and they don't have the same history than other
more material, you know, artifacts and scientific instruments as the discops or
particle accelerators. So it's my point, I finish here, thank you.
Sorry for the speed.
How can we define scientific software?
Very neat question.
Can I and how can we define what is scientific software? I think the only way I can answer that
is that software crafted within the context of scientific research at some point and that
builds not for making, you know, a complete tool but for answering specific research question at
some point in the advancement of knowledge. And usually there is a national literature about
the way that scientific software are really different like that don't take really seriously
into account at least at the beginning, versioning, test units, they are quite
squirming the good practices of software engineering. At least at the beginning and then if the
software is still around a few years after and gain more users, it started to integrate those
good practices. So somehow there are two universe but more organizational and social universe different
and I would say scientific software defined by the