The importance and viability of free software
-------------------------------------------------
Both by tradition and necessity, mathematicians were early adopters of open-science principles (free software, open data and open-access publications; see *
Tangente Éducation*
50, 2019). The
GAP software (Groups, Algorithms, Programming, GAP Group, 1986), developed by hundreds of researchers over more than thirty years, is a prime example. The emergence of high-level programming languages, libraries and methods for large-scale collaboration has made it possible to combine these building blocks into general-purpose computing systems such as SageMath (
The SageMath Developers, 2005, based on Python), demonstrating that viable alternatives to proprietary or non-free software do exist.
Institutional recognition
-----------------------------------
In recent years, open science has finally gained institutional recognition and support. One sign of this is the €8 million in European public funding awarded to the
OpenDreamKit project (2015–2019), which brought together free mathematical software and the Jupyter ecosystem for interactive computing.
German public funding for the Oscar project, which is developing the mathematical computing systems of the future and is based on Julia (Bezanson, Karpinski, Shah et al., 2012), points in the same direction. More recently, research engineer Bill Allombert was awarded the CNRS 2020 Crystal Medal, alongside other research-support staff, for his work developing and maintaining the free arithmetic software PARI/GP (The PARI Group, 1985), whose user community is estimated at 25,000.
A long-term trend
--------------------
Advances in modularity and interoperability are gradually taking us from software developed in silos—each with its own community and dedicated environment—to "ecosystems of ecosystems." It has thus become easy to write and publish an interactive document that others can use online immediately. At the other end of the spectrum, the same building blocks allow an institution to deploy a service for its users offering a wide range of software and hardware resources, with a choice of familiar interfaces such as Jupyter (Fernando Pérez et al., 2015) or RStudio (Joseph Allaire and RStudio Inc., 2011).
This long-term shift toward large-scale collaboration is breaking down barriers between systems, scientific disciplines, and developers and users. It comes at a price, however: the landscape is complex! Still, the Jupyter environment, with Python (Python Software Foundation, 1991) and later SageMath, is a natural place to start.
A pioneer from the outset, CoCalc (William Stein, 2013) allows users to edit interactive documents simultaneously, including Jupyter notebooks (simultaneous editing will eventually also be available in JupyterHub). For straightforward collaborative editing of mathematical texts, Hackmd (The Hackmd Team, 2015), HedgeDoc (Jacob Stanley, 2020) or Overleaf (John Hammersley and John Lees-Miller, 2012) will suffice, while participants talk by video via BigBlueButton (Richard Alam, 2007) or Jitsi (Blue Jimp, 2011) and scribble together on François Schwarzentruber's Tableaunoir (****) (Irisa and ENS Rennes, 2020) or on BigBlueButton's built-in whiteboard.
For asynchronous collaboration and sharing interactive documents, it is worth learning a version-control system such as Git (Software Freedom Conservancy, 2005). Software Carpentry's online training courses are one possible place to start.