Hermit: a font for programmers, by a programmer
pcaro.es
pcaro.es
> Every glyph was carefully planned and calculated, according to defined principles and rules. For this reason, Hermit is coherent and regular.
I hate to say this, but a font by a programmer makes as much sense as a database library by a font designer. Good font design is not about calculations or following principled rules; it's about what looks good to the eye, and it takes a tremendous amount of skill and experience.
And to my eye, at least, the font is incredibly difficult to read. It literally looks like a font designed by an engineer for a plotter, not something designed for the human eye or legibility.
Good fonts follow intuitive rhythms, they focus on word shapes (not just letter shapes), natural curves, there's a tremendous amount of subtlety that goes into achieving a proper sense of balance between letterforms, and a lot of things are actually different between letters/curves/etc. so that they look the same to the eye in the end. Even with "utilitarian" fonts like monospace ones.
"Carefully planned and calculated" is a great recipe for building a bridge, but not for building a font, unfortunately.
Instead of perfect circles, we use a shape that is taller than it is wide; instead of splitting the space in half, cross-strokes should be higher than the middle; different strokes need to be different widths in order to appear the same, etc.
There are plenty of actual scientific studies and theory behind this. See Ruder's Typography [0] and Hochuli's Detail in typography [1] for more info.
[0] http://www.amazon.com/Typographie-Manual-Design-Emil-Ruder/d...
[1] http://www.amazon.com/Detail-Typography-Jost-Hochuli/dp/0907...
I know different things are important to me when viewing programming text than reading. A simple, somewhat contrived example would be whether 'r' and 'n' together are easily discernible as 'rn' or 'm' (which is mostly a non-problem with mon-spaced fonts). When reading text, I can infer from context what the word most likely should be, but when programming, that's an error waiting to be found at some point.
To expand on this, different programming languages may stress different qualities of a font. From experience, I find when parenthesis look like curly braces in a font, it increases my frustration as it causes ambiguity where there should be none. This may be less of a problem in a language that uses fewer braces.
The 'rn' case is one of kerning, and is an issue independent of the mono- or proportional-ness of the font; it's one of kerning. You can have 'r' and 'n' at full width for the font, and they'll look very 'm'-ish. If you have 'rn' looking like 'm', it's just as awful when you're reading a novel as when you're reading code.
The difference in mix of characters reflects on the design decisions made for the font type. Target use is important. Some types are great for titles, some for text bodies, some for logos. It makes sense to me that code is another category.
Yes, readability is important, but it's not binary. The level and aspects of readability required for a novel body are not the same as for an article title.
Differentiating between zero 0 and uppercase O is critical for code (and work terminals, and perhaps data tables), but IMHO isn't interesting when designing for text bodies. Same goes for 'rn' and other issues that have ever annoyed only programmers.
This is OK virtually 100% of the time, in that there are no circumstances where you'd be confused over which was meant. In contrast, I write 1 and l exactly the same way under most circumstances. That could be pretty annoying if, say, I was doing a geometry problem involving a line named l, since numbers frequently appear in math problems. In fact, I suspect that many other people have had that same problem, since high school geometry textbooks, while they still like to name lines l, use a cursive font for it.
It's very rare for a literary work to feature e.g. one character named Oscar and one named 0scar.
No. Kerning applies to proportionally spaced fonts, not monospace fonts. See, e.g., http://en.wikipedia.org/wiki/Kerning Designing monospace fonts so that character combinations are more readable has nothing to do with kerning.
Right, but not for comprehension the way you read prose, but for technical accuracy of an input to a mechanical system that will read it and which is intolerant of errors even when the meaning is clear from context. For human consumption of prose, fonts that can sometimes create ambiguities of individual characters that are easily resolved from context but which keep the overall shape of morphemes recognizable are mostly fine, for creation of content -- particular content to be read by a machine, they are not.
> General readability matters -- when is it OK for a regular font to be unclear about which character (a zero or 'O') you're looking at?
For readers, quite a bit, because for most purposes, the meaning is clear from context (same with 1/I/l), and because people with more than marginal literacy mostly are recognizing the visual shape of (approximately) whole morphemes, not individual characters.
> If you have 'rn' looking like 'm', it's just as awful when you're reading a novel as when you're reading code.
For the reasons stated above, that's not really true.
This makes the door spacing look equal from our usual standing position.
What sounds good on paper/design (Make the spacing equidistant) can often look terrible in practice.
I think the font looks ok, but the "d" looks bad to me. And I'm not convinced about the "t". Maybe they make sense on paper, and have very nice mathematically correct proportions, but they still don't look right to me.
Just don't get why it's on the front page before release though. I guess for comments, but add a place where I can sign up to be notified when it's done or something...
[Edit: I think the rest of this comment was too negative, and the guy submitting it doesn't seem to be the author of the font, which I didn't realize, so was perhaps not really applicable. Never mind!]
Then again, my first question upon seeing this on HN was "how on earth is this relevant/interesting? It's not even finished!" so discovering that the source for the submission was a tech subreddit is unsurprising.
Just a shame the '8' character looks a bit like an upside down snowman is all I would add.
Plotter fonts are intended to exactly communicate important technical information. They are designed to be highly legible, irrespective of whether you think they look nice.
It's the same with old-school pixel fonts, which had to exactly communicate easily confusable glyphs, instantly, on a low-bandwidth communications channel (an 8x8 or even 9x16 monochrome character cell is very low bandwidth). So a lot of them looked butt-ugly. But they were easier for a programmer to read than if he had been doing all his code in Helvetica Neue.
That's why I do all my hacking in Glass Tty, Terminus, or good old 7x14. As for this font -- it's nice, but not Terminus nice.
Actually, plotter fonts are optimized for pen movements, not legibility.
Legibility isn't the same as readability. ALL CAPS is highly legible, and so are freeway billboards - neither are optimized for high comprehension, high speed, and minimal fatigue during extended sessions.
For example, exaggerating key elements on select glyphs (compare Glass TTY's counter in '4' to AutoCAD's Big Type '4', or the beak on '1') can help at-a-glance perception of plotter output, but exhaust quickly in longer documents.
While I applaud his effort, this is why wonderful movies aren't musically scored by the director or writer - they may know what they want, but that doesn't give them the ability to create it.
Like medicine "created by a school teacher".
If designers want so much that programmers get their fonts from them, they should try to create something that's suitable for programming. That does not seem to be happening now.
And, yes, I quite liked it. If I hear about it again when the author releases it (why didn't he already?), I'll probably try it.
I agree with your general point though, a collaboration between the "user" and "expert" will generally produce something superior; but sometimes there can even be a little bit of a liability having the other party around.
The school teacher thing is a poor example though - that's just marketing trying to make an appeal to authority. Something like if a teacher had designed a desk or chair would be better because their job gives them insight into that as opposed to say, a mail carrier.
PS: I'm a programmer and find the font attractive and easy to read, go figure.
All that said, this font looks pretty good to me as a programmer, (12 point version, at least), and I'm going to try it out when it's available. I've been looking for a good font to use in emacs on OS X and have never found one that I liked. (On Linux, my preference is 9x15.)
I've put 9x15 for Windows here: https://dl.dropboxusercontent.com/u/19746944/cheever.fon (I can't remember how I got it)
I think I even found some unicode support in one or two at some point (technically impossible with the Windows bitmap font formats), but I can't seem to find any right now, bah.
1. The lowercase 'm' is muddled and looks bad without anti-aliasing, downright horrible with anti-aliasing. 2. The lowercase 'k' is "too unique" and distracting (personal taste) 3. The lowercase 'e' is too squished and doesn't read well at small point sizes.
Overall, this font is not horrible. But with every "programmer-centric" new font that gets a bit of buzz, I always end up going back to non-anti-aliased Monaco within a day or two. It just seems like one of those perennial non-problems people keep having a go at.
This font that OP is showcasing isn't terrible, for a first pass, but there are some problems (funny lower case f curve really bugs me. It's overly pronounced) that need to be ironed out.
The former in Notepad++, the latter is perfect for Eclipse, because Eclipse has a very small spacing between the lines (not configurable) and many other fonts look too condensed due to that.
What i would like to see from someone like you, that criticises the work on display, in this instance, would be:
-what font do you currently use?
-what evidence do you have that it was 'designed by a font designer'?
-what evidence do you have that such and such designer made decisions that are more accurate than the ones made here and for what reasons?
-is there a write up by said designer that describes those decisions and possible alternatives and reasons for doing one while avoiding another? .. this is my issue with the post, i feel it is too sparse on self addressed argument ..There are blogs dedicated to the process that help you learn about the process and decisions being made.
For example:
http://ilovetypography.com/2009/12/15/font-design-vesper-typ...
http://ilovetypography.com/2010/10/10/the-making-of-acorde-2...
It doesn't look terrible, is have to try it out on a computer to see if its useful.
This is wrong, and misleading.
Monospaced fonts are usually designed with specific usage in mind. Come one, font designers don't live in a cave. They are usually briefed for how this font is intended to be used.
See, for example, a Consolas case study:
http://www.lucasfonts.com/case-studies/calibri-consolas/
>The first typeface Luc(as) was invited to work on was Consolas, a monospaced font (a face in which all glyphs have equal width).
>Intended for use in programming environments and other circumstances where a monospaced font is required, Consolas has proportions that are closer to normal text, and is therefore more reader-friendly than many other monospaced fonts. OpenType features include hanging figures or lining figures; slashed, dotted and normal zeroes; and alternative shapes for a number of lowercase letters, notably the most problematic character in any monospaced font, the ‘i’. The look of the text can be tuned to personal taste by varying the number of bars and waves in these letters.
>De Groot teamed up with a programmer to test the use of Consolas as a font for coding. “Having a programmer involved,” says Luc(as) with a smile, “I could preview hardcore use on the light-weight notebook chosen to represent his species’ preferred tool.” As the default monospaced font in Windows Vista as well as the Office Suite, Consolas became the de facto successor of the ubiquitous Courier.
(emphasis mine)
The entire Metafont collection, was designed by a programmer.
The OP font, was designed by a programmer.
I come to the conclusion that fonts designed by programmers make more sense than database libraries by font designers, unless Hermann Zapf wrote a framework and I've never seen it.
Similar goals, but different philosophies.
[1] http://www.robofont.com/ [2] http://letterror.com/ [3] http://www.petr.com/ [4] http://en.wikipedia.org/wiki/Web_Open_Font_Format
Having said that, I will not use this particular font, because I like others more, not because of the degree his creator has got.
One quick note, though. One header in that write-up boldly states: "I am not a designer." Have some self-esteem! You're totally a designer. You're taking the steps that real designers [should] take when creating functional designs. You have design principles and goals and are aiming to satisfy those with a little ingenuity and creativity.
You're a designer. Own it!
I like cooking, and I can make some tasty meals, but I am not a chef.
I like drawing things in my notebook here and there, but I am not an artist.
I enjoy the occasional minor home improvement/repair project (renter) and woodworking challenge, but I am not a contractor nor a woodworker.
I've been making web sites and apps for a decade now, and I am a developer. I've been taking photos for a good part of that decade as well and I am a photographer (mostly amateur, though I have made some money from it).
Declaring yourself "a ______" in this way implies that you have achieved some level of experience, or at least that you are devoting or have devoted a significant chunk of time to the pursuit. I just don't know if the creator has put in this time, or considers it a significant enough pursuit to call himself a designer.
This is why we have qualifiers: "I'm an award-winning chef." "I'm a world-renowned artist." "I'm a professional designer." Of course you shouldn't go around calling yourself a doctor just because you once successfully took an aspirin to get rid of a headache. But when it comes to creative endeavors, I think more people should be proud of the creative act itself, even if it's not great on some objective scale. And I wish more people would attempt casual acts of creativity. And I think those who do deserve to wear the title of "artist, "designer," "cook," "painter," "writer," or whatever.
I'm not saying that there needs to be an objective standard of quality or number of hours put into an endeavour - even a terrible fisherman is still a fisherman if s/he practices it. But I wouldn't go fishing once and declare myself a fisherman if I had no followup experience. If I were to say "I'm a fisherman" in conversation, I think it would demonstrate a lack of common understanding about what that sentence implies, or duplicity at worst (trying to curry favour from a fishing enthusiast boss, for example).
I get what you're saying and I know you're coming from a positive place. I just think that it runs counter to the common interpretation of "a(n) _____", and I'd rather preserve that interpretation because it's useful.
It has a very different look and feel though.
I've always used Consolas since it's been out, but after seeing Source Code Pro, that does seem easier to read.
I'm surprised how close is DejaVu Sans Mono to Source Code Pro.
Liberation: http://cl.ly/image/2y2E3m211H1V/Image%202013-09-09%20at%2010...
Ubuntu: http://cl.ly/image/000u0s3E2b2V/Image%202013-09-09%20at%2010...
Anonymous Pro is another excellent choice, very crisp.
I like to code with about a 9 point font, in order to maximize the amount of code per screen without going too far into the illegible. At that size, the proportions of even a single pixel are large enough to make any anti-aliasing annoying. You lose the sharp contrast that every good font needs to have along its edges.
Bitmap fonts are my favorites.
Mine too. Dina is my font of choice for now, also because it does a good job "to maximize the amount of code per screen without going too far into the illegible", among other things. If you code just with ASCII, maybe you'd like to try it if you haven't already.
People don't care about your story, updates, information, etc (as much). They want to see your font. Make it shown at the very top so I don't have to scroll 3 pages to see a screenshot link. Take a look at how other font people showcase their fonts, something like a nice picture like http://blogs.adobe.com/typblography/2012/09/source-code-pro.... is all you need. But showcase it!
Overall though, I actually really like it. I think I'll give it a try when it comes out.
Kerning? It's a monospace font. You don't kern monospace fonts.
I want to like this font. I love the theory and craft behind its creation. And it will no doubt work for some people (just reading through the comments that is obvious).
But from the first view, and at all pt sizes, something felt a little off-kilter. It took me longer to read through the lorem ipsum and other sample text. I had to focus more at the individual characters, which is perhaps exactly the opposite of the goal. And I think this was even magnified by the monospacing.
This font is clean. Nicely designed. But again, it will not work for a dyslexic programmer. The rules became restrictive, forced a little too much individual, systematic design, without looking at the whole.
What I mean is that too many characters are weighted in such a way that it fights the character's basic orientation. The '8', '9', 'e', 'a', and many others, pull themselves down. I 'feel' them swinging on their axis and hanging upside down. I feel other letter's rotating around a vertical axis. The letters feel unbalanced, sitting uneasy on one axis or another. The characters were so over-engineered, I'm not sure they have soul.
But there are many fonts out there, and just because this will not work for some people isn't reason enough to say it won't anybody. Kudos to the effort and experimentation.
The designer should be proud that the worst problems that can be found by picky people who stare at screens for 12 hours a day are relatively minor and easily fixable. Its a good programming font. Once its an "apt-get" away (and what are its licensing terms? I must have missed that part) I'll probably deploy it and use it.
I couldn't be happier with this font, and feel like it was worth every penny. It did take some time to adjust to the narrow width of the characters, but it looks totally natural to me now. I also love that the author keeps updating the font regularly. In particular, adding in the Powerline glyphs was great.
"a bridge for pedestrians, by a pedestrian".
I wonder why when a designer kind of guy tries to get into programming he generally gets encouraged and when a programmer tries to do some artsy/design stuff he gets slammed down ?
Because, despite frequent claims to the contrary, this industry/community/profession is actually pretty damn inclusive.
I also like fonts that look great without anti-aliasing. There are no examples of that there. And that is where it is the hard work begins(in making fonts). Font kerning is a sucha nitpicky process. Especially when you consider many font sizes and have excellent rendering for each on of them (without antialiasing.)
There is no opinion about the font from me - there as there is no font and I can't try that. Probably better compose a font and then ask for opinion.
That said, I find it hard to look at and hard to visually parse. Keep at it though, I have faith that you will hit that sweet spot eventually.
I'm not saying this guy should stop- quite the opposite, please explore, have fun with this, learn. It's the most wonderful thing a person can do.
I don't want to criticize him for trying, I want to criticize us for loving it. Yes, myself included.
We're falling for the same trap that is used in those ads about how a stay at home mom came up with a new skin treatment. People want to believe that they are brilliant, that they are right. When they see someone just like them going against the grain, they want to believe that person is correct.
So the next time you see a post that says "Made by an ENGINEER" and it isn't something an engineer normally makes, do a quick "%s/engineer/stay at home mom/g".
That said, I'm really happy to see more programming fonts! I love Inconsolata[1] and used to use it for everything. However, recently I've been using Source Code Pro[2] and can't break myself away from it.
[1]: http://levien.com/type/myfonts/inconsolata.html [2]: http://sourceforge.net/projects/sourcecodepro.adobe/
This is why static content should be served on GitHub, or a similar zero-cost and unlimited-bandwidth host.
Too bad he's doing it publicly because the first comment I see on HN is insulting criticism. Geez, people, you can't even download the font yet to see if it even works for you! And he's said it's not done yet. Cut the guy some slack.
Anyhow: I fully support hackers who engage in typography and type design. I fancied both the designer/developer of Hermit, as the HN community in general might be interested to hear the opinion of the type design pro’s. They’ve had their dedicated forum since 2000. I cross-posted the link to this thread on Typohile.com in the hope typophiles over there would want to share their views. If you’re interested, it’s here: http://typophile.com/node/106204
The server can not find the requested page:
* /p/hermit (port 80)* Please forward this error screen to pcaro.es's WebMaster.
Does anyone have a cached copy?
Here's a screenshot of my Vim using Anonymous Pro:
One feature I would love to have (for some reason) in a programming font would be ligatures for multi-character operators. For example, >= would turn into ≥, != into ≠, && into ∧, -> into →, => into ⇒, etc. Obviously all of these would have to have extra spacing to preserve the monospaceness (although I'm not sure really how crucial that is, as long as you don't go into fractional character widths).
It just looks like a good presentation font to me, with how clean it is at the larger sizes. Might be my love of 8-bit gaming readable fonts, though.
Nevertheless, nice project! Don't let the naysayers hold you back; programmers can get into font design just like font designers can get into programming.
The x-height is too small, makes some letters undifferentiable at small size.
Also if it's programming, need more examples. For example ( next to <.
I can't tell if this looks ugly or not, before I try it, I really can't relate to the aestethics, before I have tried to use it for a while. What really matters most to me, is how perceivable the source code becomes with it, that is with what ease I read it. I look forward to the download. :)
Notes:
* I think "sadipscing" shows a minor kerning issue after the "i"s in the 14pt example image. Or is it the monospace's odd number of pixels issue?
* Similarly the "k"s.
* Maybe you should substitute the python example with a C one with curly brackets and semicolons...
Anyhow, a very good looking font.
Great job though. I could definitely put this font to use without feeling a strong urge to change it.
Good luck!
That said, I like the font, so am also dismayed that there is no download available.
Which formats are going to be released?
[1] http://i.imgur.com/J7M22rc.png
Also, thanks for sharing. I disagree with any people saying engineers can't make fonts. It's like saying engineers can't possibly have any other skills. Font away!
Argh, couldn't even catch a glimpse
apt-get install fonts-ocr-aConsolas and Bitstream Vera Sans are unbeatable!
Someone with a "living room TV" sized mere 720px monitor is going to have a completely different perspective on what is too big or too small.
This is aside from the "my classes are 5000 lines long" problem which may or may not exist and may or may not be required by peculiar exceptional business needs anyway (required as opposed to being a style "problem")
And to add yet another orthogonal dimension to the problem, I code full screen using awesome as a WM... I use all of my screen for code except two text line equivalents at the top. I can see how someone who is tab bar'd menu'd windowed down at a tiny little fraction of a monitor might need a smaller font just to see anything. I've seen screens decorated up to the point that the actual content only has a post card sized space to work in, surrounded by massive unproductive clutter. They're going to need a tiny font indeed...
Otherwise I like how it looks overall.
noticed the domain is expired tho.....doh
http://hivelogic.com/articles/top-10-programming-fonts
The last 3 fonts listed on the page are really strong for programming.
If you're going to stick with serifs try something like Georgia which is also a warmed over serif font, but somewhat More warmed over than Courier New.
If you want a pleasant holy war right up there with debates about wifi emissions and if religion is true, try suggesting the modern printing and computing world should stick in the sans serif families. There's plenty of journal articles on both sides, etc.
Most debate about font shape is meaningless without discussing color scheme. Grayish blurry-oish text on light yellow medium-large size is what the Slab Serif families were originally invented for two centuries ago ... what a surprise they'll look bad compared to a sans family font (or most anything else) on a pure white backlit background with pitch black letters.
Note that most end users don't really care. The TV/monitor is covered with 1/4 inch of dust and cat fur, they're reading printed matter nearly in the dark and they don't really care what the color temp of their light source is other than it being the cheapest. You're talking about optimizing in the decimal places for the snobs not basic legibility for the masses.
Submitting garbage (non-existent garbage) like that is like promising to do something... later. And never delivering.