Please give us a bit background on yourself from growing up till now
I was born and raised in Germany, accidentally studied mathematics, followed by some research. After a few years in the US, I’m now back in Germany working as an independent consultant.
When did you first become interested in math and what about it peaked your interest?
While school mathematics has little to do with mathematics, I vividly remember my 7th grade math teacher who you could catch with gleaming eyes whenever we moved to a new topic; I suspect it was this kind of enthusiasm that opened me up the idea that this stuff could be fascinating. Still, I only accidentally studied mathematics but was quickly hooked on the thrill of pushing one’s mind as well as a great cohort of students.
What are some of your favorite topics in math and why?
My research was in set theory and I mostly studied ultrafilters on countable semigroups. I suppose I was attracted to set theory since it provides a foundation of all of mathematics and reversely got interested in ultrafilters because applied some aspects of set theory to mainstream subjects like additive combinatorics.
What is MathML and why should people care about it?
MathML is an XML standard for describing equations. I don’t think anybody must care about it, to be honest, but it’s probably useful to know that MathML is very successful in the publishing world so most equations that are published get converted to MathML at some point. For the TeX-heads out there, you could view MathML as TeX after cleaning up macros (and adding angular brackets) which is very useful for archival purposes; this is, of course, a lie.
Why was MathJax started? What was the inspiration or motivation?
MathJax was conceived as a successor to jsmath, which had been created by our lead developer, Davide Cervone, all the way back in 2004. Where jsmath was focused on just TeX, MathJax broadened the scope to a modular system with MathML as an internal format and a modular structure with decoupled input, internals, and output mechanisms. This allowed MathJax to overcome many of the limitations that a strict adherence to TeX introduces. After all, TeX is a programming language for print layout and much older (and thus not aware of) technologies for the web (HTML, SVG, Unicode etc).
Take us through the first few years of MathJax.
I only joined MathJax in 2012, so I wasn’t around for the first few years. But retrospectively, I would say that Robert Miner is the key person who made MathJax happen. He knew Davide from their postdoc days and he was the one bringing together the American Mathematical Society, the Society for Industrial and Applied Mathematics, and Design Science (where Robert was CTO until he passed away in 2011). These three founders funded Davide on their own during the first few years of development. Robert then established the MathJax sponsorship program and recruited the first group of sponsors — all of which are still supporting MathJax today! And finally, Robert worked with Davide to design MathJax’s architecture which has been holding up for over 6 years now (and we’re only now beginning to revise). Since then, MathJax has slowly grown to a stable team of three and we’ve steadily improved and extended MathJax.
What have been some challenges you’ve overcome developing MathJax?
The key problem for any open-source project is, ultimately, resources — and MathJax is very lucky to have such a great group of sponsors who support it.
The greatest technical challenge is certainly the ever-changing nature of the web. MathJax launched at a time where IE8 was state of the art (!) and thus much of its original design was for a different era of the web. At the same time, IE8 is still relevant for many developer today, so we can’t simply abandon it completely. That’s of course where MathJax’s modular architecture helps as we were able to develop new components (such as the SVG and CommonHTML output) that took advantage of improvements to browsers.
Still, sometimes you need to take a bigger leap and this year, we’re finally revising some of MathJax’s internals to drop some weight from the olden days and allow MathJax to better fit developer workflows of today and tomorrow.
The other big challenge is more psychological. It is great to still get regular thanks from users for “doing magic”. The trouble with magic is that it’s really hard work and the simplest of effects often take the greatest toll. To take a simple example, a recent meeting for the design for MathJax v3.0 revolved around the problem of supporting arbitrary Unicode characters. It seems such an obvious (and important) requirement for the web but it is full of subtle complexity and technical challenges. It’s like making an elephant disappear in a split second on a live stage; if you want this to seem effortless, it’s an awful lot of work.
What are some of your favorite tips and or top Do’s and Don’ts for using MathJax?
In the vein of ShopTalkShow: just use MathJax! More seriously, I wouldn’t want to describe anything as a “Don’t”. Use MathJax, push it too its limits and when things break, let us know. Just keep an open mind as to what a solution might look like and that some things might just be out of scope for MathJax (e.g., LaTeX users are sometimes annoyed that we don’t handle text-mode macros); that doesn’t mean you can’t do those things, it only means we can’t spend time on it.
The only “Do” I might add is to think about the web as a medium on its own right. Try to create something for this medium (instead of just sticking to your pre-web ways) — explore the web’s grain, if you will.
What do many people not know about MathJax ?
We don’t talk alot about our size. You can easily see that the team consists of three people, all part time, you can probably estimate our budget by looking up our sponsorship program and doing the math, but you probably don’t know how many people rely on MathJax. Of course, neither do we — MathJax is open source and used in many settings that we don’t even know of. We can give a lower bound however: according to our passive CloudFlare analytics, the MathJax CDN jumped above 100 million unique visitors per month this year. This is a rather humbling number, to be honest.
What are some of the current issues with web accessibility?
Simply put: it’s virtually impossible to provide fully accessible rendering today. For a long time, people communicated that MathML would be best for accessibility. Unfortunately, this made assistive technologies focus only on MathML while browser vendors never cared for it. So today we have a couple of solutions voicing MathML which doesn’t help because you can’t really use MathML for visual rendering.
The more fundamental problem is that it is very difficult to make equations accessible. It’s hard to expect authors to change their writing style and it would probably be extremely prohibitive to write mathematics that semantically and visually acceptable (even ignoring legacy content). So the best bet is to analyze the structure of an equation and (ideally with some context information) guess the meaning of its parts. That’s not impossible (after all, visual users do it) and there are tools to do this reasonably well for school and college level content.
But then you run into the problem of exposing that information on the web. For this, you need to embed it in your visual output (which can be both more complex (e.g., an underbrace with a description) and more compressed (e.g., partial differentiation). And finally, you want to expose this in a way that allows any technology to pick it up — whether it’s a screenreader for voicing and exploring an expression or a search engine that might want to match a search pattern against semantic or visual subexpressions, or “just” a user, hoping to copy something useful to paste into another application (for authoring, computation or visualization).
What are your future plans and goals for MathJax? What can we look forward to?
We are currently re-designing parts of MathJax’s inner plumbing, stripping out things we don’t need anymore and re-building its infrastructure to take advantage of many recent improvements in web browsers. Besides ensuring our long-term success, we will be focused on making server-side rendering a first-class output and expect another round of significant speed improvements. You can follow the discussions of our technical committee on the MatJax Developer mailing list.
We have also been working on a few new accessibility tools that should allow any user to get meaningful voicing and exploration within the visual rendering MathJax produces. This will have its first public release soon, so if math accessibility is important to you, check it out and let us know what you think.
Finally, we are involved in a new W3C effort to improve the situation for math on the web as a whole, working with other great projects to improve web standards and their implementations from the bottom-up. Hopefully, we will see this group positively effect both standards, implementations and tools alike.
Give us a vision for how math will be digitally inputted and displayed in 2030?
I think by 2030, the many early-stage tools we see today will have found a way to work together successfully to allow a much more flexible way of creating mathematics. Whether you type code, use a wysiwyg editor, hand-write, or use your voice, these will be able to work seamlessly.
On the display side, I think we’ll see much more visual representations of math. Besides the obvious things you can do with 2D (jsxgraph, geogebra, desmos etc), 3D (mathbox) or VR (e.g., Vi Hart’s hypernom), I also expect unexpected, subtle changes. Perhaps people will end up using Emojis instead of mathvariants (blackboard bold etc) — which arguably isn’t that new since Byrne kind of did that all the way back in 1847).
Oh, and one of my pet peeves: I do hope we’ll finally have a universal way to share laid-out mathematics in emails.
— There we have it! Thanks for your time and insights Peter! Keep up the great work on MathJax!