A Typeface for Programs

Programma is the typeface I use when programming and teaching about programming. Programma is a sans serif monospace typeface.

Programma is eclectic. It borrows ideas from Microgramma, Courier, Palatino, Twentieth Century, and others. Programma is not suitable for most purposes, but it is pretty good at representing computer programs.

Programma is centric. Most glyphs are centered at half the x-height. This alignment supports the ways in which programs are composed.

Programma is still being tinkered with, but it is mostly done.

Programma is in the Public Domain. You are free to use it. Please do not ask me to give you a license because you do not need one.

01 Programma's digits are borrowed from Twentieth Century. It was popular with computer manufacturers in the 60s and 70s.

Programma's letter O and o are borrowed from Microgramma. The rounded rectangular shapes are easily distinguished from the oval shaped digit 0.

Ll A particular problem for programmers is the confusion of lower case l with the digit 1. Programma solves this by making the lower case l look like a diminutive upper case L, joining c o s u v w x y z.
P I really like the open counter on Palatino's P.
g This g was inspired by a Rainbo Bread wrapper.
ai Many of the letters are borrowed from Courier, but with most of the serifs removed.
Most of the operators are centered on the middle of the lower case x. This favors lower case variable names. It also improves composite operators.
/\ The ASCII backslash \ was intended to fuse with the slash / to form the and /\ and or \/ operators.
(c) The parentheses are formed from sections of a circle.
The parentheses, brackets, and braces are all centered as the other operators, so they can also compose well. They are also visually distinctive.


Programma on Github