top | item 8009528

The Best Programming Font: M+

75 points| tmcw | 11 years ago |macwright.org | reply

93 comments

order
[+] KhalPanda|11 years ago|reply
> "The best monospace font for programmers is M+."

Seems there's a bit of a grammar issue here, I've fixed it for you:

"My favourite monospace font for programming is M+."

[+] ramblerman|11 years ago|reply
It's considered good writing style to write the first sentence, the second is implied.

Unless you're presenting historical facts or figures, If every sentence in an article had the author qualify himself with 'imo', 'that's why I think that', etc... it would be a pain to read, and the argument would be a lot weaker.

[+] duaneb|11 years ago|reply
How is that a grammatical error? The first sentence is well-formed. If you have personal issues with the title, that's something entirely different.
[+] asdf3asdf|11 years ago|reply
Speaking of "grammar", this trend of beginning a sentence with "Seems" instead of "It seems" is getting annoying.
[+] Gracana|11 years ago|reply
I think it depends on your audience. If I expect pedantic responses, I might prepend my assertion with "I think."
[+] ajarmst|11 years ago|reply
Hmmmm. When teaching basic physics, I sometimes have trouble illustrating the difference between energy and work for my students. But this solves it! Post something with a title of "The best x for programmers is y", and you can watch the expenditure of an enormous amount of energy - yet, zero work.
[+] izzydata|11 years ago|reply
"Retina Displays"

So I guess it looks bad on high resolution screens that aren't on apple devices? Why do people even use this term when not referencing magical apple lingo?

[+] sp332|11 years ago|reply
Because it has better branding, and fewer syllables? You didn't have any trouble understanding what was meant, and I'd guess no one else reading the article did either.
[+] adamors|11 years ago|reply
I've yet to find a font that I like more than DejaVu Sans Mono. It strikes the perfect balance between being monospaced and looking good IMO. Plus it's open source easily installable everywhere.

I've tried almost every other "programmer" font but there's always something that rubs me the wrong way. In the case of M+, it just looks thin and silly.

[+] tormeh|11 years ago|reply
I looked it up in gedit, and it turns out Dejavu sans mono and Ubuntu mono are practically identical. Really minute details. I prefer Ubuntu because it's less fuzzy on my non-retina screen, though. For fun, try Tex Gyre Chorus Medium and show it to a programmer and say it's your favorite programming font.
[+] pera|11 years ago|reply
Yeah, DejaVu Sans Mono is perfect, though sometimes I also use the new Source Code Pro and the old ProggyCleanTT (like when I'm working for several hours and my eyes need something more sharp).
[+] Touche|11 years ago|reply
I'm a professional programmer. I know quite a bit about computers. I don't claim to be the smartest guy in the room but I'm no dummy.

And I have no idea how to install a font. I download the zip and open it and there are 43 (43!) ttf files. I can install them by double clicking the file and selecting Install Font.

But then what? I now have 43 new fonts, but how do I know which one to use in my editor? Can someone explain this for a dummy?

[+] estevez|11 years ago|reply
To install multiple fonts on Arch and Ubuntu I just copy them into `~/.fonts` and run `fc-cache -v`.

edit: On OS X the directory is `~/Library/Fonts`.

[+] ww520|11 years ago|reply
What editor are you using?

In Emacs, put this in the .emacs file to set up the default font at startup.

(set-face-attribute 'default nil :family "Source Code Pro" :height 110)

[+] bithush|11 years ago|reply
A little too thin for my tastes. I quite like Consolas or good old Courier New. To me the font width isn't all that important compared to the font height as I am not pressed for width but an extra couple of lines visible vertically is almost always wanted. Consolas is a nice balance at 11pt.
[+] omellet|11 years ago|reply
False. The best programming font is Consolas.
[+] smacktoward|11 years ago|reply
Is there a legal/practical way to use Consolas on any OS other than Windows?

The last time I looked into using it on my Ubuntu workstation (which was admittedly a couple of years ago), it involved manually extracting the font files from the installer for MS's standalone PowerPoint viewer application, which was both clumsy and probably against the viewer application's license.

[+] awalton|11 years ago|reply
Honestly, Inconsolata is the better Consolas.

But I've gotten so used to the Deja Vu family of fonts being the default monospace font everywhere on Linux that I don't know if I could go back to using it again.

[+] Marazan|11 years ago|reply
Double false, monofur is the champion of programming fonts.

Monofur is also known as "Oh my god that's horrible why are you using that?" by my heathen work colleagues.

[+] facorreia|11 years ago|reply
It's more condensed horizontally, but has a greater line height. As a result, I can see less lines at a time with this font.
[+] pbreit|11 years ago|reply
In many/most editors you can adjust line height (although in TextMate it is surprisingly hard to perform such a thing).
[+] donniezazen|11 years ago|reply

  mplus-fonts-common.noarch : Mplus, common files (documentation…)
  mplus-1c-fonts.noarch : M+ C is optimized to be proportioned and has two variations
  mplus-1m-fonts.noarch : M+ M emphasize the balance of natural letterform and high legibility
  mplus-1mn-fonts.noarch : M+ M emphasize the balance of natural letterform and high legibility
  mplus-1p-fonts.noarch : M+ P is aimed as sophisticated and relaxed design
  mplus-2c-fonts.noarch : M+ C is optimized to be proportioned and has two variations
  mplus-2m-fonts.noarch : M+ M emphasize the balance of natural letterform and high legibility
  mplus-2p-fonts.noarch : M+ P is aimed as sophisticated and relaxed design
Looks like Fedora users have a lot of choice. Which of these is the author talking about?
[+] mgmeyers|11 years ago|reply
M+ M are the monospaced fonts
[+] cmpaul|11 years ago|reply
Maybe it's because I'm getting older, but no programming font comes close to Monaco in terms of clarity and character balance and spacing (vertically and horizontally).

Ultimately it comes down to being able to patterns quickly in the code. You can train yourself to do this with any font.

[+] jggonz|11 years ago|reply
I personally prefer to use Times New Roman.
[+] awalton|11 years ago|reply
Using a serif font face for programming? You are a brave man.
[+] platz|11 years ago|reply
Bitstream Vera Sans Mono occupies a nice middle-ground on Linux for programming, almost like Monaco but a little clearer, if more boring. Have preferred compared to others so far.

I couldn't get Monaco, a little more eccentric but sometimes nicer to look at, to render correctly on Linux. Wierd line heights and hinting problems.

[+] ChikkaChiChi|11 years ago|reply
The 0 should always be slightly more oblong than the character O, even if you are using a slashing it.

Other than that, this is a decent retina font, but so are Anonymous Pro, Inconsolata-dz, Consolas, and Source Code Pro; and those all also come with options for Powerline.

[+] ww520|11 years ago|reply
I've tried different programming fonts, and finally settled on the old Source Code Pro font. I don't like overly narrow font. It's just a personal preference. There's no "best" in subjective personal taste.
[+] mtford|11 years ago|reply
I'm a huge inconsolata fan myself.
[+] grmarcil|11 years ago|reply
I just compared Inconsolata and Consolas side by side and couldn't believe how similar they actually are. Whenever I just swap between the two, it's hard to compare, since Consolas seems to run about a point bigger looking than Inconsolata, so I have to scale it back a bit to give a real comparison.

Not surprising considering the author of Inconsolata cites Consolas as his primary inspiration, but I'd never noticed exactly how close they are. Both great monospace fonts. Very nice characters, but what really makes them stand out to me is that they both manage their kerning very well, especially around thin characters. Many other monospace fonts, including M+, end up with awkward gaps that approach a full space width and give the text a slinky-like compression/decompression effect, making reading and determining word breaks at a glance difficult.

[+] codeitup|11 years ago|reply
Also a strong Inconsolata fan, it's one of the first things I change on a new editor.
[+] thathonkey|11 years ago|reply
Fonts are quite the subjective thing. M+ looks a little on the thin side to me. I greatly prefer Menlo (regular, which happens to be the default for Sublime Text on OS X) or Consolas.
[+] TheOtherHobbes|11 years ago|reply
I'm not sure that font choices are entirely subjective. Legibility matters, and it's not impossible that better legibility means fewer bugs and less eye/brain strain.

It would be cool if there was objective research into this. (I don't know of any, but I haven't tried searching very hard.)

I can't look at M+ without seeing M+. With other fonts - I'm old-fashioned and like Menlo, but I've tried many others - all I see is code.

[+] kps|11 years ago|reply
M+ thin is too thin, and M+ regular too bold, for my taste. And though I do like leading, M+ has too much built in; it's easy for a user to add, but difficult to remove.

Currently I use Fantasque.

[+] gr3yh47|11 years ago|reply
to thin, to tall, and most importantly the x height is much too high so CamelCase is less obvious
[+] pbreit|11 years ago|reply
It's surprising to me with the advent of retina screens that there are so few narrow options (M+ is the only one I've seen). Aesthetics aside (although M+ is quite pleasing to the eye), I think the narrowness functionally =is= better.

However the line height is quite tall which I'm not sure is an attribute of the font or text editors. TextMate still inexplicably has terrible line height management (you have to mess around with 2 terminal command settings).

[+] andrewchoi|11 years ago|reply
Is this a new kind of holy war? First we warred on what platform to run, then what we run on the platform, and finally how we display what we run on these platforms?