This was posted to HN a couple of years ago. Has it changed since then? The discussion back then was fairly comprehensive, and most of the comments in here will likely replay the same questions (ligatures, comparison to other fonts like DejaVu sans, I vs i, etc.).
This is an infuriating experience on mobile. Show me white background and black text with your font. I'll be damned if I'm going to learn new paradigms in scrolling and waiting just to then notice I can't see anything anyway because it is a responsive 1080p screenshot of 12pt text.
I scrolled down for an example, saw the screenshot of tiny text and assumed that either I've gone blind or that screenshot is shit; I'm going with the latter. Maybe it looks better on a computer with an apple on it, but not on ubuntu / chrome.
Hack seems to be a nice font, otherwise. I don't know that I would switch to it as my primary, but I'll gladly add it to the collection of 20 or so "programming fonts" i seem to have collected over the years.
Does anyone program in <= 12pt type? I'm looking at this "specimen" link[1] and 12pt seems unnecessarily small. I can read it clearly, but I feel like I'm working harder to do so. 16pt is more my style.
(Had no trouble zooming the screenshot to legibility on an iPhone SE. What do you want to bet the site was designed in an exclusively fruit-machine shop? They're getting to be pretty crap for dev work lately, too, but that's another discussion.)
I use 9pt fonts in Emacs on my personal laptop, because otherwise I can't use my preferred layout (a maximized frame containing three vertically split windows) and fit enough code on a 13" display.
With a high-DPI display, it's workable enough - at 72dpi it'd be a disaster, as I had opportunity to discover during a brief flirtation with a netbook. Workable though it be, I'd like to find a still broadly similar font that made pairs like i/l and ./, more easily distinguishable at such small size. Hack is not that font; it appears to be a slightly modified Vera/DejaVu Sans Mono, which is no bad thing to be sure - I've used that font exclusively for many years - but hardly revolutionary.
To be clear, I'm not sure whether Hack actually is a modification of DejaVu Sans Mono, or whether it's a novel design. Doesn't change what it looks like either way. And some decisions seem much more driven by style than by usability - for example, curving the tail of the i, to match the l, would actively harm legibility compared to DejaVu Sans Mono, where l's distinctively curved tail makes it very easy to distinguish from every other glyph that consists primarily of a single vertical stroke. That's one of the two most commonly confused groups, and so I'm not really seeing a strong legibility rationale for making one of its members less distinguishable from another.
I do. But the 10-point characters in my editor are the height of the 13 pt characters on that page. For comparable readability, my 10 pt "Droid Sans Mono" is more readable than the 18 pt "Hack" on that page.
But that screenshot on the splash page is utterly unviewable, especially inappropriate given that their subtitle is "Hack is hand groomed and optically balanced to be your go-to code face."
For a minute I thought I must be getting really old, but then it became clear it's just shrunk down. Nobody uses fonts that small, right? right?
A lot of fonts feel like this. It's only once you set a whole page set in them it they start to look different especially when you do side-by-side comparisons.
Programmer fonts are even more samey as they are used at such small sizes comparatively and of course have the additional constraint of being monospaced (most of the time).
Personally with the amount of code I stare at each day even an oddly placed pixel can be annoying.
They have a nice playground which lets you try different fonts. Give it a go: http://sourcefoundry.org/hack/playground.html (click once on the fonts dropdown then use the down arrow to compare them quickly)
I know. I just use one of the available monospace fonts on whatever OS I'm using (there's always at least one). I'm just too lazy/apathetic to bother with installing one of these things.
I used to feel the same way. Then for some reason Source Code Pro caught my attention on someone else's screen. Now I set up all my Dev environments with that (plus all the fancy extras for zsh).
If your project involves picking a default likable font for others to use it makes sense.
Also, in the larger scope of things all the "good enough"'s at times add up to something awful. Had we perfected everything the bothering wouldn't exist. You would look at the font and click some button to have or have not become it part of your collection.
I was using proportional fonts for a couple weeks. A problem I ran into was that in coding styles that I typically work with, you need to align stuff with spaces to match some artifact on a previous line (e.g. an opening paren of a function call). At that point you pretty much need the space to be as wide as any non-whitespace character that might appear there, otherwise things end up looking wrong. This is what basically killed it for me. a) I don't like how it looks. And b), I don't want to have patches bounced over formatting trivia that I don't notice.
I've been using proportional for a few years now and can never go back to typewriter fonts (code just looks wrong). This looks really nice, I was looking for a proportional coding font. I'll have to give it a shot!
Too bad it doesn't include programmer ligatures, I've been looking for a proportional font that included those (I tried hacking them in myself but couldn't figure out the font hacking tool chain).
I'm not adventurous enough for proportional fonts, but the monospaced Input looks quite nice. And I'd not heard of it before. I'll definitely give it a spin.
... admittedly not great for small sizes due to the striping, but awesome for a relazing at a big giant terminal window and doing various simple things.
If you are used to DejaVu Sans Mono (or its ancestor Bitstream Vera Sans Mono), you might like Hack as well — it modifies DejaVu Sans Mono to make it even more suitable for source code and introduces a number of nicely aligned glyphs (geometric shapes, etc.) for use in terminals and status lines.
Great for both terminal emulators and code editors alike.
Extra credit if you can read that hires text on an Apple ][ color monitor (or NTSC color TV), where you get one color per two pixels, with seven pixels per byte, and some very quirky rules for figuring out the color!
The Apple II's Hi-Res mode was peculiar even by the standards of the day...
Each pair of adjacent pixels generated a single color pixel via artifact color, resulting in an effective resolution of 140×200. The lower seven bits of each byte represented the pixels, while the most significant bit controlled the phase offset for that block of pixels, altering the color that was displayed...
Finally, another quirk of Wozniak's design is that while any pixel could be black or white, only pixels with odd X-coordinates could be green or orange. Likewise, only even-numbered pixels could be violet or blue.[4] This is where the so-called "fringe benefit" comes in. The Apple video hardware interprets a sequence of three or more turned-on horizontal pixels as solid white, while a sequence of alternating pixels would display as color. Similarly, a sequence of three or more turned-off horizontal pixels would display as black.
I use and enjoy this font. Easy and clear to read, and not having to patch the fonts for Vim Powerfline saved a little time (although nearly all patched fonts are available in the AUR).
Honest question here, does anyone else have no idea what font they are using in their text editor?
I use emacs, and don't have a clue as to what font I'm using. It's monospace, and that's about all that matters to me. As long as I can tell the difference between I, 1 and l - I really couldn't care less.
Code has to be readable. Those serifs aren't merely decoration: They're visual cues that help your eye intuitively determine which letter is intended by a given shape.
Sans fonts may look "clean" but they actually take your eye longer to read.
"So before you go around claiming that serif typefaces are easier to read than sans-serif typefaces, you might want to do a little checking around. The embarrassing truth is, there's no solid research to back up that claim."
The best thing about Iosevka is that it's configurable in so many different ways. You're not limited to a configuration that the author of the font thinks to be the best. The attention to details in Iosevka is also notable (like the alignment of special characters). Iosevka is very balanced: it looks good both in a source code editor and a terminal.
When I looked at ligatured fonts a few months back I went with Monoid instead, it fits my uses better, and I was especially attracted to the triple-equal ligature for JS contexts (in Monoid, `===` is rendered as a long ≡ making it visually very distinctive from assignment or regular equality).
Only good match is bitstream vera sans. I prefer Hack because it is lighter (cf. i) The only thing I prefer in Vera is the 0. The dot inside the zero in Hack is too big.
Which font to use depends on many factors.
First of all fonts don't look the same under various font rendering engines, and those engines have parameters leading to even more variations.
Then, your screen is another factor. With a lot of dpi (e.g: 4K or superior) you can pretty much anything you want since most fonts will look very readable.
Like what? Installed it with absolutely no problem at all in both Sierra and High Sierra (GM) -- and never had issues installing it in my older Mac OSes (or any other font -- some fonts created by amateurs --free .ttf varieties-- have broken metrics/config and you're warned about it sometimes. Other than that, absolutely zero issues).
>to be fair, the process for installing fonts on OSX is horrible anyway
It's literally double clicking on a font file and clicking "Install Font" on the preview that pops up.
UPDATE (& TL;DR & Introduction!): Killing Font Book between operations avoids all sorts of errors and weird display issues you'll get if you try to install multiple font files in a single 'session'. Open Font Book from fresh, locate font files in Finder, drag them into it and you'll do everything in one operation, and it will even update to show you what's happened!
> Like what?
Errors about duplicate fonts. Several occasions where dialogs open and close immediately, indicating some kind of problem, but not sure what. Even after going through the "yes, please do really install this font, even though there are 'duplicate fonts'", nothing seems to happen sometimes.
I've managed to install three of the fonts (font variants?) — Regular, Bold, and Bold Italic — but Italic refuses to install altogether.
> How is that in any way "horrible"?
Having to open four separate font files, then click a button each time to actually install them seems like a pretty tortuous process — I'm grateful it was only 4! It would be a LOT nicer if I could just select the files, right-click and choose "Install font(s)" and have it all done in a single step. That's totally aside from all the errors.
Having said that ... pro-tip: drag-and-drop. I always forget that drag-and-drop is sometimes the 'first class' way of doing something on OSX. So the quickest way, I think, would be:
1. Open 'Font Book'
2. Locate files in Finder
3. Drag and drop from the latter to the former
This process finally allowed the "Italic" variant to be installed. I'm assuming it will work with multiple variants at once; I would test that, but trying to remove the family/variants in Font Book just gives me a 'no-op' (after a confirmation dialog).
>UPDATE (& TL;DR & Introduction!): Killing Font Book between operations avoids all sorts of errors and weird display issues you'll get if you try to install multiple font files in a single 'session'. Open Font Book from fresh, locate font files in Finder, drag them into it and you'll do everything in one operation, and it will even update to show you what's happened!
Oh, I rarely happened to need to install multiple files in the same Font Book "session". At best 4-5 files for the different fonts of the same family (X bold, X italic, etc) -- might be why I'm not seeing those issues.
>Having to open four separate font files, then click a button each time to actually install them seems like a pretty tortuous process
Having been there in 1997-200x era Linux, where you had to manually edit config files and jump through hoops to register fonts (and they wouldn't even work across all desktop environments and toolkits) I really don't see the issue...
That said, you can just drag and drop multiple font files into Font Book if I'm not mistaken. In fact, you could just drop them into your Fonts folder and they should work too -- no clicking required -- don't know if Apple removed that, used to work at least in Snow Leopard days.
You never get it complaining about duplicate names that aren't, or have to kill and restart Font Book after installing each font because otherwise it will silently fail to install the next one? You never have it pick a random display for the "font problems" dialog, and then open that dialog buried under every other window on the display?
It was fine in Mavericks. In Sierra it has been a minor player among a very sizable collection of annoyances.
Most welcome! And, yeah, it was kind of a desperation move on my part, but I've found Sierra and the 2016 15" Touch Bar model to be a major regression in that regard. Took most of a week to get external displays to work sort of reliably, and even still I get a hard lock and have to power-cycle if I incautiously plug in the displays before waking the machine.
WOW! The website looks so shiny just for hosting a single font. Almost thought it was some website advertising Hack the language related stuff. Great web devs behind the site. Kudos to you.
Glyphs that are commonly used in status lines of terminal applications (editors, shell prompts) to delineate sections and to indicate the status of various things (e.g., the current character encoding, line-endings, git status, git branch name, etc.).
These glyphs include a number geometric shapes and symbols. By using a font that supports them with the proper metrics, the status line looks sharp and flawless.
I'm not sure about the origin, but I believe they are some glyphs originally introduced for vim's powerline (https://github.com/powerline/powerline you can see some pics there with the glyphs in use) that allow for cool looking status bars etc on the terminal.
Does anyone like the way they've done the dotted zero? I've always disliked it personally. If they offered a slashed version I would definitely try it out.
Pleasing to the eye, but too wide for my taste. I like to have divide a 1080p screen into three columns of 80 chars width, and most fonts are too wide for this.
If you're referring to a vertical 1080p screen, which is pretty common for developers, then you'd need a 4.5-pixel-wide font, which would be extremely difficult to read (5-pixel-wide + 1 border characters are probably the limits of having recognisable characters for the full ASCII range), but with it horizontal then only 8 pixels wide would be sufficient, and there are plenty of fonts in that range.
Various 8-pixel wide "VGA"/"DOS"/"IBM terminal", as well as the classic "6x13" and "7x14" fonts which are my favourites, would qualify.
I used to think that, then I saw Monaco on an old Mac at 10pt and I changed my mind.
Windows doesn't render fonts the same way so I wound up creating a near clone of Monaco @ 10pt on a Mac and called it Monocle. I fixed some things that annoyed me along the way.
Because it's a short, extremely common, word in our field. Choosing to use it will cause confusion, and it's also rather insulting to those who wanted to use it but restrained themselves for the greater good.
There are a lot of things that have the same names as other things. Given the unaccountable absence of namespacing or package prefixing among the generally accepted set of natural human languages, a bit of disambiguation now and again is just the price we pay for using fast, fluent natural language parsers instead of writing SQL queries. In this case, Google understands "hack font" just fine.
Never found that to be the case. "hack font" gives me just the font-related links in the front results -- same with "go language" etc.
And never had an issue finding Apple or Facebook related stuff and being shown actual apples (the fruit) or Apple (the record company) or facebook (the high school thing).
> What if there is a font named Hack and a language
Then one gets confused between them. Next month a story on HN will be titled "New version of Hack released". That's confusing.
> (which, FWIK, exists as well)?
Yes I know. That doesn't weaken my point!
> Would it hurt anyone to use context to know which of the two is talked about?
Of course. Every time one has to spend effort additionally clarifying one's meaning (or worse, someone else's meaning)causes a bit of "hurt". The more popular the project the more the hurt compounds.
A case in point: all the people on HN who click through to discussions on ML thinking it was about the language only to find it's an article about machine learning, or vice versa.
> In fact if it's "extremely common" then already there's no such concern. Now it just has N+1 uses.
I didn't mean it has N different uses as a proper name. I mean that it's a commonly used word as a non-proper-name that represents one concept or a collection of very similar concepts.
Ornithologists shouldn't call their new font "Wing" and we shouldn't call our new font "Hack". The other way round would be fine.
>Then one gets confused between them. Next month a story on HN will be titled "New version of Hack released". That's confusing.
For 1 split second. Every year or so. And only if there's no other context in the title (e.g. www.facebook.com).
>Of course. Every time one has to spend effort additionally clarifying one's meaning (or worse, someone else's meaning)causes a bit of "hurt".
It also exercises the brain for the broader world, where things are not always humanly managed and/or cleanly designed, and only need the least possible effort.
https://news.ycombinator.com/item?id=10140728