I honestly don’t remember how many times I tried switching to Linux as my main desktop OS. In the end, all the things I use a PC for are already there – browser, ssh client, rdp client, multimedia player, Eclipse etc. I could easily invent a few semi truthful reasons, but to be honest with ya, I didn’t like the way it looked. And the thing that kept me repelled most were fonts. The text didn’t look the same way it looked on Windows.
I think I owe you an explanation here – I get attached to my fonts. They are very important part of my life and I have managed to keep fonts on my desktop aligned with my idea of correct fonts for a very long time… Everything that was different was bad – how simple is that?
Windows 95, Windows 98 and 2000 defined the fonts. Windows XP has brought to the humanity the awful technology of ClearType, which fortunately could be kept off. No harm done. With Vista it wasn’t that easy – although one could still switch is off, some of the dialogs would persist on using ClearType. But there was escape route – the crowd around was shouting Vista sucks, so it was easy just to join them and keep my “Windows alike” fonts. When I think about it, I managed to keep same fonts for roughly 15 years!
So, on Linux desktop the fonts were always unevenly spaced, unfocused, blurry, chaotic etc. Pick your own. Trying to understand why the glyphs look different, I did a lot of reading. Hinting, BCI, subpixel rendering and subpixel positioning are the terms you mind find around the Web. And I have learned that there are two main camps out there when it comes to text rendering – Microsoft and Apple.
Microsoft – hard core hinters
Microsoft philosophy is to hint the glyphs very much, disturbing their shape, weight and width while make the glyphs appear as sharp as possible. Don’t get me wrong – it isn’t necessary a bad thing to do some tuning – in the end we are using screen displays and can expect the letters to be comfortable to read.
Unfortunately such approach encourages something ridiculous: designers would use typeface which is not designed for screen – like Arial – for content that is displayed on the screen only – like websites – and expect the hinting to take care of the quality on the screen. It is so common, probably the first site your browser opened today already did that (google.com).
I am pretty sure most of you already know how it does look. Just in case:
The situation gets even worse when you are using WYSIWYG applications. They require undisturbed text flow and would be nice if your printed page was as dark as you can see it on the screen. I don’t want to dig into that, but just compare the two paragraphs below. The left one is rendered in standard 96dpi, the right one in 166dpi (zoomed 2x) and then sized down to 58%. Notice how differently the text gets wrapped. The carefully placed hyphenation got damaged!
I know – newer APIs shipped with Vista and Seven do not hint fonts at all. But majority of applications on Windows will use old GDI and have hinted fonts. Word 2007 does that too.
Apple – it has to be pretty
Apple has philosophy of rendering the glyphs on the screen as close as possible to their shape. This means no hinting at all. For users used to the Windows approach, the resulting text might seems a bit blurry, dirty, even difficult to read (ask Mac users, they will not find anything wrong about it – you just get used to it).
If you like it or not, the facts are that the glyphs on screen look like they were designed. It also eliminates most of the problems in WYSIWYG editors – your print will look exactly the same the text looked on the screen.
If you use Windows and want to test yourself how the text on MacOSX looks like, install Safari, open the preferences dialog (CTRL+,) and switch the font rendering method.
Both approaches are contradictory. It seems that it is impossible to have sharp fonts without losing the overall feeling of the text. Fortunately, there something to be don. Very comprehensive article Texts Rasterization Exposures gives a lot of suggestions how to improve the font rendering accuracy while maintaining the clearness and crispiness.
Most of them are not widely implemented, but fortunately there is FreeType2 library. It’s autohinting module is capable of vertical hinting only. I haven’t seen any Windows application that would utilize it, but on Linux desktop (I have been testing Mint Linux 9, a flavor of Ubuntu 10.04) both Chrome and Firefox utilize this feature. And it works great! Have a look yourself…
Keep in mind that this is rendered with Arial – typeface not suitable for screen. Below the same text, with Arial replaced with Liberation Sans – a totally free typeface that introduces the same metrics, but in my humble opinion looks better on the screen.
I, a creature of habit, who kept his fonts virtually unchanged for over a decade, would like to sign the petition to developers.
Use the vertical hinting!
It gives it all – the advantages of not hinting (undisturbed text flow, correct glyph shapes and accurate feeling of grayness of the text) while maintaining high contrast.
Strangely enough, Chrome for Windows uses some hacks to use standard Windows GDI font rendering instead of FreeType2. Chromium developers (and Firefox guys too) – how difficult would it be to allow user to select which font rendering method he prefers and give users the freedom of switching between GDI and FreeType2?
I can also think about a fancy font preference screen, that would allow user to define font substitution. In result particular desktop could display more suitable font than Arial, when this is defined in the site stylesheet.