Hacker News new | ask | show | jobs
by crazygringo 1788 days ago
It's bizarre that neither the README nor the associated minimal site explains what it does in detail, with screenshots or anything.

I'm assuming this is a modern version of GDI++, which a decade ago brought Mac-style font rendering to Windows, but stopped being maintained a while ago.

For people who aren't aware of the difference, it's essentially that Windows uses heavy font hinting to try to align character strokes with pixel boundaries which produces sharper letterforms at the cost of distortion of the aesthetic personality of the font, while Mac antialiases more to faithfully maintain the accurate letterforms of a typeface, at the cost of being blurrier.

It's basically the tabs-vs-spaces debate of font rendering. Nobody's "right", it's just personal preference. Fortunately, high-resolution "retina" style displays make the distinction much less important, in the same way that it's entirely irrelevant in high-resolution printing.

11 comments

I never understood _why_ but text rendering on windows has always looked like garbage to me.

It was obviously not the screen resolution or anything, because you can run a linux vm (say, on virtualbox) and the text rendering inside the VM will look much better than the text in windows.

> Nobody's "right", it's just personal preference.

I don't think that's true. macos is clearly better.

Interesting, I personally far prefer the Windows one on 100 DPI displays at least. The blurriness is quite noticeable on OS X and certain Windows applications that attempted to use this style of font rendering.

Sure, it's great on higher DPI screens, but then it makes even less of a difference whichever one you use.

I'd say Microsoft made the right call here.

I actually agree. MS went for readability on standard screens for ages, MacOS went for staying true to the typeface's design and printed look, which was laudable, but IMO a mistake on screens before the dawn of high-DPI.
The most notable case was older versions of iTunes and safari for window which did manage their own font rendering and had MacOS style fonts. To me at least seeing both styles in the one OS looked bad and iTunes was the one that stuck out as being "wrong"
> macos is clearly better.

I disagree.

Yes I do prefer MacOS on high DPI screens but, at low DPI, I prefer Windows. It's about how the edges of characters look, as I was saying here https://news.ycombinator.com/item?id=28031314

Which is a fair enough point, but considering the only screens I own are high DPI, MacType is quite interesting to me
Of course, it all depends on your needs. I'm a fan of repurposing old PCs for less demanding tasks so I have a few of those low DPI monitors around the house.
And here is proof that it is personal preference. I hate the font rendering on macOS and think Windows is clearly better. I even think the font rendering on modern Linux distributions is superior to that on macOS.
I don't agree with that. I think it's pretty clearly about preference. On non retina displays, MacOSX really is blurry, and my preference is clear lines, preferbly without antialiasing, an certainly without subpixel AA. I think pre cleartype Windows, Classic MacOS, or X11 with bitmap fonts looked the best, but was not flexible enough for modern requirements.
I still think bitmap fonts are by far the most readable at smaller sizes on lower dpi displays - you can fit so much more code without having to scroll, and I don't find it any harder to read than large TTF fonts on the same screen.

TTF fonts at small sizes on newer ~200+ dpi screens are even better again though. I'd love to try coding on a high res color e-paper screen.

I'm strongly the opposite direction.

In fact, I even built my own font just to make the Windows font rendering look even more crisp and pixelated like the good old DOS bitmap fonts.

I agree that it looks like sh*t, though. But I still believe the readability improvements are well worth the bad aesthetics.

>"I don't think that's true. macos is clearly better."

It is easier for me to read fonts on Windows. And that is all that really matters to me. Fonts on Mac look fuzzy. This "clearly better" is just your perspective. It is not universally shared.

Yes I do use large 4K monitors but I keep text scale at 100%. Otherwise what's the point. The more text I see when programming the happier I am

I get the impression most of these opinions stem from the Windows XP era. GDI rendering is horizontally hinted; but DirectWrite (as released in Windows Vista) is more linear in the horizontal axis (not sure if its entirely unhinted, but it's certainly a very light touch if any). In fact, there's an argument to be made that mac OS font rendering today is less graphically "accurate" than windows' - take a screenshot from a fairly light font at some huge size, and then scale it down in something like photoshop, vs. scale it down in terms of font size. Note that if you do this on macos then at small sizes the font-renderer adds a little bit of font-weight. On windows it does not. In terms of size, both are quite linear, and I dare say most users would be hard-pressed to even tell the difference.

The difference nowadays is so slim, I doubt it matters - assuming your app uses DirectWrite, and not GDI.

Smaller fonts are easier to read on low dpi screens with windows font rendering - that's the benefit. Assuming a high enough dpi display or just larger font sizes mac rendering is likely to look aesthetically better though (although that is still somewhat personal preference)

It's this form vs function distinction that's important here.

I'm pretty sure since Windows 8 Microsoft has focused on making font rendering look very good on high DPI displays at the cost of making them look poor on more traditional low DPI displays. Windows font rendering looks really good on 4K monitors and laptops with high res screens. Not so much on your typical 1080p-fare.
Strange, in my experience fonts look better on Windows at low DPI, and better on Mac at high DPI. I guess it's personal preferences. To me, at low DPI fonts on Mac look as if they had rough edges. At high DPI however fonts on Windows look like the edges are too soft.
There isn't much difference between windows and macos font rendering at large scales - you can try it in something like browserstack, so you can compare two oses on one screen simultaneously. I mean, it's not imperceptible side-by-side, but edges certainly aren't sharper or softer on either.
Yes, it is true that the difference between Win and Mac at high DPI is much less noticeable than at low DPI.
Similar situation in macOS. Sub-pixel anti aliasing was removed in 10.14/Mojave.
macOS mangles font rendering. They have this awfully-named preference called “font smoothing”, enabled by default, which actually enables glyph dilation, which is basically “ignore what the font author said, and make the font fatter than it should be”. This is the worst thing to happen since sliced bread or something. https://news.ycombinator.com/item?id=23553486 gives more details, including the biggest problem: people using overly light fonts because they use macOS that makes them bearable.

Quite apart from that, my understanding (as a non-user of macOS) is that macOS’s font rendering used to be better than it is now, because they used to do subpixel antialiasing but no longer do, preferring to simplify things because it’s not as valuable on high-resolution displays which they mostly (but not consistently) try to shunt people towards. Mind you, it’s still not useless on high-resolution displays, but definitely not as valuable.

I haven't used MacOS recently, but my feeling on Windows font rendering is that it makes the fonts look too blurry. Once you get to a reasonable DPI it gets better, but my distaste with it started on a fairly low dpi, starting with about windows 7 (I didn't use Vista). Before then the fonts used didn't try too hard to use aliasing, and hence had sharp, single-pixel lines, which are much more satisfying to look at.
This is my experience. Font's on windows look blurry and fonts on MacOS look crisp and clear given the same 4k monitor.

I've also noticed certain Windows programs especially installers have their own resolution and it becomes even more apparent.

> For people who aren't aware of the difference, it's essentially that Windows uses heavy font hinting to try to align character strokes with pixel boundaries which produces sharper letterforms at the cost of distortion of the aesthetic personality of the font

Fully agree that it is a personal preference: a slightly distorted shape is something I stop to notice after a day of using the system (I adapt to whatever shape font has unless it is badly distorted like in FreeType with some settings). Blurry fonts on other hand are always look blurry for me.

Personal anecdata: I use MacOS daily and FreeBSD every few days, but when once in a while I boot Windows 7 I always pleasantly surprised how nice and sharp windows fonts look; it is especially noticeable if I compare small font sizes across the systems.

You got it backwards on “I adapt to whatever shape font has” though.

The Mac rendering while a little less sharp means letters always have roughly the same shape, as intended by the typeface authors, while the Windows anti-aliasing distorts them unpredictably depending on where and which pixels they fall onto. Two ‘a’s might look slightly different within the same word because they fall into different alignments on the pixel grid. This is what gives it the wonky appearance.

It's wild to me that on both Windows and OSX that something that is obviously just personal preference is baked into the operating system, with no method for changing it. It's on the same level as having an operating system that didn't let you change your desktop background.
Optionality is one of those things that product managers hate right now, so the likelihood of that appearing if it hasn't already are slim

That said, Windows has highly configurable font hinting/rendering so I'm perplexed as to why this project is a thing

Exactly. Since the beginning of ClearType there's been a tool in Windows to adjust the ClearType hinting. I've used it many times myself. However, as stated before, it's much less necessary with high resolution displays.
Windows is slowly losing configuration. From the very first versions you had complete control over fonts, colours, and sizes of UI elements, then starting with Win8 they removed that, and now in Win10 it's very hard to change something like the font for icons and the (horribly low contrast) taskbar button highlight colour.

It's still possible to force (most of) it to the good old MS Sans Serif and with no antialiasing, the way I like it, but it's getting harder with each new version.

It's configurable but you still can't configure it to anywhere near macOS's rendering - you can turn down hinting from 11 to like 9.5.
> something that is obviously just personal preference

I have a feeling that this exact idea is the reason why most Linux DEs look like crap [to me]. The way fonts look (especially those used in the system UI) is, just like colors or margins, [in my opinion] a matter of design, not just personal preference.

Design is is just what creators do on one end to satisfy the aggregate of personal preference in the target context and audience on the other end.
applies to most open source ux, because noone is allowed to take command which also does a good job of it.

blender is a notable exception, though.

Blender really has turned around in the last few years UX wise. It used to be the go to punching bag when complaining about OSS with bad UX.

See Krita for another OSS project with great UX.

As soon as you realize that changing rasterization strategies alters the bounding box of character textures, and that a lot of UI positions are hardcoded, it makes sense.
Hardcoding UI positions is one of those "you're doing it wrong" sorts of things. At my day job, both the UX/UI folks and the localization folks would have a conniption if I built something with hardcoded UI positions/sizes, or that broke if the size of a string changed. As soon as you have a user with a hidpi display your application is going to look like garbage. As soon as you want to try to support non-English languages all your hardcoded UI work goes out the window.
> As soon as you have a user with a hidpi display your application is going to look like garbage.

And this is what my yearly-or-so foray into Windows shows up - most apps look like garbage. The handling of displays with different DPIs connected to one machine is even worse. This has even been a solved problem _on Linux_ for quite some time.

This likely isn't much of an issue for the operating systems themselves, as they are well globalized and (in my experiences with Windows) adapt fine to RTL and CJK scripts.

Third-party apps, on the other hand, do seem rife with clipped text, even in English at nonstandard DPIs.

Edit: Ah, this was already said by the existing sibling comment.

I believe Windows's approach is localisation not globalisation. Many programmes runs properly only in designed locales, not that programmes run well in any locale.

Chinese/Korean rendered incorrectly on English UI because system hardcoded a font fallback, which put Japanese font first, regardless of how languages are ordered in the Settings. This is largely true for traditional Win32 programmes, like Chrome, Edge, Explorer.exe, etc. However UWP apps using the new UI framework (like Unigram, Intel Command Centre etc) behave correctly if setting Chinese/Korean as secondary language.

It's different on macOS or iOS however, if you set a system locale order as 1. English, 2. Chinese, then Chinese content will render correctly with correct Chinese system font PingFang.

Another issue that is also very important is that Chinese (Simplified or Traditional), Korean and Japanese share amount of the same characters but written differently. That means system must render the glyph in correct variant, like in the example of Source Han Sans

https://github.com/adobe-fonts/source-han-sans/raw/release/S...

> changing rasterization strategies alters the bounding box of character textures

This is big problem on Windows, where the heavy-handed hinting means actual font size doesn't even come close to being linearly related to requested font size. So you can't even make the simple assumptions such as that the same UI layout will work if you render everything at 2x for a high DPI screen.

There's an Adjust ClearType Text entry in the Start Menu that runs a wizard to tune how the anti-aliasing is configured. It asks you which options looks best.
At the same time, everything could be reconfigured at will, but if you can't provider a consistent UX, that wouldn't help a whole lot with sales and customer binding.

How much you can, or can't modify as an end-user probably relates to the HIG and general usability and transferability as well.

In some ways, there have been cases where you cannot change the background of things, or at least not in an obvious way. I suppose it really depends on the specific user and their user-case to have that matter (or not matter at all).

Or in other words - software isn't written to be used, it's written to be sold
This is a good explanation for why open source projects sometimes deliver something more useful - when they are written to be used.
Yep, but it does depend on what you are selling, or what you 'say' you are selling.

Within UX you can focus on many things, be it an abundance of choice vs. known defaults, aesthetic vs. utilitarianism, CAPEX vs. OPEX etc.

I remind you that Microsoft did in fact release an operating system where you couldn't change the desktop background, Windows 7 Starter.
easily change the background, that is; registry editing and even binary patching are pretty common amongst Windows power users. (Why a power user would end up with Win7 starter is a different question. But a quick search shows that it can be done, they just removed the GUI.)

Edit: for those who don't believe me for whatever reason, https://www.howtoguides.org/change-your-desktop-background-i...

What if I want my window buttons on the bottom instead of the top?

What if I want my taskbar in the middle of the screen instead of the top or bottom?

What if I want textboxes to have flashing orange outlines around them?

What if I want the close button to be blue instead of red?

What if I want the Finder face to be a sad face instead of a smile?

Customizability needs to end at some point. Technical details about font rendering is not important to 99+% of users and is only confusing.

Sure, there should be a line somewhere, but not allowing the user to enable/disable hinting is obviously on the wrong side of the line. If it wasn't, we wouldn't have half the comments on this post opining about Windows vs OSX font rendering.
MacOS > System Preferences> General > Untick 'use font smoothing when available'
This was exactly what irritated me and sent me over to this thread-- there's basically no comparison shots to get an idea of how this should look.

For something that's so visual, you really REALLY need to draw the eyes to something that shows why you need to download it.

Same here. The website is bizarrely uninformative. A Windows logo, but it's called MacType with a Mac-style download button, with zero explanation as to what the product actually does. The tagline "the way texts should be" is terrible English and it looks blurry on my screen, so the idea that this is some kind of improved font rendering is undermined.
I always thought the biggest difference was subpixel vs grayscale anti-aliasing.

Prior to very high pixel density screens, I hated the Mac/android font rendering, mostly due to the migraines caused by my eyes straining to correct for the seemly out-of-focus text blur.

>I always thought the biggest difference was subpixel vs grayscale anti-aliasing.

It's mostly hinting. Windows actually doesn't do subpixel antialiasing in many applications anymore. (such as Start menu or new Settings panel)

Of course it does.
I don't understand why you write an incorrect comment when checking whether GP is right takes literally seconds in front of a Windows box (open start menu, screenshot, enlarge, clearly not using subpixel AA).
It's because that is exactly what I did. And the text in my Start menu has AA? I'd be really surprised if any text doesn't have AA.
> Fortunately, high-resolution "retina" style displays make the distinction much less important

Ahhhhhhhhhhhhhh.

Windows machines are still primarily 1080p. Windows renders font differently that macOS/iOS and is lower resolution. The number of graphics designers that fail to test their font or content on 1080p Windows machines is too damn high!

A side-effect of Windows pinning fonts to pixels is that you can't get arbitrary font sizes and scaling. E.g. I had to use “font-size: 82%” in CSS, because at 80% the text looked bad (pinned to the wrong pixel, and possibly became blurry, can't remember for sure). Likewise, zooming in browsers was a mess.

This was ten years ago, so dunno if anything has changed.

You were likely looking for 81.25% which—with the universally accepted default browser font-size of 16px—equates to a whole 13px (16 * 0,8125).
Afaik 16px only relatively lately became the ‘default size’ on the web. I'm not even sure that ‘css pixels’ were a thing ten years ago. But it's possible.
I’m not exactly sure either but that is around the time I got started with css and I can still recall a lot of these 16px conversion ratios[1], they must have hade some significance.

Edit: now that I’m thinking about it, I (used to) use Spotlight for the conversions which was introduced in Mac OS X 10.4, released in 2005.

[1] 62.5% for 10px, 87.5% for 14px, etc.

I always find Windows the worst of the 3 (comparing to either Gnome or Mac), so they must be doing something wrong there. I remember you can tweak it in control panel though?

Used MacType back in my window 7 days and I remember being quite happy with it. These days when I tried it out on windows 10/11 it does not seem to improve the experience much, perhaps fails to patch some elements of the UI, I don't care enough to investigate.

On Linux or at least on Gnome Tweaks both hinting and anti aliasing can be adjusted according to the preference and they look excellent. Is that not the case with Windows?

On macOS I remember having to explicitly enable font smoothing in Mojave for non retina displays to fix the blurry fonts, But I don't think it did much difference.

On CRT screens win8 rendering was crazy blurry for me until I installed mactype
Yes but unlike Tabs-vs-spaces or vim-vs-emacs, in this case at least ClearType is right and the other one is wrong...