A tale of

Collaborative & open development

of mathematical software, from the perspective of a GAP developer

Free Computational Mathematics, Feb. 2019, CIRM

Max Horn
Uni Gießen, Germany ⇨ Uni Siegen, Germany

“Those who cannot remember the past are condemned to repeat it.”

George Santayana, 1863-1952

Version control systems (VCS)

  • don't manage your code by manually duplicating it before change!
  • VCS help you with keeping track of your changes and much more!

Lesson: use a VCS to manage your code/websites/data

  • I use this for everything (e.g. this presentation)
  • most popular today is git, but Mercurial is also great

I'll do it later (yeah, right)

  • you wrote some code
  • now you should also write tests
  • but your setup makes this annoying
  • result: you'll do it later (i.e.: never)

Lesson: Writing tests should be EASY

e.g. in GAP, test files are recorded interactive sessions


gap> ForAll([1..10], n -> Size(SymmetricGroup(n))
>                         = Factorial(n));
true