programming fonts

noftus's picture

Interesting list of links to fonts, suitable for programmers:

http://keithdevens.com/wiki/ProgrammerFonts

Tim Stadelmann's picture

It's fascinating how many of them are bitmapped. I've often noticed, and never fully understood, that a large number of programmers prefer pixel fonts. Is this a kind of, possibly subconscious, nostalgia?

I'm generally quite old-fashioned, but I've always felt that decent (not even good!) quality antialiasing combined with a reasonable screen resolution have made programming enormously more pleasant.

Si_Daniels's picture

>I’ve often noticed, and never fully understood, that a large number of programmers prefer pixel fonts. Is this a kind of, possibly subconscious, nostalgia?

When ClearType was invented and tested on people at Microsoft the biggest initial critics were some of the programmers (AKA developers) - initially the phenomenon of people not liking ClearType was dubbed the "developer effect" - however over time attitudes have changed. The ClearType team conducted research that demonstrated that more bugs could be identified in code samples displayed in Consolas under CT than could with a sample displayed in Courier New under bi-level aliased rendering.

canderson's picture

"Black and white, single-bit bitmaps still out perform all other screen rendering technologies for small text in readability studies, even ClearType."

The above quote is from John Hudson in this thread.
http://typophile.com/node/18685?from=50&comments_per_page=50

I think programmers prefer pixel fonts because they have higher contrast, and are therefore more legible at small sizes. They aren't as pretty however.

Si_Daniels's picture

Not to contradict John as I'm sure he knows much more about this particular study than I do, but it wasn't a readability study, it was a bug spotting study.

I think you're likely right about the preference for high-contrast and non-pretty fonts - perhaps that's why so few programmers use Mac OSX* ;-)

Cheers, Si

*Braced for inevitable flame war.

John Hudson's picture

Not to contradict John as I’m sure he knows much more about this particular study than I do, but it wasn’t a readability study, it was a bug spotting study.

Yes, I wasn't referring to the code bug spotting test, but to general reading accuracy test results comparing b/w, greyscale and ClearType rendering, as presented by Kevin Larson at the ATypI conference in Vancouver (2003). Greyscale performed most poorly, while ClearType came in a close second behind the b/w rendering. I'm not sure what text sizes and resolutions were involved in the test, though, and I suspect as resolutions increase the gap between ClearType and b/w will narrow and eventually invert. I believe the key is in the consistency of stroke colour, which obviously is completely consistent in a well-formed b/w pixel pattern, less consistent in ClearType at today's typical resolution, and very much less consistent in greyscale antialiasing.

Miguel Sousa's picture

> that’s why so few programmers use Mac OSX

They simply don't know what they're missing. Like them, I didn't really know one could program with a Mac, until I got one. The truth is, one can do anything with a Mac, even run Windows :^P

Si_Daniels's picture

It was a joke, but it would be interesting to contrast the fonts used by programmers on the Mac and those using Windows or Linux.

Cheers, Si

canderson's picture

By default XCode uses Monaco for code, and LucidaGrande for everything else. At defaults, it looks like Monaco isn't subject to text smoothing, even though its size is above my 8 pt threshold.

In Terminal.app, font smoothing is actually disabled. You can change the font and size, but most proportionally spaced fonts look very strange if you try it. The terminal coerces them to become monospaced.

I would love to see a good comparison of Monaco to Luc de Groot's new Consolas, which is sort of the state-of-the art for monospaced fonts. We could decide which font squishes its "m" better. I suspect Consolas will be much smoother.

Tim Stadelmann's picture

Well, I may be atypical because the main reason I got a Mac is that I needed a UNIX that could reliably do power management and suspend on a laptop... but I tend to use the same font as under Linux and occasionally Windows, Bitstream Vera Sans Mono. Before that it was Andale Mono. I'm giving Consolas a try now, it looks very promising - thanks for the pointer!

I've no idea what they were thinking with Monaco, that typeface is just terrible. Its almost unreadable at small sizes, and looks Comic-Sansish silly in large sizes. But at least they do allow you to turn on antialiasing in Terminal, it's a check box in the display settings tab.

On the readability of pixel fonts, my personal observation is that fonts that normally use lines only one pixel wide (as is often seen in old GUIs and windowing IDEs) are very difficult to read, while bolder fonts that have two pixel strokes (as used to be the norm on text-only CRT terminals, and the VGA DOS console) are much better. It might be worthwhile to check whether that can be generalized, and if so, it should be taken into account in studies.

Rob O. Font's picture

"Greyscale performed most poorly, while ClearType came in a close second behind the b/w rendering. I’m not sure what text sizes and resolutions were involved in the test, though, and I suspect as resolutions increase the gap between ClearType and b/w will narrow and eventually invert."

With all you don't know, how do you know, that it was even a "test" then?

What res.? what size? What grey scale fonts? (that's the real puzzler...)

Si_Daniels's picture

>I’ve no idea what they were thinking with Monaco, that typeface is just terrible. Its almost unreadable at small sizes, and looks Comic-Sansish silly in large sizes.

Heresy! You'll be thrown out of the cult for criticizing part of the "beautiful typography" TM* ;-)

Cheers, Si

*http://en.wikipedia.org/wiki/Apple_Typography

dezcom's picture

Sounds like a case of Terminal Typography, you read best what you read most :-)

The best part about Monaco is the Grand Prix :-/

ChrisL

canderson's picture

"I’ve no idea what they were thinking with Monaco, that typeface is just terrible."

As Sii's link points out, Monaco is the monospaced "city" font from the original Mac. I'm sure they were thinking that they needed a legible monospaced font for a 512 x 342 pixel black and white CRT. The limitations of monospaced typography put the squeeze on wide letters and try to artifically stretch narrow letters. The "a" and "i" in Consolas are probably taking a safer route to legibility.

canderson's picture

Personally, I use bitmap fonts every day. I think my main uses are the Windows Command Prompt, my phone, and my music player. Does anyone know if there are 8-bit bitmap fonts? If so, phone makers could create fonts that had a cleartype look without the rasterizer. Fonts on my phone, at least at this point don't need to scale.

Si_Daniels's picture

>If so, phone makers could create fonts that had a cleartype look without the rasterizer.

I'm surprised too but most phone and device fonts make me shudder - they could do so much better even witihn the constraints of b/w or grayscale if they wanted to.

John Hudson's picture

If so, phone makers could create fonts that had a cleartype look without the rasterizer.

Not really. You would only be able to address the full pixel, not the subpixels, so the colour effects would be pretty noticeable.

John Hudson's picture

What res.? what size? What grey scale fonts? (that’s the real puzzler…)

Word identification test (comparing CT, antialiased and aliased text):
TFT-LCD display (1024 × 768; XGA; 106 dpi) using its native resolution.
Nominal 10 pt Verdana (custom gasp table setting to permit antialiasing for test).
I had misremembered the results: in this test, CT and aliased actually scored almost identically (c. 64% accuracy for both roman and italics), with antialiased text scoring very badly in comparison (43% for roman, 28% for italic).

Gugerty, Tyrrell, Aten, & Edmonds, 'The Effects of Subpixel Addressing on Users’ Performance and Preferences During Reading-Related Tasks', in ACM Transactions on Applied Perceptions, Vol. 1, No. 2, October 2004.

Kevin Larson's picture

The study John referenced is in this paper:

Gugerty, L., Tyrrell, R.A., Aten, T.R., & Edmonds, K.A. (2004). The effects of sub-pixel addressing on users’ performance. ACM Transactions on Applied Perception, 1, 81-101.

Res: 106 dpi (OS set to 96 dpi)
Size: 10 point
Font: Verdana Roman and Verdana Italic

ClearType: compatible widths ClearType
Black & White: Hinted black & white as appears by default in WinXP
Grayscale: Hinted grayscale as used by the WinXP OS (the font GASP table needs to be modified to display at that size)

This was a tachtistoscopic word naming study. They found no reliable differences between ClearType and black & white, but that users named grayscale words at a reliably less accurately.

Cheers, Kevin

Rob O. Font's picture

"ClearType: compatible widths ClearType"

"Black & White: Hinted black & white as appears by default in WinXP"

"Grayscale: Hinted grayscale as used by the WinXP OS (the font GASP table needs to be modified to display at that size)"

Thanks Kevin!

If: the font GASP table needed to be modified to display at that size, Then: the font most likely was not hinted to be used at that size...or did that problem not occur for some reason not stated? Also, do you know why they used 10 pt in this particular study while in all to others I've seen, they used larger sizes?

canderson's picture

Not really. You would only be able to address the full pixel, not the subpixels, so the colour effects would be pretty noticeable.

Aren't subpixels being manipulated any time something other than black and white is being displayed? Isn't displaying a picture of ClearType the same as displaying ClearType if it's being displayed pixel-for-pixel?

Kevin Larson's picture

10 point is the most commonly used size in the studies I've worked on. 12 point is the next most common. Verdana is believed to look particularily good at 10 point.

Grayscale used the hinting done for black & white such as grid-fitting. This has the effect of sharpening horizontal and verticle stems. Diagonals appear blurred and appear more three dimentional than than. This does not give the even appearance of traditional grayscale, but we think the extra sharpness benefits readers.

Cheers, Kevin

Si_Daniels's picture

>Not really. You would only be able to address the full pixel, not the subpixels, so the colour effects would be pretty noticeable.

I have to disagree with this too - there's nothing preventing someone from rasterizing an exisitng font using the CT rasterizer and making a color bitmap font from the output - you'd loose any sub pixel positioning, you'd have to do it for both BGR and RGB, and adjusting the gamma would be tricky, but apart from that the results could replicate what you see in Windows XP exactly.

Cheers, Si

Tim Stadelmann's picture

>“I’ve no idea what they were thinking with Monaco, that typeface is just terrible.”

Ah well, that was a bit flippant and I should have been more precise.

>As Sii’s link points out, Monaco is the monospaced “city” font from the original Mac. I’m >sure they were thinking that they needed a legible monospaced font for a 512 x 342 pixel >black and white CRT.

Most certainly. The city fonts were definitely a big step forward in screen typography back then, and I'm aware that the monospaced font was a particular challenge as they must have wanted to fit an entire text console in a window considerably smaller than the screen, which leaves you even fewer pixels to work with than on a text-only terminal. And they arrived at a solition which worked remarkably well given the constraints. The outlines were then needed so that you could get a decent printout in true WYSIWYG spirit.

The real question is, what where they thinking when making this the default in OS X, when 512 x 342 had become somewhat uncommon? Probably that Mac developers are used to it...

Rob O. Font's picture

"Grayscale used the hinting done for black & white [such as grid-fitting.?]"

I don't understand why this was done. Do you know? I mean, it seems like: the CT was made as good as possible...the B&W was too...then, the GS used the B&W's hints, the CT's subpixel positioning? adjusted the gasp table, and...(Failure assurance in 1/3 of the presentation to the user seems like a high percentage for a good test.)

It seems, not only narrow to test this on; a, or a few sizes, a font or two, a few users — but narrow and slanted if you mismatch 1/3 of the solutions. I feel that we can only truely solve this if we can grasp and harness the gasp, hints (and outlines only as a last resort), to satisfy the increadibly wide range of screens, renderizers, fonts (incl. other scripts), users and sizes!

This is a huge area for "the user to be in control" and I just don't get it, I guess, 'cause you're spendin' millions in tests to limit the possible solutions drastically.

John Hudson's picture

Carl: Aren’t subpixels being manipulated any time something other than black and white is being displayed? Isn’t displaying a picture of ClearType the same as displaying ClearType if it’s being displayed pixel-for-pixel?

Si: I have to disagree with this too - there’s nothing preventing someone from rasterizing an exisitng font using the CT rasterizer and making a color bitmap font from the output - you’d loose any sub pixel positioning, you’d have to do it for both BGR and RGB, and adjusting the gamma would be tricky, but apart from that the results could replicate what you see in Windows XP exactly.

Sorry for the brain-fade moment and resulting confusion. I wasn't thinking in terms of rasterising a ClearType font and creating a colour bitmap font from the result. I took the original suggestion -- 'phone makers could create fonts that had a cleartype look without the rasterizer' -- to imply creating colour bitmap fonts from scratch using some form of bitmap editing tool. Yes, of course, one can address the subpixels by adjusting the RGB levels -- doh! --, but it would still be darned tricky to emulate CT rendering manually, which is what I was thinking about.

It's the sort of thing we could probably talk Hrant into doing, though. :)

Kevin Larson's picture

David: “‘cause you’re spendin’ millions in tests to limit the possible solutions drastically.”

Sorry, I’m still learning the cultural differences of working with typographers. I think the choices made in that study were all reasonable ones. We thought the grayscale solution we tested was the best one available. Reasonable people can certainly disagree with any of our choices in the study. Perhaps a different font, size, or type of grayscale would change these results. When a psychologist disagrees with how another psychologist’s study was carried out, it is perfectly acceptable to rerun another's study with different parameters.

I recommend getting a psychology student at one of your local universities excited about studying typography. Students frequently need good project ideas and can run studies at low costs. I’m not interested in limiting possibilities, but can’t investigate every possibility myself. I’d be happy to have more people running studies on typographic possibilities.

Cheers, Kevin

Si_Daniels's picture

>It’s the sort of thing we could probably talk Hrant into doing, though. :)

The very first CT experiments that I saw were done manually in Paint by Mike Duggan but once he'd demonstrated that the idea actually worked, things moved on to a modified version of the rasterizer within the space of a week or two.

Cheers, Si

Si_Daniels's picture

As the original subject was programming fonts I should mention that Consolas is now available as a download for licensed Visual Studio users.

http://typophile.com/node/19728

Cheers, Si

twardoch's picture

I've been using Lucida Console for programming for years now. I tried Consolas briefly but gave up on it. Of course, the problem of Consolas is that the way it renders without ClearType is a catastrophy. Consolas has some very handsome design features but it's still no match for Lucida Console. The only disadvantage of Lucida Console is that it doesn't have a Bold and an Italic.

A.

canderson's picture

the problem of Consolas is that the way it renders without ClearType is a catastrophy.

I tried using it in Terminal.app, for fun. The above comment is accurate. Consolas kind of looks like de Groot rummaged around his workshop to find parts from different fonts he could combine. This is what pretty much has to happen for a monospaced font, and I like the results. Here's a rough comparison or some letters that are quite different than Monaco:

Monaco is the one with the ziggy 'i' and 'l'.

twardoch's picture

Some people have observed that the Consolas font pack download (http://www.microsoft.com/downloads/details.aspx?familyid=22e69ae4-7e40-4... ) is only available free of charge for licensed users of a Microsoft Visual Studio product. What is often overlooked though is that Microsoft now offers free Microsoft Visual Studio "Express" editions (http://msdn.microsoft.com/vstudio/express/ ), which are also eligible for the Consolas installation.

So altogether, the good news is that it is possible to obtain Consolas (and a bunch of programming tools on top of it) completely free of charge. If you use Windows, of course.

A.

Rob O. Font's picture

JH: "with antialiased text scoring very badly in comparison (43% for roman, 28% for italic)"

:) 43%, 43% preferred greyscale over CT ? That's bad? It translates into...around..150 million users.

K:"Sorry, I’m still learning the cultural differences of working with typographers."

I don't think it's "typographer" culture you need to be concerned with, It's the users.

"but can’t investigate every possibility myself." I'm suggesting that you only make recommendations based on exactly what you've tested, and not allow your masters to spread false positive results over environments, fonts and users to which they don't apply, a.k.a the "big lies" previously mentioned.

Rob O. Font's picture

I should ask first sorry: Gugerty, Tyrrell, Aten, & Edmonds, ‘The Effects of Subpixel Addressing on Users’ Performance and Preferences During Reading-Related Tasks’, in ACM Transactions on Applied Perceptions, Vol. 1, No. 2, October 2004.

Verdana, hintweaked for CT 57%, Verdana alias-hinted output in grey scale with the wrong kind of spacing for the hints - 43%...What's being tested here? Are they human users?

Kevin Larson's picture

David "43% preferred greyscale over CT ? That’s bad? It translates into…around..150 million users"

This was a tachtistoscopic word naming study, not a preference study. The participants (adult human readers) accuracy at word naming was measured. Participant's ability to accurately name words was reliably poorer when the text was rendered in the grayscale text than when rendered with CT or b/w.

Rob O. Font's picture

"tachtistoscopic word naming study"

Thanks for that, I had forgotten you told me about this before.

But the point is, you claim through this study that according to "users" you can tachtistoscopically word name better in b/w than in grey scale, with a Sans @ 13 ppm. But it's l-l-like saying in a retail market, "I can get closest to your exact change by rounding to the nearest dollar, okay?"

In other words: the test must have included faulty typography as a certainty because for any sans at that size, there at least 12 pixels that are much better, (reading at least, I'm not sure about tachtistoscopically word naming), between 67% and 87% black, then they are in black, and there are also a hand full at 12%-30% that help a lot, that are otherwise the background. These numbers, are of course, larger for serif.

Can you show the grey scale font or not?

Syndicate content Syndicate content