It's hard for me to imagine ever finding anything better than Ubuntu Mono, but for those who haven't found a love of their font-life, now might be a helpful time to relink to the one slant article I ever saw: http://www.slant.co/topics/67/~what-are-the-best-programming...
The letter l on it's own at small font sizes resembles the number 1 in other fonts too closely. In fact, my default sans font (DejaVu Sans) has the 1 shaped just like the Inconsolata l. I'm sure it's something you get used to but I personally prefer the style used in DejaVu Sans Mono or Ubuntu Mono, where the l shape can't be mistaken for anything else.
The italics are amazing - very visible and distinct from the regular font, making it a great tool for validation. E.g. it's very noticeable when a CSS rule is not italic all of a sudden (misspelled). It adds a nice layer on top of colors to distinguish between different states.
Don't know if it's only me, but I keep changing/cycling fonts and color schemes of my terminal every few weeks or so. Currently using Source Code Pro with ZenBurn. Will give Ubuntu Mono a try tonight.
I resist making any changes to my fonts/themes. I can spend hours sitting there tweaking them instead of just sticking with something I know (Menlo + Monokai for instance) and then just getting to work.
ubuntu mono doesn't seem to scale well, at least on my tests in notepad++ on windows. Once I get to 12 point it starts acting like it's bolded. Source Code Pro and Consolas don't seem to have this problem.
I've always used Consolas since it's been out, but after seeing Source Code Pro, that does seem easier to read.
Ubuntu Mono renders superbly in Ubuntu, but I agree with you that it doesn't render particularly well on Windows; when on Windows, I sadly go back to DejaVu Sans Mono.
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.
That isn't what it looks like on my computer. I suspect this image has been resampled because even aggressive hinting wouldn't generate such rough forms at 11 pt.
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.
Second that. This is what a professionally design font for programmers look like.
I am going to design "a washing machine by programmer for programmers" and hope it doesn't explode into someone's face when it's plugged into an electrical outlet.
Looks interesting. Really wish I could download it now. I definitely want to see it when it's done, but how will know when that is? If I had even a beta version to play with I'm much more likely to remember to check for updates later.
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.
I this is a really font, and I appreciate the clear set of rules and guides that help establish the coherence of the font. However, I dislike the overall appearance and I think I'll be sticking the the default Sublime font (Menlo) which I have no trouble reading and is more aesthetically pleasing.
I studied the Lorem Ipsum (thats why its there) and the "es" doesn't look so hot either next to each other. Or was that "se" hard to tell.
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 really like the m, not fuzzy and I can tell right away it's an m. To me it's not so important how pretty it is as much as how easy it is to tell what is what. Lower case k looks really good to me too, too often that and lower case h are sort of fuzzy and hard to distinguish in small size.
Is the shading effect that is visible on the glyphs a part of the font or due to some postprocessing done by his font renderer configuration? I think it looks rather bad, but I've always disabled Cleartype et al.
I usually code around 10pt - more would mean I couldn't fit enough code on the screen... Are you talking about coding at 24pt? I'm interested why you'd do that?
Screen DPI varies widely and usually isn't correctly configured if it is at all. My main coding desktop is a little small at 14pt and probably should be a big larger. This is a pretty small monitor holds just a little more than a piece of physical paper and is driven natively at 1280x1024.
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...
I'm only going to pay attention to a single method anyways, so I don't need much on the screen. It's very lovely to read at that size and I don't need to strain my eyes at night.
I worked at a printing company a long time ago (although in IT not as a graphics artist), and its a slightly rewarmed serif font thats about 200 years old and designed for newspaper levels of contrast (thats what it was used for two centuries ago).
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.
We're talking about programming fonts here, though. Serifs have been proven easier to read than sans-serif fonts in usability studies. Also, there are multiple advantages to using monospaced fonts in programming applications.
> 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.
It's important not to oversell the touchy-feely/what-looks-good side of this. Font design is certainly about planning and calculation, it's just that those calculations need to be based on optics rather than geometry.
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.
What about the difference in use? Do you know of any work that examines whether there is a difference in the importance of attributes depending on whether it's for programming or reading?
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.
You read code when you're programming. The only difference is the mix of characters you'll see near each other. 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?
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.
> You read code when you're programming. The only difference is the mix of characters you'll see near each other. 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?
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.
> when is it OK for a regular font to be unclear about which character (a zero or 'O') you're looking at?
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.
"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."
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.
Possibly related, the fact that when you hang a door, the gap between the top hinge and the top of the door, should be smaller than the gap between the bottom hinge and the floor.
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.
Similarly, I once heard a story that http://en.wikipedia.org/wiki/David_(Michelangelo) has a bigger head than usual because people would be looking at it from a funny perspective, and foreshortening would make it look strange if the proportions were not changed.
Wow, that's a boring attitude. I think it's great this guy is interested in typography and crafting his own fonts, and that the results are quite nice, professional or not, with the right principles or not.
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...
Sorry if I come across as too negative -- I definitely 100% support people trying out new things.
[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!]
While I agree with your original comments, not sure I agree with this. It's the #2 story on HN because HN readers upvoted it that way, no "fault" of this guy. And being on HN, I think it is the perfect forum for feedback, the guy even states criticism is welcome, it's as much a learning process for him too.
It's negative, but I can definitely appreciate the honesty. Those who don't like it can ignore it, but I'm happy to see comments like this peppered about rather than a series of congratulatory messages and "obligatory" pats on the back.
Providing real, honest feedback is the only useful reply. Kudos to you. If your assessment is negative, then provide negative feedback. If it's positive, positive. No need to over-flower everything, we're all trying to help each other around here.
A weird role reversal. Many of the tech communities on Reddit are garbage.
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.
From what I've seen, /r/programming is about as bad as any. But people read it anyway because there isn't really a better programming subreddit. (Some of the very specialized ones are better, like for specific languages, but the wide-audience subreddits seem to be full of people who do not have much experience and are more interested in one-upmanship than in talking shop.)
It literally looks like a font designed by an engineer for a plotter, not something designed for the human eye or legibility.
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.
> 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.
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.
Readability is a loaded term here. Code readability may or may not be the same as the readability of prose. Readability based on a font in one programming language may not be the same as in another programming language. I would question any assumptions otherwise, without sufficient reasoning to back them up.
Font looks fine to me, the characters never seem to run into one another oddly. 1, l, and I; 0 and O; g and q - they all look very different even in small sizes. I might consider switching.
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.
When all the musicians only want to do musics that won't fit a movie, yes, a director should go on and score his own movie.
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.
There are directors who have scored one or many of their own films, such as John Carpenter, Robert Rodriguez, and Clint Eastwood. It's true that excepting the ones who have a strong music background director-composers usually produce somewhat simpler and critically not-acclaimed scores but they also often end up working well. Look at the Halloween theme; it's a very simple melody but it somehow captured the mood of the film and people's imaginations.
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.
Agreed. For an excellent description of the dedication and artistry it takes to create a good font, have a look at the film "Learning to See as an Artist", produced by Edward Tufte, describing the life and work of designer Inge Druckrey: http://vimeo.com/45232468.
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.)
Yup, the old Windows bitmap font versions have been around for ages - I've found I get better results with TTF though.
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.
I think the font is decent, but I won't use it in its current iteration for the following reasons:
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.
Agree with your assessment. I searched high and low for a font that serves as a programming font for quite a while. For the longest time I loved Inconsolata and some of it's variations. After a while I got tired of it though. It seemed... sloppy, even though I loved it at first. I think what it lacked, for me at least, was consistency between glyphs. Some where straight and angular, while others curved and it just didn't fit. Now I have settled on DejaVu Sans Mono and it seems to be working for me. It's very balanced and the glyphs are very evenly spaced and take up pretty much the same visual foot print for each glyph. Highly recommend.'
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.
I've actually started using Deja Vu Sans Mono for a programming font. There are definitely still some annoyances but it does seem to do better than most I've come across.
I prefer when the font is rather thick than thin, which leads to using sizes like 14, and I've found that Lucida Console and DejaVu Sans Mono work best for me.
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.
i feel like this is a good argument if you could show some evidence that another font designer put any thought beyond mere aesthetics in thaer decision making.
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 ..
It's a fair corrective, but don't forget Knuth -- a programmer who learned a lot about typography and designed quite a few good fonts (http://en.wikipedia.org/wiki/Computer_Modern). Arguably his fonts aren't the most "well designed", but they have their own Knuthific charm, and they're very legible.
Except PROGRAMMERS don't generally deal in anything remotely resembling proper grammar that real Font Designers train for. Real fonts are designed to minimize punctuation especially repeated punctuation and programming languages all use special characters nearly as much as alphanumerics.
It doesn't look terrible, is have to try it out on a computer to see if its useful.
>Except PROGRAMMERS don't generally deal in anything remotely resembling proper grammar that real Font Designers train for.
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.
>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.
My font of choice, Inconsolata, was designed by a programmer.
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.
Then you should check out the work[1] done by the brothers Erik[2] and Petr[3] van Blokland, e.g. Guess who wrote the draft for the W3C specs of the .woff @font-face format? [4] A type designer.
If the end result is good, then it will be good, no matter what methodology is used. While I can agree with your conclusion, your argument is just another authority argument, and I hate those.
Having said that, I will not use this particular font, because I like others more, not because of the degree his creator has got.
I would have to actually try it out before commenting on the readability, but I do find what I see on the one screenshot provided kinda sexy. Tastes differ! Maybe it's not the ultimate monospace font to end all monospace fonts, but personally I've seen fonts I liked much less coming from "actual designers".
I don't think it's perfect, but I respect the attempt.
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.
I appreciate your positive attitude toward expanding one's skillset, and I agree that he should remove "I am not a designer". But I believe the creator when he says that he is not a designer, and I don't think it would be appropriate for us to say that he is a designer at this point.
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.
I get what you're saying, but disagree. "Chef" kind of already means "professional cook" and "contractor" is kind of a legal term when it comes to construction, but if you draw in your notebook, you're definitely an artist. You may not be a good one! And you may not be professional. But who cares?
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 too wish people would attempt casual acts of creativity and be more proud of the creative act itself. But they can do that without being "a(n) ______" after their first and possibly only attempt.
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.
In 8 point font it reminds me a lot of the fonts you'd see in old low-res (320x200) videogames. I didn't look in close, but the corners even looked darkened like you'd see in those sorts of fonts.
Looks good to me but I think I would prefer if the cross bars (eg: on t and f) actually crossed the vertical lines a little bit. Also that upper hook on the f looks somewhat comical.
Great job though. I could definitely put this font to use without feeling a strong urge to change it.
Making the crossbars cross the vertical lines would also allow the the character to be more centered. At the moment at smaller sizes you get a noticeable gap between the 't' and the 'a' in 'potato'.
There's no download link. That means the font doesn't exist. And what grinds my gears even more: by submitting NOTHING the submitter has earned by hate and the maker of the font, no matter how nice the font may or may not be, will ensure that I will never mention the font to anyone. And if anyone dares name the font they will be getting an earful in return.
Submitting garbage (non-existent garbage) like that is like promising to do something... later. And never delivering.
194 comments
[ 5.2 ms ] story [ 238 ms ] threadIt 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.
I am going to design "a washing machine by programmer for programmers" and hope it doesn't explode into someone's face when it's plugged into an electrical outlet.
http://www.dafont.com/bitstream-vera-mono.font
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/
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.
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.
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...
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.
> 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:
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.
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.
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.
https://github.com/sunaku/tamzen-font
[1] http://i.imgur.com/J7M22rc.png
[2] http://terminus-font.sourceforge.net
[3] http://ethanschoonover.com/solarized
Great job though. I could definitely put this font to use without feeling a strong urge to change it.
That said, I like the font, so am also dismayed that there is no download available.
Which formats are going to be released?
Submitting garbage (non-existent garbage) like that is like promising to do something... later. And never delivering.