This is cool. Do you take request to add font to your site? If so, could you also add one of my favorite font Nanum Gothic to sw9w.io?(http://dev.naver.com/projects/nanumfont/download/). Although it is relatively unknown, I haven't found any programming font I like except this one.
Details on the antialiasing configuration would be nice. These look completely different from what my fontconfig renders (uglies, IMHO, but that's subjective).
Maybe a bit more tweaking options, like the basic AA, hinting, etc would help.
All the screenshots are rendered with sublime text on Windows 7. There are the three basic options for no AA, default AA (ClearType) and gdipp.
What are you rendering on? What options in particular would you like to include? I know that different OSes have different font renders. And probably different programs, too. I'm always glad to make the site better, so I'm open for suggestions.
I'm using Xorg/fontconfig. So rendering is absolutely different (both in options and results).
I find it odd that all options are on windows 7 given that these are PROGRAMMING fonts. In my experience, windows programmers are a very small minority, OS X and GNU/Linux being predominant.
It's a time sink because I can never settle on one I like. See my other comment in this thread about searching for that perfect Bloomberg terminal font replacement.
Well, Fira Code, Monoid and Hasklig are quite popular fonts. I personally like arrows and fat arrows, they're so much better than their "composite" versions ( <- -> <= and =>), especially in some monospace fonts where dash is not in the middle vertically. "Shove" symbols ( >>= and <<= ) are also much nicer. The rest is I can live without :-)
Something's weird in the code samples displayed for mononoki. The last </div> and braces are highlighted there, but not for other fonts. Also the digits in the first two lines have different colours.
Yeah, that seems to be because I use sublime text for rendering. Sublimes Syntax coloring was updated recently, so the code is now interpreted and colored differently.
When adding a new font, I like to only render the new one because of the sheer number of screenshots, files and time it takes to redo everything. Currently the site contains 2569 individual images. But I'll look into it later today. Maybe I can fix it. It's distracting right now. Good eye for noticing though :D
Great resource. I could see how it might be useful to add a few filters - like for me, filter out fonts where captial-O and zero 0 look too similar (perhaps none, slashed, dotted -- as I frequently work in/with Norwegian, so the zero shouldn't really look to much like an Ø either...).
I'm sure there are other things that tend to annoy me, that are a matter of taste, but that's the first one that came to mind. Maybe some of them have poor differentiation between apostrophe/single-quote/back-tick?
Which is designed to cover all those tricky cases. Do you still think something is missing?
The reason for not flagging the fonts on those differences is that it's kinda tricky. First it would be a lot of work and increase the complexity of the site. But mainly it's not so clear because some fonts like Monoid and Input actually offer highly customizable options to fine tune for these things like slahed or non-slashed zeros etc
No, I think your compare-page is excellent. I'd just like an (even) easier way to pare down fonts to pick and compare. Personally I don't really care all that much if a font is really pretty, if it falls down on (some) of those.
I get that it would be a lot of work, and a pull request would be more welcome than a comment :-)
Maybe an interface where others could tag the fonts, and have some suggested tags (dashed-zero, dotted-zero, plain-zero; el-one (1 and l too similar), pipe-I etc) -- and a way to filter on those?
I'm not sure it would be all that helpful, but it's an idea as the number of fonts grow. I suppose I could even see that work for a bigger project that included non-monospace fonts.
I added Mononoki to the default comparison and found I like it best of all the san-serif fonts but overall prefer the serifs over san-serifs, particularly Anonymous Pro.
I can only speak for my design process, but i had chosen a double story a for mononoki because a single story a can be really hard to distinguish from an o, especially in a more geometric typeface. Monaco gets away with it because it has very pronounced bowls, but even there it's easy to mistake one for the other.
Some of them use a single story "a" for the italicized form. Consolas, Courier Prime, Envy Code R, Fantasque Sans Mono, Iosevka, Luculent and mononoki, and mabe others that i missed. You can check them out on the "Compare" mode on that page, "var" is rendered in italics :)
I think Monaco isn't freely available, right? I remember this being requested all the time, but there was some reason not to. Feel free to correct me though.
From someting I prepared long ago, easily confused glyphs, depending on the typeface (if you aren't sure what one of the characters is ... perhaps try a different typeface?):
* b69B80Oo
* 1Il|
* ij
* 5S
* 9gq
* co
* rn m
* cl d
* vv w
* .,
* :;
* `'
* ''"
* ' and (curved/smart/curly single quotes)
* " and (curved/smart/curly double quotes)
* ~-
* )]}
* u and (mu)
* v and (nu)
* Capital vs. lowercase letters.
wW
xX
zZ
vV
uU
cC
sS
Note that many of the above are easier to distinguish because they are next to each other and you are conciously examining them. You need to read your code and know a character is a colon and not a semicolon without even thinking about it.
A sample would be nice. Look at this one that another commenter here linked to: https://github.com/i-tu/Hasklig. Samples! You immediately know what it's about.
I don't think a ttf font can't compete with a handmade raster one like Terminus. Maybe on high dpi displays?
Monospace - This is an universal requirement for source code typography.
It's not just an historic artifact from the olden days of terminals, but an useful convention to allow two dimensional structuring and highlighting differences on the character level.
Well, since there are people that swear by using variable space fonts for programming, it's not necessarily a universal requirement. I agree it is a very useful convention though, and prefer monospace fonts for terminals and programming myself.
I'm waiting for the editor with a layout engine that doesn't assume monospace -- the tooling is a bigger problem than anything else for variable-width fonts.
Slightly related, I've been thinking for a while how an editor that tracked indentation and made each indentation/scope a different background shade and/or slightly smaller font might be interesting to play with. Does anyone know of a system that uses this?
Mostly works in Sublime, which I've been using with Input Sans for a bit over a year. The only thing that breaks is indentation guides, which end up in the wrong place.
Has been working in SciTE since ages and SciTE is not even a particularly fancy editor. I used to program Python in proportional fonts which worked pretty well.
Many academic papers and books do this. For example, see the famous paper "Why Functional Programming Matters" [1]. To me, having non-monospaced font in a paper or book is a signal that the contents are "too academic" to be of practical use. This is a very weak signal though - for example, Sally Goldman's excellent book "A Practical Guide to Data Structures and Algorithms using Java"[2] has pages and pages of useful Java code in non-monospaced font.
I think to some degree this is influenced by norms of publishing, some by the constraints of the medium (you have very limited horizontal space), and some by the authors (often) already using italics and bolding within the code for emphasis (such as in your second reference).
Source code typography and programming are two different things.
And by source code typography I imagine more ASCII markup for "drawing" flow charts and structuring for headers which would not align or break entirely with variable space fonts.
A variable space font is good for a programming book where it can be a challenge to fit 80-character wide line of code on a page, but awful for actual programming.
I feel like this is a bit heretical, but I feel like fonts in practice are something that you just kinda get used to after a day of use.
The only time you're really aware of them is when you look at two fonts side by side. So the trick for me has been to use the same font everywhere in my system. For me that's been Noto/Noto-Mono. They're trying to eventually cover all of Unicode and I personally (after a bit of adjustment) really like the long and skinny. It also has really nice Asian characters natively so it doesn't ever look goofy
Does anyone else find most programming fonts to be overly heavyweight? I end up sticking with Courier New because of its light, thin lines, even though it's not a perfect font.
Are there any other monospace fonts with light weights?
I've been rather fond of Adobe's Source Code Pro[1][2]. Notably, it comes in weights all the way down to ExtraLight. My typical setup these days uses ExtraLight in iTerm2 on retina displays. Depending on the display (and sometimes the font renderer), I'll play with combinations of weight and size to find the best fit for a given installation.
(going offtopic) Seems everyone has a different taste. I prefer medium-weight fonts, Courier is way too light for me. Do you work on a Mac BTW? I think there might be some massive rendering difference between Macs and other OSes. You can tell by reading people's blogs. Some authors use super narrow, gray-on-white font, which is generally unreadable on Windows, but I think it may look just fine on macbooks.
Personally, depending on editor (each editor has slightly different rendering, spacing, interline etc.), I'm using DejaVu Sans Mono or Lucida Console.
I dislike Consolas, because it's too blurry for me; so much that I generally immediately delete it from my OS installation, in order for it to not show up when I'm reading coding blogs.
Indeed, rendering makes a huge difference between OS'es. Personally, I find the Mac (and iOS, those are equal I think) rendering quite nice, the Windows rendering reasonable, and the Linux rendering (at least in gnome, don't know about other wm's?) just ugly, but that's just my opinion. :P
The interesting thing is that one part of the optimization for finance was all those special fraction glyphs. I have never seen such weird fractions in actual use, I would have thought people use normal decimal numbers everywhere.
When I worked at Bloomberg, the origins of that font weren't a mystery. I used it on my company-issued Mac and loved it. Whatever they paid for it, the price was definitely worth it.
I don't suppose I'll ever find a suitable replacement, which also means that I jump at every opportunity to try out a new monospace font. I currently have 7 in my .Xdefaults, and these are just the ones I kinda-sorta liked and hadn't deleted.
Which is kind of the opposite experience many people have who work at a company that has its 'company font' which they are supposed to use, but nobody likes to, because it's just print-optimized for design etc, but not screen-optimized for normal work use, and thus makes it a pain to edit documents.
It's one of those rare situations when programmers can benefit from the development of a product meant to please an entirely orthogonal audience: uber-picky finance professionals who stare at screens all day. Life is fascinating, isn't it?
I've considered doing just that, but it wouldn't be the right thing to do. I don't want to make money using something that technically isn't mine to use.
Out of curiosity, I just installed Bloomberg Professional (all 2GB+ of it; contrary to the Quora post, the font package won't run by itself, you have to install the entire program), copied the fonts, and uninstalled it. At no point was I shown any sort of licensing agreement or terms of service. I fell no moral obligation to refrain from local use of some fonts that Bloomberg offered me for free.
Not actually true. When you install the software required for the addons to install, it says quite clearly:
> The software contained herein (the "Software") is made available to you ("You") solely pursuant to the terms of the agreement that You previously entered into with Bloomberg ("Bloomberg Agreement"). IF YOU HAVE NOT ENTERED INTO THE BLOOMBERG AGREEMENT, YOU ARE NOT AUTHORIZED TO INSTALL, RUN AND/OR OPERATE THE SOFTWARE OR ANY PORTION THEREOF IN ANY MANNER WHATSOEVER.
I suppose in the long run, as long as you aren't redistributing it or making a profit off its use, Bloomberg considers its data more valuable than its terminal software or fonts. After all, they do make it publicly available for download without a license agreement. (Shakes fist at Oracle/Sun...)
Disclaimer: I work for Bloomberg building out the infrastructure used to power the Terminal and was involved in the project creating the font from the beginning.
Bloomberg commissioned the custom-designed font from Matthew Carter[1] (Verdana/Tahoma/Georgia fame) because we outgrew the ancient simple bitmap font that was used since the software was moved to run on Windows. A lot of time and effort went into creating it. The font is actually not our property (it does contain other glyphs not created as part of the project and owned by "large type foundry X") and we are granted a license to distribute the font to our customers in our software.
I just wanted to point out that this type of thing comes up all the time and is misunderstood by most people who are used to using FOSS. We can't give away what we do not own, so the license restrictions are not necessarily because we're selfish and don't want something to be open, but because there are actual license fees, contracts, etc. signed with the owner backing it all up. As for why the owner ultimately does not want it to be free -- they are a type foundry and are in the business of selling fonts.
(It's a separate discussion, but this also usually applies to data as well as fonts.)
Typeface designs are not copyrightable-- there's nothing stopping me from looking at (for example) Futura, redrawing it, and selling the redrawn version myself. (Coincidentally, Futura itself, as a popular pre-digital era typeface, has been independently digitized several times by different companies.)
Font files, meaning the specific binary files implementing a typeface on your computer, most certainly are copyrightable and licensable. If I were to purchase Myriad from Adobe, I couldn't just hand that font over to you-- that would be against the license agreement and would qualify as software piracy.
(This is all based on US copyright; YMMV if you're elsewhere.)
As @elcapitan said, licensing is the same as for software. Fonts are intellectual property (IP), just like most other intangible products of R&D. It is too bad, of course, and my usual opinion about IP applies. However, we don't live in an ideal world, and many of us are stuck following rules we don't agree with.
What I'd personally find more interesting is a first-principles research effort to find out what makes some fonts so much better than others. My gut tells me that such an effort might yield, as a side effect, a formal method for creating such fonts that are especially well suited for a specific purpose.
This is quite nice, and I really appreciate the proper differentiation of similar characters. It still gets a bit blurry at low point sizes, though. If you're after a font that is pixel-crisp at small sizes (and don't mind if it doesn't size up all that well), check out Proggy bitmap fonts: http://upperbounds.net/
The @ character in this font looks odd; the center loop is filled in, so it looks like something from Thai script. But no other glyph (in the ASCII range of the font) has this feature, so it is glaringly inconsistent.
I used this for a day, then ditched it. Back to a Courier derivative for me. There is a reason we have fonts with serifs: they provide visual clues to the eyes. Sans-serif is slick, but less readable. We might compare this to taking the high frequencies out of audio. The sound is "smooth", but lacks clarity.
Mononoki looks great in screen-shots; I might consider it again when I'm having some golden piece of source code printed 40 inches wide and framed for hanging on a wall. So long as that code doesn't contain @ symbols.
Pretty nice. Since the line in the 0 is so shallow, it looks a lot like the θ. I prefer dotted 0 because it's a character that frequently repeated as in "100000" and the slants all together there makes it feel skewed and uncomfortable.
This typeface is excellent, and it might replace Envy Code R for me. I've liked working with Envy, but it is nonfree and I don't have permission to distribute it with new glyphs. This is a bummer since I wanted more complete Hellenic and a full set of Cyrillic characters including Ukrainian extras, and was willing to draw the glyphs.
This complete turnoff may be one of the main reasons I switch to Mononoki. Mononoki also looks far better on higher resolution displays, something I'm investing in right now.
Cool, but what I really need to know is if two characters next to each other make a square, such that I can have CJK characters in the same line and not muck up the formatting.
I just got this to work in Windows with gvim. While the mononoki font doesn't have any Kanji in it, in Vim you can separately configure a font for the "wide" characters. I have:
With this, East Asian characters show up fine. They don't look good next to the mononoki but the spacing is good. MS_Gothic looks a bit better, since it has the simplified, blocky kanji strokes.
Basically this mixture of two fonts, one for one-space-characters and another for the Unicode two-spacers, is up to your editor to get right.
I tried increasing the size of the guifontwide. No matter what size I pick, the alignment is correct; for excessively large sizes of the wide font relative to the regular one, the kanji just start to get jammed together. Basically you have to increase their sizes together to avoid the cramping.
Not that it matters, but I wonder where the name came from. It sounds Japanese (although the first part is obviously inspired by 'monospace'), but 'mononoki' isn't a Japanese word. There are many ways it could be interpreted as a combination of two words, though, or it could be a corruption of 'mononoke' (a spirit).
It could be three words: mono no ki. Mono (as 物) is generally "thing," which doesn't really work, but we can assume it's being used as simply mono (in loan form, モノ), short for "monospace," here. No (の) is a particle indicating possession, and "ki" (as 気) is "spirit" or "essence" (with different kanji it could be quite a few other things; Japanese has a lot of homophones).
So I suppose we could translate the name to "the essence of monospace," if we were so inclined, and transliterate it back to Japanese as モノの気.
Congrats to the creator, at a glance this looks nice and readable. If I ever tire of Iosevka I'll give it a try (that's a big if though; Iosevka has the advantage of being both beautiful and narrow, so I can keep multiple panes open comfortably).
on mac non-antialised version looks to be the case with mild jaggies. not that pleasant. if there is a solution i'd like to hear it, font otherwise looks good.
Pretty font but looks like shit in Visual Studio 2015. I blame VS though as it only seems to render Consolas well which has pissed me off a lot since the switch to their WPF-based editor in VS2010. Sigh.