Thank you for being here and thank you for the invitation.
I'm going to speak maybe in a less technical way, in a more reflexive way of the thing
I am trying to do for the last year.
I'm Emilien Schultz, I'm a post-doctoral researcher in Sociology of Science and Health
in France, both in Mediarab and in the system in Marseille.
And I'm going to say something about the way we are doing scientific programming in
Python in social sciences and the way we can improve it.
And I gave this presentation a kind of provocative title that is a way to speak about what are
the specificities of social sciences and how can we improve all this kind of environment
to make computing and data analysis in relation directly to open science.
So yes, it's kind of humble presentation.
If I want to summarize it in one sentence, my point is to say that social sciences need
more scientific programming.
And it is three points for that scientific programming as I think the right flexibility
to equip the very diverse practices that exist right now in social sciences.
For the moment, we have a landscape, especially in France, with main based on air, language,
and Python could benefit of some impulse, and I think it needs it.
And the gateway will be to develop very specific disciplinary packages that are still missing
for Python in social sciences, which I can call a disciplinary API for the language and
to move beyond on open source treatment.
So just a quick disclosure, I've been trained in physics, but I moved in sociology and now
I'm speaking as a sociologist or a social scientist here.
I'm trying to give some feedback of what we are using in our community and try to answer
two questions in one, which are not very well-delinated, which is first, how to improve Python in social
sciences and in more general way, what are the different uses of central programming right
now because we don't have a very clear look of what's going on in all the different way
we can use the scientific programming.
So it's a work in progress, so it may need to make an exchange with you.
To be clear about my title, I'm not saying that we are under-equipped in a pejorative
way.
Social sciences have a well-established open source software platform, and some of them
are going to be presented today, and usually give a warm welcome to new strategies for
data analysis, and its own fieldwork are expanding to numeric and software data.
So we are using and studying all those software tools and open source tools.
But it is a general point of view from a sociologist.
We have, in general, a low-tech practice, and we are using software applications, programming
for very discreet, meaning punctual or unseen operations, and if you want to have a look,
there is a very nice article from Caroline Mueller and Frédéric Laveur about how Easter
ians are changing the practices and putting some more numerical analysis inside their
work, but still conserving the global way of doing their work.
And so we need flexibility to adapt to individualized practices or topics, which are very personal
to researchers.
So I need to say a word about the specificity of social sciences, because I don't think
we have very numerous today.
There are a variety of disciplines with very different ways of dealing with data and analyzing
archives and interviews, and within each discipline, there is a huge variety of methodologies,
school of thoughts, theoretical approaches, and from an organizational point of view, there
is a very weak functional dependency between all the researchers in our different fields.
And moreover, there are very important national specificities.
And moreover, each research trend is very conceptually laden, meaning that there is very important
given to the friends that each researcher is using to collect data and to analyze it.
There are no global rules of how to do it.
So there is a very huge limit of one size fits all instruments in our disciplines.
And besides, there are very harsh critics against standardization and normalization because
it is seen as a way to erase priority, which is some kind of base of what our social sciences.
So there is a huge fight between individualization and standardization of practices.
Nevertheless, shared instruments are important, especially software instruments.
And science studies, which is a field of sociology and anthropology of science, has shown the
crucial role of instruments for the functioning of scientific communities.
It is very important for conceptually changes because it allows us to look at all the stuff
at different scales, at different topologies, like the microscopes change the way we are
doing biology.
They are very important for disciplinary identity, the way we present ourselves in our research
communities and how we define our activity.
And they are very important for coordination between specialties and standardization of
practices beyond a small group of researchers and to transfer theoretical agencies and methodological
changes.
And there is a lot of studies about how electronic microscopes change biophysics has to put
a second cell for changing medicines and the way we are doing dealing with data.
But there is very few studies on the way software is changing and standardizing practices, especially
for social sciences.
But as I told you, social sciences are kind of divided regarding standardization, especially
in post-standardization, because it usually reflects some kind of polar relationship or
one specific scale of thought which tries to impose its way of doing things against
others, especially in sociology or political sciences.
So there is a goal of to define what is the good scale of creating software instruments
for social sciences.
Scientific programming is what I want to say today, it's a solution which both favor
new, there are no new scientific instruments from within the specialties and to improve
some kind of second hard generalization by using the same way of doing scientific programming.
And it's a good entry point for new open source practices which are not existing or very little
existing within social sciences, like those linked to, as we've just seen, open science
or reproducibility and collaboration beyond the different disciplines which compose social
sciences and to import new stuff like coming from the computer science, high-stuff and
machine learning.
Nevertheless, for the moment, scientific programming as a global frame is not very common in social
sciences.
Of course, there are always cool kids, so there are people doing it and computational
social sciences are a thing and expand very quickly in our field fields, but for the common
people it is not very developed.
And we have a lot of users of AIR which has an intermediate status between programming
language and a statistical language, which kind of do a status.
What I mean as scientific programming is very quick, but it's a diversity of practices.
They have come on the fact that it's interactivity, exploratory and based on packages, and the
priority is given to usefulness for researchers to explore certain questions they want to address.
And all the questions just we have seen are not the primary aim of the researchers who
are using scientific programming, so stability, design and also very important question of
software development are not what is in the first front of the users of scientific programming.
But when you're looking at what researchers are doing, they're doing one of the steps
of the different scale and they're not all of them developing and creating new packages.
So the diversity of practices is very existing.
If you look on what are currently the software uses for researchers in social sciences, it's
a kind of an exploratory mapping because it comes from a non-representative survey conducted
by Maier-Niglou Baichek in France in a study called State of Open Science Practices in
France.
And we ask for researchers in different fields what kind of tools are using their research
and they can answer different for producing data, analyzing data, so just a small network
of all the tools that researchers are using for social sciences and humanities also.
And if you look to this huge diversity, what the main result are, there is a diversity
of software and profile of researchers, nothing new about that.
You will find the centrality of standard office software like Word, Calc, LibreFace, etc.
And the main scientific programming language used is AIR with 20% of users that are using
it and then a geographical software QGIS, 10% for SPSS, which is a statistical software
and only 6% using Python in this broad field of social science community.
And if you look just to the quotation, the reality of the work is usually just using
at some point some software and there is no global glue of open source tools in the workflow
of the researchers.
So even when you look at the small part of the social scientist who are doing quantitative
analysis, so it's a subpart of it, there are also a huge diversity, diverse tools division.
So we are looking to a very, very fragmented communities and there is a need to create
some glue between them.
What you can say that 20% of researchers on a survey said they are using AIR as a statistical
and scientific programming language and the observation is important because AIR developed
for good reason for social sciences.
It developed because there is an afflicted affinity between the diversity of practices
existing and the flexibility of the tools that AIR allows, that allows to develop very
specific packages which can continue the work of small communities.
You probably all know about AIR, it's a script identity language.
You can build very quickly small packages with data about a specific research project
and there is a lot of support from the French community, there is a lot of package in French
for instance.
But this lead to limits, it creates a huge diversity of types of package.
Some of them are not very easy to understand, some of them are not very well documented
and there are functions that exist only in AIR which create some kind of increase the
diversity of tools social sciences community are using.
Depending on what packages you look like, there is a very low documentation and very
low standardization of the code and there is still this ambiguity between what is the
statistical languages and what is the programming languages.
For the main topic of what I want to say, what is the state of the Python uses in social
sciences?
Let's say there are not a lot of people using it, there are more and more young researchers
interested to leverage machine learning in their research so they are coming to Python
to try to understand how they can use it in their research but for the moment it's difficult
to get to realize the basic steps for social sciences work in Python so it means all the
tools that we are using on a daily basis like making a logistic regression with a clear
presentation of the results and we need, and what I want to say, dedicated community packages
as a middle ground for researchers to access financial programming and then being progressively
aware of all the open source and open science practices they can add in their research.
So for that there is a need to go beyond application development itself and beyond one specific
package is it's a whole process to implement.
Just what are the expected positive benefits of Python broad adoption, just a small snippet,
it will enhance science free programming practices especially with the importation of the whole
ecosystem of Python, especially notebooks, have the potential flexibility and they will
allow to create a common language with other communities especially computer sciences.
The question is still, we in the social sciences have already heard of the main language, what's
the future of the collaboration between those two languages, reject the idea to develop Python,
to advocate the polyglotism or share a rivalry between Python or start a transition with Python
and in France we are, for the moment, we decided, school decided to teach Python as a first
language for students in high school so maybe there is a change going on on what kind of
languages students are going to practice in the future so it creates a shared language.
It's a leap of faith to decide what kind of tools we will need, mine here is the Python
but I'm here to speak about the place of central programming so both of them are going
to be together.
Just want to say a word about what I'm trying to do in France for social sciences especially
in sociology to enable this practice of Python and this kind of bio-social humanities, social
and humanities science package and I want, I need to achieve a double constraint first
to achieve some standardization because we need some shared tools to be able to work together
especially to train students and to create collaboration projects but we can't sacrifice
our disciplinary and sub-disciplinary specificities so we need to find the good level of flexibility.
It's a four-step process, nothing very new and it's very common I guess in every development
of packages and tools, the first one is to identify what kind of practices can be called
quasi-standard even if they are not completely standard, the second step is to build easy
to use packages that can find place in a specific workflow, the third one is to prove it can
be useful because there is no way to create something, there is no proof that it makes
some positive advantage in research processes and then the fourth step is to train colleagues
and develop practices.
Step one, to uncover standard practices and we need to, and I'm speaking about social
science to understand better what is the common sense for daily job, for instance not all
social scientists are doing machine learning or statistics but a lot of them still do it
a bit especially basic statistics.
So there are some quasi-standard operations, for instance for survey, analyzing surveys
with questionnaires and samples, so we need more like R stats as descriptive statistics
for survey, different tools for transformation of file formats to generate and modify tables
to create intermediate documents and to produce visualizations the way we use it in our work,
for instance in France we are using a lot of work from Bourdieu, Pierre Bourdieu, Sociology
and he has a very specific way to present the result of factorial analysis and you can
find it in the Python universe.
So you need to start to work with those existing workflow to build more adoption.
The second step is to facilitate the disciplinary use and might try the small package which
is in French and it's the choice to be able to be close to students and researchers who
don't usually use Python to be a one-liner which is the first step to use some kind of
easy route tools to move quicker through results, close to the common sense in the way tables
are organized and based to facilitate the complete workflow from the data to some results
that can be published or presented to students.
And it's based on the basic packages of the Python communities like Pandas so it allows
to move swiftly from one specific disciplinary package to the more general practices.
The third step is to show the usefulness of both Python and this specific package and
for that there is a need of public demonstration in context.
No research tools can be used, will be used if it's not direct advantage to use it for
research and doing stuff.
So notebooks are kind of perfect vector to prove and display some, I can see the figures
in this, yes it can be prioritizing but it's a good way to present a complete step for
research and we developed with the collaboration between Humanum which is a platform for software
and data analysis in French and a cooperative detectivist, five notebooks for machine learning
as a starting point to show how Python can be used like from the beginning to the end
to analyze a survey and the survey we just discussed before about the state of practice
of open source science in France.
And the fourth step, it's a very important step is to train colleagues and students so
you just can put something out there in the world so the tools need to find a place in
research workflow so there is some kind of transition to the tools, to the practices
and we are doing it in different steps, writing books and academic examples to stabilize a
shared practice in France and I'm intervening laboratories to show how useful it is to use
some Python even if you don't, my colleagues don't usually do a central programming to
train more new students especially PhD candidates to those new approaches and all the world
around Python like Git and using GitLab and creating spaces to discuss our specific practices
which for the moment doesn't exist.
I will conclude just from very quick concrete ideas.
My point today is to say that a scientific programming especially in Python that's not
specific in Python is a survey that between the use of application which is the daily
basis of a lot of social sciences especially in sociology and not using at all code which
also has the daily basis of a lot of quantitative researches in social sciences.
Scientific programming will allow to promote the particularity and open source practices
because it is the gate to all the practices from the open source communities and we promote
interdisciplinarity collaboration with colleagues outside the scope of sociology for instance.
Nevertheless there is a need for facilitators, this was my whole point, we need to excavate
and make this reflexive process of understanding what are our standard practices that can be
standardized at some point to find early users and creating core developers that can come
along with this work of reflexivity and to demonstrate more the concrete efficiency of
those tools, the limits are, this focus on disciplinary specificities is also as also
drawbacks because it can increase the dispersion from the laboratories and it's something which
is real and maybe there are better languages to promote than Python or I have to do that
but I started with Python. So thank you for listening to me and it's my message.
Thank you. If you could take questions, please do repeat and formulate for the stream. Thanks.
So in computer science we have also the problem of reproducibility, most of the time we write
papers and sometimes the results in the papers don't get the software. So in the recent years
we have a lot of conferences that have one special transport tools and one is to request
all kind of a stamp on the paper that the paper is reusable. So it comes with a software
that you can really run the experiments. Do you think that there will be some helpful
also to propose these social science? The question is that there is a lot of problems
in similar problems in computer sciences, I'm repeating for the audience, but I think
that you are way behind what is going on in social sciences and even the possibility to
make a reproducible paper is not here right now in the social science communities because
the logic of programming, the logic of automatizing steps and not using directly Excel to make
that analysis is not yet here in the basic practices of our communities. Some of my colleagues
are doing it but they are very few, usually kind of the youngest one. So what I'm saying
but it's not so clear in what I said is we need to use more what has been developed from
computer sciences and to try to find a way, a gate to import them at some point in our
practices. So to understand what is going on in computer science we need also a better
culture of what's part of all those tools and it's still not here. Thanks. This is my
question. The question is that there is a division between people who wants to train
to those tools and those who doesn't want to. The fact is we are more and more working
projects in the basic culture of what's going on, what's possible to do is something we
need to share to everyone. Otherwise, there are huge divisions which are going to exist
and to produce. So I'm quite sure that that's why I have put this kind of very small diagram
first. Science programming can start with reading a script, understanding a language,
not producing it by yourself. And it is those steps that I think are useful for everyone.
So global computer literacy for social scientists, even if they don't want to move to other more
advanced tools. But this one is, for instance, working on a project with statisticians and
people who are scrapping for data to know what is possible to do. So thanks.
I have a point, maybe a suggestion, if it's not in place already. We have an institution
named the Carpentries. They teach professional skills and data science for researchers. And
it would be wonderful to see a workshop, including Python and your library in the workshops
available there. Because once we have a workshop there, we gain the potential to have more
than 3,000 official instructors around the world to teach this content. It would be amazing.
So you speak about the software Carpentries, yes?
Yes.
Of course, for the question it is, there are already very important initiatives existing
in the Carpentries, especially in different disciplines. For what I know in France, they
are very little visible in social sciences. So I use the content they are creating. But
for what I can see, very far from the daily questions social scientists are having in
the daily analysis. And there is still, you know, a transition to make. And I can, I agree
completely with what you said. There is a need to make this a jointer. But it's a working
process and I will try to contact, find someone who wants to do it with me at some point. But
I have been trained at some point as a software Carpentry, but I never completed my training.
But yes, I am aware of that. Thank you. Anyway, thanks.
I have no data about why. Sorry for the question. The question is, how much do we know why people
are using specific software tools in social sciences? My answer is, and it's with my heart
of social scientists interested in science, is that I know very little work studying how
researchers are using software and tools. There are some work starting to be developed,
but I have no answer. For instance, for AIR, AIR exists because statisticians use it a lot
and so it has been teached in a sociology course. And then students became researchers
and now they are using it in France. So there is a historical path dependency on the specific
kind of user. But I quite sure it's a huge avenue for research. Thank you.
I am quite sure you are right. The question is,
how people change from one software to another and this is an unresolved question. So thank you.
Thanks.
Thank you.