Tomas is an academic, open-source developer and a book author. He is a lecturer at University of Kent and works on making programming with data easier. He also studies history of programming and writes about it from a philosophical perspective. Previously, Tomas wrote a popular F# book "Real-World Functional Programming", helped to create a number of F# open-source libraries such as F# Data and created coeffects (http://tomasp.net/coeffects), a theory of context aware programming languages. His most recent work includes programming tools for data journalism (http://thegamma.net), but also three essays that understand programming concepts such as types, monads and errors from philosophical perspective (http://tomasp.net/academic).
The idea of literate programming is to combine program code with explanation in a natural language, so that the entire source code can be read as an explanation of how the program is constructed and what it does. Literate programming is useful in a wide range of areas:
- you can write literate scripts to document how a library works
- you can use it to explain the logic behind complex calculations or mathematical models
- you can use it to write data analysis that is executable and produces the final report
- and as a bonus, you can use it to generate slides for your programming talks!
In this talk, I'll talk about the F# tools for literate programming, including the F# Formatting library (which parses literate F# and Markdown), ProjectScaffold (a template for projects that lets you write literate documentation) and FsReveal (a tool for creating presentation using F#). You'll learn useful things about documenting your (not just F#) code and about writing understandable code and data analyses.