John Samuel
Associate Professor, Computer Science, CPE Lyon
Please tell us about yourself
Working as an associate professor, I teach topics related to the web, programming, and data science. My current research works are on (3D) urban data analysis and knowledge graphs. I love reading, photography, programming, watching series or documentaries, and experimenting with open-source solutions during my free time.
I also contribute to Wikimedia projects, especially Wikidata and Wikimedia Commons. Sometimes, I turn some of my experimental scripts into tools for the Wikidata community. I also share relevant articles on open science, open-source, and (multilingual) open data on social media.
What are you working on right now?
Besides preparing my course-work on data science-related topics and researching on graphs and urban data, I am currently exploring how to build “multilingual” open-source software during my free time.
Based on my past and current experience working with students, I feel that several barriers exist which make it difficult for students to jumpstart programming. Language is one such barrier. A majority of programming manuals, API documentation, and tutorials are only available in English and a limited number of major languages.
Yet, mathematics is universal and taught in multiple local languages worldwide. Is it because the symbols that we use have become standard over time? Is it possible to ensure something similar for programming languages? Towards this end, I am experimenting a lot with the Python programming language and Wikidata to build solutions.
What is most interesting about that?
I have this utopian dream that everyone could code in their local languages and share their work with people globally. I foresee a future with Abstract Wikipedia, when everyone may write an article in just one language, and people could read it in their local languages. The democratization of programming is something that we may soon observe along with the emergence of new domain-specific programming languages.
How did you first discover FOSS?
I came across free and open-source software during my engineering studies. I can still remember the day when I discovered that I could not only see the source code of the Linux operating system but also modify it. Following years, I spent most of my time understanding, modifying, and experimenting with the Linux kernel. That was the first time I learned the depths of the C programming language for a project at this scale.
Gradually, I shifted my focus on the open web standards and open data and this has become my area of research during the last few years.
What prompted you to start contributing to FOSS?
During my research career and personal life, I got opportunities to work with multidisciplinary teams and collaborate with Wikidata contributors. I started seeing value in my scripts and excerpts of code that I had exclusively used for my experiments. Gradually, I shared some of my Wikidata queries on social media (Twitter). Recently, I built tools using them and released them under open licenses. I am delighted that it all started with some personal experiments. Eventually, I got the opportunities to share them with language communities and even talk about them in multiple conferences.
Why should others get involved with FOSS?
This question is a difficult one. Based on my personal experience, I must say that I learned more by reading, sharing, and modifying open-source code. My experiments with the Linux kernel and Ubuntu operating system helped me get my first job. The learning experience and the sense of belonging to a worldwide community are immense.
How should they get started?
Start reading, experimenting, modifying, and developing. Remember to share. What seems simple to you may not be a simple task to the vast majority. You could share it on social media, whether by text, audio, or even by video. And, who knows, your simple tool may soon have hundreds and probably millions of users?
What difficulties and limitations do you see with FOSS?
Building communities is indeed a difficult task. A newcomer may not easily understand how a community works. Newbies often consider open-source as a coding or programming exercise. I fear that this viewpoint is one of the main reasons we often complain about the user experience of open-source solutions. FOSS includes the whole spectrum of product development, i.e., designing, testing, maintaining, accessibility, human-computer interfaces, ergonomics, etc.
How can they be solved?
Including open-source usage in the schools and open-source development in STEAM (science, technology, engineering, art, and mathematics) studies are necessary measures. I only use open-source software and open (web) standards for my classes and practical sessions.
Where do you see difficulties in contributing?
Onboarding newcomers is indeed challenging. They do not know where to start and how to contribute. Time and sustainability are other significant difficulties. Contributors do a vast majority of the FOSS work during their free time. They may not have the time and the resources to continue developing and maintaining their products because of personal and professional reasons.
What does a perfect day off look like?
A visit to a historical location or a natural space with my camera.
Do you want to tell us something else we didn’t ask?
Firstly, I recommend reading “The Design of the Unix Operating System” and “The C Programming language,” two of my favorite books.
Secondly, I strongly believe in embracing multilingualism and transparency in science and open-source development. Open source, open data, and open science will undoubtedly help build an inclusive and sustainable world.