Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Victor Mono – A free programming font (rubjo.github.io)
180 points by ingve on Oct 26, 2019 | hide | past | favorite | 122 comments


Cursive unfortunately looks very distracting. Having to context-switch when reading the code between two character sets is going to be exhausting - I felt it even when looking at the example screenshots, I can imagine how taxing it would be to go through hundreds of pages of code in this mode. The non-cursive letters look pretty clean but I'm afraid cursive kills it as programmer's font for me.


The font includes both cursive and normal italic variants. The non-cursive version is in the files ending with "Oblique". I set the editor to only use cursive for comments, that works nicely for me - in actual code it would definitely be too much.


Oh thanks. I didn't realize you could enable italics only for comments. That's exactly what I was looking for!


Been using this font for about 6 weeks now, and from my experience i actually found this super readable and easy on the eyes. Had to just make font size slightly larger in VS Code, but very happy with this.


I appreciate the effort, the font looks solid, but I really don't understand the new trend of using italic in the code syntax. It seems like every trendy frontend engineer has their sublime text or vscode set up with a font that uses italic for imports, comments, etc and I really don't see the appeal.


From the OP's section titled "Why?" :

> When it comes to programming fonts, I prefer something strict, readable and relatively condensed for the code proper, complemented with a more informal, flowing and human style for things like comments and reserved keywords.


Also from FAQ :

> A programming font with cursive italics and ligatures is the worst idea in the world. This is absolutely horrible. BTW, I am really angry.

> [Answer:] Not really a question, but anyway: People actually like different things. And it's OK. It's OK if someone else prefers a different font for code than you do. We don't have to use the same one. ️

(though obv. parent post is not hostile like this Q)


> hostile

You probably have never heard a cursing Italian.


Shouldn't it be called "A sophisticated programming font" then? :D


only if it is also "for humans".


Seems like the submission title was changed in the meantime?

When I made the comment it was "The sophisticated programming font".


Which only moves the question back a step. Why, exactly, make reserved words, comments, tag attributes, etc., explicitly less readable than the rest of the painfully wispy text?

I find this font terrible on a readability basis to start with. The italics just double down on the hatred of eyes. I get a designer wanting to imitate a lot of currently popular san serif fonts (though not why they would make the font so skinny and less readable than those fonts), but coding fonts are meant to be comfortable and readable, not pretty.


Considering the author of this font pretty much made it for their own use, the answer to your question becomes: because that's their personal preference. No one needs to justify what font they prefer.

Then they decided to be nice and share it with the world for free.


Thank goodness the idea that something is free must automatically shut down any criticism hasn't taken over. We wouldn't have anything good.


Not sure how you drew that conclusion. But asking "why <subjective aesthetic preference>?" is not going to get you anywhere. Someone made a font for their own use because they personally enjoy. They then shared it for free with anyone else who might also enjoy it. There are certain color combinations I prefer for text and background that other people probably hate. I couldn't tell you why I like them, though.

Readability can be generalized (tiny text is almost universally difficult to read) but it's also very much a personal thing in other ways. You can criticize one's preference all you want but it hardly seems productive. I get a lot of flak for preferring green apples to red apples, but no amount of convincing will change my mind.

>Which only moves the question back a step. Why, exactly, make reserved words, comments, tag attributes, etc., explicitly less readable than the rest of the painfully wispy text?

I have no insight into the author's mind, but I can only assume the answer is, "because they prefer it that way." Why else would they have taken the time to do so if it's for personal use?


Agreed, no one should be above criticism, even if free.


It’s something similar to syntax highlighting. We (or at least myself) doesn’t ‘read’ keywords to read code, it’s mostly syntax highlighting and the ‘shape’ of the code around the keyword, and the length of keyword. You really don’t need the exact characters to parse code in your head. The cursive characters give another visual distinction of the keywords.


I guess it's just one more visual marker, perpendicular to e.g. colors so you get twice the possibilities.

Whether italic or bold or colors or anything, I find that too much visual marking is bloat, unecessary cognitive load which overemphasize syntax, detrimentally to flow — it's harder to gain more perspective when you're kept so 'in it'. Good typographic rules very much apply to code as well.

I personally think ~3 to 7 marking variations are usually enough to convey a general paradigm.


The font includes both oblique (i.e. italic not cursive) and the cursive versions, so you don't have to use cursive if you prefer not to.

It's a very extensive and detailed piece of work.


Fashion is not supposed to make sense. That's why it's called fashion.

The only thing that matters is that it's different and criticized by "the others" that you think you are superior to (old programmers who use boring fonts)


You think the only reason people like aesthetics is to feel superior?


What's interesting to me is that if you use one of these fonts in an editor with Rust or another language they'll usually look quite like any other regular font without any fancy cursive or whatnot.

My assumption is that it's the editor's implementation, but I found it interesting that the use of these fonts (or at least, proper implementation thereof) seems to lean heavily towards Javascript.

Or am I missing something here?

(FWIW I'm a fan of italics for comments - here's what my setup looks like https://imgur.com/a/jTXHIo2)


Direct URL: https://i.imgur.com/kGw7a63.png

No Imgur, I don’t want to accept your cookies policy just to see an image.


I don't really like syntax highlighting most of the time, because I have an astigmatism and bad eyesight that make colored text hard to read. However, I want to be able to easily distinguish commented-out code blocks. So I make comments italic.


They look cool. The productivity gain from keeping things outweighs any productivity loss from the italic text being hard to read. That's just me, of course.


Italics is fine, depending on how light the change is, but cursive definitely doesn’t work very well.


well the italics of regular fonts are fine. it's the cursive thing that's excessive.


I am sad to hear that much negativity here on HN. I mean, sure - it's about aesthetics and some people may have strong feelings about that (not, it's not "objective"!). At the same time - it is a free font, which you can use if you like it. It is not a new standard you have to follow. It this case I would understand the outrage.

Personally, I feel like a traditionalist (full !==, no italics, etc). But... find these experiments with programming fonts refreshing. Also, I remember times (not long ago!), when having a highlighted font in Sublime Text was considered inferior to the "traditional way" of monochrome in Vim or Emacs.

Times change (I wanted to put here a "Times New Roman" pun).


I feel you're throwing some shade my way (which is fine), but I just want to re-iterate that cursive is indeed objectively more difficult to read. This has been quantified since (at least) 1929[1]. But there are more recent sources[2] as well.

[1] https://www.tandfonline.com/doi/abs/10.1080/00220671.1929.10...

[2] https://www.bostonglobe.com/ideas/2013/08/31/why-cursive-har...


I will use the "just try it out" method no matter how intensely you believe that studies performed on fonts during the pre-ww2 era relate to modern programming.


In general, studies measure the average effect.

Usually, there is a lot of variances, so even if on average something is worse, for some individuals it is better.


Thanks for the references.

However, the context may be different. I.e. it is different to talk about reading a whole paragraph in cursive and to have a single word in cursive (here it adds, well, emphasis).

Compare: I bet that reading an intensely colored paragraph harder (personally, I hate reading long blocks of texts in color). At the same time, many people (myself included) use code highlighting.


> A programming font with cursive italics and ligatures is the worst idea in the world. This is absolutely horrible. BTW, I am really angry.

I'm not angry, but I'm pretty sure it's objectively a bad idea. Provably, it's more difficult to read cursive fonts than, say, sans-serif monospace fonts.

Not to mention that the argument that "people like different things" is just not very good. It's simply a bad design choice. Cool project, and the monospace as well as ligatures are awesome, but the cursive italics are most definitely a bust. For context, I've used Fira Code[1] for the past few years and I'm quite happy with it. Author's claim that there aren't any free clean programming fonts is also a bit bizarre; we see free fonts released all the time.

[1] https://github.com/tonsky/FiraCode


First of all, readability of something is going to vary person to person. Studies may have found the averages skew toward less readable, but I doubt that applies to 100% of the population. Once you are used to it, it will hardly make a difference.

Secondly, it's only objectively bad in your contrived scenario where the only thing taken into account is readability.

I have been using a cursive font for terms like "public function" and other oft repeated phrases. The stark difference allows me to more quickly skip over them. I don't need to 'read' them.

But my main reason is I just like the style. I stare at code all day long. I want to make it a bit stylistic and fun. Lots of people also have backgrounds on their desktop, but a solid black background would probably be less distracting and make finding icons easier.

I also wash and polish my car on occasion, even though leaving it dirty would not affect it's primary purpose, to carry me from point a to point b.


It's a cool effort but I guess it's not for me — I much prefer <= over ≤ and >= over ≥ and !== over ≠ etc. because I find it more explicit and readable than a condensed form.


Yeah, I tried ligatures and never liked them. If I type them as two, I'd like them to appear as two; I never liked it when I back-spaced on what _looked_ like one character and found two. Mostly because my head is usually a bit ahead of where my fingers and the screen are, so this throws me off and I have to go back (this is why I ended up back on vim after trying out vscode for a while, even w/vim mode, it's not perfect). Also, I could never tell the difference between single equals and long equals (that was really two). I'm glad they're there as some like them, but I don't get the appeal.


I fond that treating a ligature as two characters (or more) in the editor helps with that backspace problem. So if you type >= which is then rendered as ≥, a backspace should bring you back to >, not nothing.


Many editors and terminals have a flag to disable ligatures.


Can somebody explain to me why narrow programming fonts seem to be trending so strongly lately? I really don't understand, personally.

I have a much, MUCH harder time reading a narrow font.

I also find it aesthetically inferior to a "non-narrow" font so much that even if it was as readable or more, I feel like I would have a hard time getting myself to use it.

Is there some other aspect that people like, such as being able to work in a narrower editor window? If this is purely subjective, why aren't non-narrow fonts also circulating on the front page every week?


Some people fool themselves into thinking that they can save space by using a very condensed font. That’s not true. The squashed shapes makes the letters more similar, which makes the text less legible, which means you need to compensate by pushing up the overall size. You can only save space by optimizing for the most legible typeface, allowing you to reduce the size.

The Victor Mono site is a perfect example: the body text is set quite large, with very generous leading, and still it is very hard to read, partly because of the stretched letter shapes.


If you want to save space, just go with a proportional programming font. Legibility goes up because of kerning, and space is saved at the sacrifice of losing the ability to do ascii art.


I didn’t understand the appeal of narrow fonts until I switched to Iosevka, and now I’m a big fan.

I don’t see any readability problems, I can increase the text (important for my old eyes) without losing horizontal screen real estate, and I find the overall aesthetic quite pleasing.

https://typeof.net/Iosevka/


Thanks for this. I've been using Fira Code for years and recently switched to Go Mono with font size 14.

I tried Iosevka yesterday and so far I love it. I can increase the font size to 17 and not lose the horizontal screen real estate.

The ligatures and the slashed zero are definitely a plus!


I just discovered it a week ago via this comment and the resulting endorsements: https://news.ycombinator.com/item?id=21303410


Fitting more on the screen horizontally. Wrapped lines are a different cognitive load.

I personally don't care for the narrower fonts, but I can see the utility.


>Fitting more on the screen horizontally.

But screens for the most part have only been getting wider. I could see this in the days of square CRT's but most screens are fairly wide these days.


Reading a wide line of text is still hard visually, your eyes get tired from all the horizontal movement right and left.

Better to use the wider screen for multiple buffers of narrower code.


Another person posted something similar in the thread, but I'll reiterate: for people with poor vision, narrow fonts allow you to increase the font size, have a reasonable number of columns on the screen and have it fit into your field of vision. It's a life saver for me (usually coding at 24pt on a 13" monitor, which is as big as feels comfortable for me).


That's not narrow, though. It's very similar to a proportional font, like the one right here on HN.

Which is why Victor is already in my notes under ‘try out,’ as I'm a bit tired of rather wide Anonymous Pro―like I get tired of wide Verdana or Gotham. But the too-geometric lines are off-putting.


Have you tried Monoid [0]?

[0]: https://larsenwork.com/monoid/


It's a bit better, but still its strokes are strictly same-width—overall it's a pretty uptight modern grotesque. The goals seem different from mine, I don't really need miniature text.

I'd really like me a humanist monospace font with a bent toward serif-style shapes―particularly, a modulated-stroke font would be cool. Grotesques get really tiring after a while.


I've found Monoid to be one of the most "eye relaxing" fonts, but I have something for grotesque-sans styled. I use it with very large font sizes though, so the goal is probably different. Just wanted to make sure you knew of it!


I don't get it either. back in the 4:3 days, I liked narrow fonts just so I could more easily view side-by-side code (e.g. vimdiff). These days, with giant monitors that are never more narrow than 8:5, I can have 4 files wide and be fine with a more traditional width font.


Pro tip - Consolas is good enough. Any other font won't make you faster, happier or wealthier.


The font is always sharper on the other side of the screen.


Yes and don't get me started on Dvorak!


Everyone's using QGMLWB now.


I have been using Pragmata Pro (https://www.fsd.it/shop/fonts/pragmatapro/) for over a year and it has been fantastic. I'm using it in PyCharm for the UI and Text Editor and in VSCode.


Pragmata is nice. For those looking for a very similar free font, check out Iosevka (https://typeof.net/Iosevka/)


I'm not loving the italics. I find them a bit hard to read in his code sample.


There are some nice things about this. I really like how the normal text looks, but the cursive italics looks horrid!


Sometimes, it hasn't been done before because it has been attempted and discarded...


I like the more rounded appearance of the glyphs, which to me visually resembles a sans serif typeface rather than a rigid monospaced font. It makes reading code typeset in Victor Mono more like reading an enjoyable piece of text.


So I was going to complain about calling their palmer-inspired face "italic" until I looked it up and the term "italic" has a completely different meaning for typefaces than it does for handwriting. TIL.


The site seems to create a huge amount of load on my computer. As soon as I open the page, usage across all 4 of my cpu cores seems to shoot up from 1-10% all the way to 70-100%. I'm running Firefox 69 on arch linux.


Seconded, though not as bad for me (FF 70, win10). Eats about half as much CPU as decoding a 4k video, which is crazy for what appears to be a static site.

Just tested on arch w/FF 70 and much worse.


Most likely the color gradient background fading the whole time. If you don't have a good gfx card I guess it might be taxing on the cpu.


Really not helping the author justify assuming any correlation between elegant fonts and elegant code...


I found a bug in the font rendering! Maybe just a bug in the way the website is rendering it on the try it page?

    => becomes a ⇒ (U+21d2)
but

    <= becomes ≤ (U+2264)
AFAICT there's no way to make a left arrow with double lines be only 2 chars wide, i.e. how do i make a ⇐ (U+21d0). A 3 char wide left arrow works though, e.g. :

    <== becomes ⟸ (U+27f8)
Like the font otherwise, there are some other interesting unicode conversions, e.g. :

    === becomes ≡ (U+2261)


This is not a bug; this is how other ligature fonts, notably Fira Code, work.

≤ is used way more often than ⇐.


I really like the overall design of the font. I'm not used to such thin letters, but it looks very clean.

Not sure if I'll get used to the cursive part, but it seems like this is purely in the text editor's control, and in my case text is only displayed in cursive when it's marked up that way in .org files(EDIT: it turns out it's easy to make Vim display comments as cursive, luckily without affecting keywords: "highlight Comment cterm=italic gui=italic").

In my opinion this is fantastic work for a free font.


I don't see the appeal of italics or ligatures, other than simple rice. I've been using DejaVu mono for the past 10 years, it's fine for me.


DejaVu Sans Mono with ligatures from Fira Code is the best I could find so far.


Does anyone know how to use this with vs code? I am setting the edit font family to "Victor Mono" but it doesn't work. I can see the font and use it in my terminal so I know it's properly installed. I have even restarted vs code and no luck.


Same issue


I've been using Consolas for over a decade. I just have one question, and that is, does the bold version of the font have the same width as the non-bold version.

This is a killer feature for me.


Thanks for a great contribution. I really like the font - except for the italics. For comments I could may be learn to live with, but for the code syntax itself - no


The cursive parts are less legible. I think it could work with some leading/trailing strokes removed. Preferably switch out the cursive r too.


Letters are too close to each other on a normal DPI screen with the 10-12 point size font. Maybe it looks fine on a high DPI screen, but on my screen it illegible. For the reference, I prefer Iosevka and Fira Code for code editing and console.


I am impressed by the quality of this font, it has everything modern dev would want from a font.

I think italic and ligatures are fantastic.


"free" as in freedom, or just free as in $0? Anyone see a mention of copyright/license anywhere on there?


The repo says MIT: https://github.com/rubjo/victor-mono (although I'm not sure how/how well MIT works for fonts, so maybe worth an issue)


MIT is pretty much ‘everything is explicitly allowed’.


If you include the copyright info. So if I use your font in a PDF document, does that document need to have your copyright notice on it? Visibly, or only in metadata? Always, or only if the font (the "software") is explicitly embedded into the PDF? How about using it as webfont for the code samples on my blog?


Damn, I think I actually really like this!

I'm going to switch from Operator Mono after 3 or so years for the first time, for a month or so to see if I want to switch completely.

Thanks for contributing this! Really cool font.


Looks cool! The cursive "r" could use some tweaking -- I find the "urn" in the "return"s in the examples hard to read. Other than that, I like it.


Downaloded, installed and paid for it. Thank you from Italy. ciao


The "contact sheet" doesn't at first appear to contain the letter "l", but it shows up in the labels, so OK.

"Narcissistpotus"... heh.


The front page ticker also describes the font as ”(im)peachy”


Beautiful font. Congratulations. This is amazing. I started to use it and I love it. Great job and keep up the good work. Well done my friend!


> The typeface is clean, crisp and narrow

But italic is not clean at all, especially for non-native English readers.


reminds me a lot of Operator Mono/Book, especially the cursive variant


I tried using proportional fonts instead of mono spaced and it actually worked great. If you really want to save real estate I think that is a better way to do it.


I use a proportional coding font and love it. (I will re-recommend Input Sans: https://djr.com/input/)

I find it much more readable--and part of me feels coding should be for the humans, not the robots.


Sadly doesn't work if the language typical format wants you to align things. Works perfectly in lisp or C though.


Usually the only important alignment is left side like Python and proportional works for those. Do you have any examples where it wouldn't work?


Anything like this:

    foo(a,
        b)


Reminds me a bit of Fantasque Sans Mono.


What is this cursive italic nonsense. I keep seeing it, but why would anyone want it? How is it helpful?


Why does the linked site require JavaScript and trackers to work? The site is completely inaccessible using Firefox Focus.


I think it is not very good it won't work without the JavaScripts and trackers enabled. Fortunately if you access the repository you can still see and download the font even if JavaScript is not enabled.

However, I like to use the "Fixed" bitmap font.


Loads fine with uBlock Origin, though, remains fast and eats next to no CPU.


Why is this better than Bitstream Vera Sans Mono, Consolas, SF Mono, Pragmata Pro, and Operator Mono? The reason can be anything, but what is the reason?

I don't find that this font outperforms any of those fonts on any of the metrics listed on the website (crispness, legibility). Is this, like, a subjective thing? Or do I have bad taste?


(1) Do you have an objective metric of legibility? Can you measure it without running a large study?

(2) Can you decide for yourself whether a particular font is better for you? Do you need an objective metric to persuade you?

(3) Did you encounter projects that people do to scratch their own itch? Were any of them occasionally useful for a wider audience?


I only ask because the website says

"because there just wasn't any free or paid font that I found both readable, effective and elegant"

and I can think of several, including the ones I listed.

I'm not saying not to do projects like this! Scratching your own itch and sharing your solution is great. I'm just skeptical, as someone who has obsessively tried just about every programming font out there, when I read that a new font does something better than the handful of fonts I always end up returning to. What is that something?


The website doesn't claim that the font does anything better, except that it is more readable, effective, and elegant, in the experience of the designer, Rune B.

If you really do know about several fonts that Rune B. finds more readable, effective, and elegant than this one, I would urge you to contact them.


> Is this, like, a subjective thing?

Yes, “crispness” and especially “legibility” are subjective traits.

> Or do I have bad taste?

Taste is also subjective.


Devoting more than a couple of minutes to choosing an IDE font seems like the height of bikeshedding to me. Using cursive in your IDE just seems completely beyond reason...

I have no idea at all why this is becoming so trendy. Do people have so few problems to work on that this has become a reasonable use of their time?


As pointed out several times on a recent discussion, including responses to this question, programmers spend a lot of time staring at text. It’s not unreasonable to want to find a good typeface.

https://news.ycombinator.com/item?id=21303707

“I don’t see the reason” is rarely a good rationale for blaming those who do for being wastrels.


I’m not blaming anybody for anything, and I understand that some people enjoy endlessly tinkering with their setups. What I don’t understand is why this particular topic has become so popular recently (I’ve seen so many posts about it) for two reasons.

1) The difference between the best (according to your own taste) font your IDE offers off the shelf, and the best font you can find anywhere in existence seems marginal to me.

2) Optimising for readability and then introducing cursive to your IDE seems like two diometrically opposed ideas to me.

I’m not trying to be a Luddite or a hipster. Do what makes you happy. I just don’t get this trend and can’t help but think it’s a waste of time, especially if productivity is one of the supposed goals of this.


I suspect you've devoted more effort to these posts than most people here have to picking fonts.


Perhaps expressing a view that something is a waste of time is naturally a waste of time itself. That could be an interesting philosophical position to take, but I don’t think it contributes much to the discussion in this case. Perhaps I’m discussing the merits of the topic at hand to satisfy my own intellectual curiosity.


Interspersing aspersions against those who have different priorities is rarely a good way to “discuss the merits” of the topic at hand.

“Do people have so few problems to work on that this has become a reasonable use of their time?”

“completely beyond reason”

I don’t care a great deal about the topic, but it offends me when people with a passion for technical materials are disparaged for their interest.


I haven’t made a single ad hominem here. The opinions I expressed were directed exclusively at the topic being discussed.


Ad hominem, no. Disparaging the interest, yes.

It’s possible to explore a topic without the disparagement but you keep reverting to the “waste of time” theme, which doesn’t indicate an interest in learning or persuasion.


Ideas should be protected from criticism to avoid disparagement?...


No, but a discussion the merits of fonts they find interesting is not enriched by a troll who hides behind the fig leaf of “discussing the merits of the topic at hand to satisfy my own intellectual curiosity”.

You’re free to do as you wish, but HN discourages your hobby, and thus the downvotes. I just regret the time I’ve spent feeding it.


"Perhaps expressing a view that something is a waste of time is naturally a waste of time itself."

That might be, but that's not at all what I said. I noted that for all your talk of all the time spent picking fonts, you're spending more time on this than most coders actually spend looking at and picking between coding fonts. (Thst is, see a font mentioned, look at a sample of it, and make a quick decision whether it looks any better than what they're using - and that decision usually being that it isn't.)

To call your efforts a "waste of time" is pointedly your choice of phrase, not mine.


Spending some resources on making comfortable the thing you spend all day watching may pay off. A bad font breaks my concentration; a less legible font increases the chance of silly typos, etc.

Try working while sitting on a random piece of furniture, while using a keyboard from Sinclair Spectrum put on a random coffee table. Chances are your productivity will slightly decrease.

Same applies to every tool you use daily. Even a small difference in quality may play a major role.


I don't know how much customizing my desktop environment is bikeshedding, I just like for things to look nice.

Take some time to appreciate the aesthetic value in the little things, you will get more out of life.


It’s the amount of effort I see going into optimising for the best font I consider bikeshedding. It’s something you could devote unlimited time to for an unlimited amount of margin improvements.

> Take some time to appreciate the aesthetic value in the little things, you will get more out of life.

That’s a perfectly valid world view. A different and equally valid world view could be to not worry about small problems, and focus on things that give you the most satisfaction in life. I personally don’t care much about how my IDE looks, because writing (what I consider to be) good code is the bit I find most satisfying.


Your argument is it’s not worth spending time on? What would you rather I be doing?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: