I was a mathematics professor for almost all of my professional life, though I've dabbled with computers ever since a summer job in college (IBM 1620, punched cards, Fortran).
After retirement, I started programming more seriously and eventually discovered the joys (and they are great) of functional programming. Most of my work has been in Elm, though I've used Haskell for one small project; I hope to get better at that language one day.
- How typed functional languages help to build reliable large systems (rapidity of development, ease of making major design changes)
- How to meet the challenges of building a large system
Both novice and experienced developers.
I present the design and implementation of a scientific document management system, Scripta.io.
The system has two parts: (1) a compiler from a text in any one of three markup languages (MicroLaTeX, Scientific Markdown, and Enclosure) to HTML, and (2) the document management system proper. The latter provides an editor, a searchable store of documents, a way of bundling documents into notebooks, an image uploader to facilitate placement of images in documents, and export to both PDF and standard LaTeX. Both system parts are written in Elm, pure functional language designed for making web apps. We use the Lamdera framework so that both front and backend are written Elm, providing both typesafe communication between the two and an enjoyable developer experience with very rapid turn-around and feature development.
Topics: why this project is worth doing, how it was done, design criteria and challenges, and my developer experience.