Creator here, thanks for all the support for this objectively terrible programming font! Still working on some issues with windows not playing nicely with bold weights so be sure to watch the repository (https://github.com/IdreesInc/Monocraft) or follow me on Twitter (https://twitter.com/IdreesInc) for updates.
It's an absolutely hideous font for looking at code, but I appreciate the effort you put in to make it. Nice work!
Have you considered writing a blog post about the process you used to make it, anything that set you back while working on it, and advice for others who may wish to generate their own fonts?
I'm always on the hunt for a good programming font, and I opened the link and immediately thought "omg, no! i hatez this!". I didn't want to be mean and say so out loud, so it's nice to see the creator say "objectively terrible programming font", lol. As bad as it is for working with code, I could definitely see some very cool applications otherwise. Nice work op!
It's a specific font to Minecraft. It's not an existing font. It appeared before Minecraft in 'Legend of Chambered', which was a simple game created by Notch, who later created Minecraft.
The message panel on the top is the default one in ncurses mode. The one on the right is the permanent inventory, which can be enabled with `perm_invent` option.
Basically this is how my `~/.nethackrc` config look like:
Ligatures are amazing, I don't understand why anyone would like ascii "compound versions" of a set of symbols when there are thousands if not many hundreds of thousands of great symbols that were used in older typographic settings that are available for usage.
- It makes me have to think too hard to figure out where the boundaries actually lie between characters when I want to edit. I don't want to think about how many times I'll have to press backspace to delete a single "character"; without ligatures, I don't have to think at all.
- With ligatures enabled, I have to remember how to type each character-group (e.g., that != is the same as slashed equals). With ligatures disabled, I can just read it back from an existing example. In other words, ligatures create a separation between what I type and what I see.
- It makes it hard to quickly compare my code to examples online that don't use the ligatures because, again, I'm forced to translate between what's on my screen and what's in the file.
The only ligatures I appreciate are minor stylistic ones, e.g., raising a colon slightly before a number, adjusting the spacing between two consecutive colons, raising two consecutive asterisks, etc. Changes that don't fundamentally change the code appears but make it a teensy bit more aesthetically pleasing.
Ligatures obscure the underlying text, which is a problem when you actually edit it. It is okay to have light ligatures where the original text is retained but refined in style but many fonts with ligatures do too much [1], like rendering `!==` as two lines and a slashed stroke in between (come on, who on earth did think this is a good idea???). I would rather have a Unicode symbol support and automatic symbol substitution instead.
My view: Because languages are defined as those symbols, so why obfuscate it? It would be like collapsing the letters "ch" in english to a new symbol because it's a digraph.
Luckily as programmers we can each use a different configuration- I just spent two hours at work trying to get my ligature fonts to show up in a hosted VSCode instance.
I tend to dislike these sorts of ligatures because they obscure the underlying text that was typed. I would much prefer programming languages supported characters like "≠" or "≡" as aliases for operators.
I love ligatures, for what it's worth. I find them nicer to look at than the separate char versions, and I've not found them to be distracting or confusing.
In principle I agree that there's issues with ligature fonts, but I tried using one for a few months a while back and found that in practice I didn't find myself having to think more about what the underlying text actually was, and it was occasionally delightful to look at the pretty symbols.
Thank you for 1) making the font I’m actually going to try using it in VSCode simply because I think it will be fun and oddly enough easy to read, and 2) teaching me what a ligature is.
Curious how font ownership works, especially with pixel fonts. If I make my own font from scratch, and it matches per-pixel an already-created font, is it mine or theirs?
"First, the short answer in the USA: Typefaces are not copyrightable; bitmapped fonts are not copyrightable, but scalable fonts are copyrightable. Authorities for these conclusions follow."
An IP lawyer once explained to me that "fonts" are copyrightable because they are technically computer programs, and computer programs are copyrightable.
I actually find it odd that "typefaces" are not copyrightable, but I think that's more of an historical quirk than some wise feature of the legal system.
I have dyslexia and I can tell I have to slow down a bit when reading this, but it’s not bad. I assume the closeness between characters makes it slightly worse for everyone, especially with characters like “o” and “c” differing by a single pixel.
On the topic, I recently learned about the Dyslexie font [0] as well as OpenDyslexic [1]. You can see the goal is to make characters easily differentiated. Not sure how I feel about these fonts—I can certainly read them easily, but I am not a fan of the style. There are other fonts I can read just as well which look better too.
Have you considered writing a blog post about the process you used to make it, anything that set you back while working on it, and advice for others who may wish to generate their own fonts?
FWIW usually fonts variants are named '|font| Code' for ligatures version and '|font| Mono' for normal
but feel free to ignore reminded me of spectrum font ^|
[1]: https://www.crowdspring.com/blog/font-law-licensing/
Not a nice thing to do to a type designer or a foundry, but a gaming studio/Notch(?) won't probably care.
[0] - https://www.pentacom.jp/pentacom/bitfontmaker2/
[1] - https://github.com/IdreesInc/Minecraft-Font
[1]: https://i.imgur.com/wsWnMq0.png
https://i.imgur.com/wsWnMq0.png
Basically this is how my `~/.nethackrc` config look like:
- It makes me have to think too hard to figure out where the boundaries actually lie between characters when I want to edit. I don't want to think about how many times I'll have to press backspace to delete a single "character"; without ligatures, I don't have to think at all. - With ligatures enabled, I have to remember how to type each character-group (e.g., that != is the same as slashed equals). With ligatures disabled, I can just read it back from an existing example. In other words, ligatures create a separation between what I type and what I see. - It makes it hard to quickly compare my code to examples online that don't use the ligatures because, again, I'm forced to translate between what's on my screen and what's in the file.
The only ligatures I appreciate are minor stylistic ones, e.g., raising a colon slightly before a number, adjusting the spacing between two consecutive colons, raising two consecutive asterisks, etc. Changes that don't fundamentally change the code appears but make it a teensy bit more aesthetically pleasing.
[1] https://pbs.twimg.com/media/DKE2QBSUQAEv_dQ.jpg
Deleted Comment
On the whole I think they're nice.
"First, the short answer in the USA: Typefaces are not copyrightable; bitmapped fonts are not copyrightable, but scalable fonts are copyrightable. Authorities for these conclusions follow."
I actually find it odd that "typefaces" are not copyrightable, but I think that's more of an historical quirk than some wise feature of the legal system.
Deleted Comment
I wonder how it does for people with dyslexia. I'm guessing not great.
On the topic, I recently learned about the Dyslexie font [0] as well as OpenDyslexic [1]. You can see the goal is to make characters easily differentiated. Not sure how I feel about these fonts—I can certainly read them easily, but I am not a fan of the style. There are other fonts I can read just as well which look better too.
[0]: https://www.dyslexiefont.com/
[1]: https://opendyslexic.org/
2) it's meant to be rendered large enough that this doesn't matter
3) "bitmap" fonts always have compromises to fit the limitations of the grid