That could be the maximum I'd like out of font to have "proper" greater/less-equal sign.
This goes down to the details like that you should either use spaces over tabs OR prescribe editor config such that the code looks similar on each machine.
Of course this doesn't automatically mean that code ligatures are harmful, but I would be quite wary of using them. At the very least it introduces some friction, not sure if the arguably lower mental load of using real mathematical symbols instead of the ASCII symbols makes up for it.
I guess my IDE choices never surface the issue for me... visually they just look the same. I cannot say which codebase uses spaces which uses tabs. I never even think about it. I just smash tab character and don't care that there have been spaces. Or enter or { and IDE does the indentation. I just choose not to press space 2-4-8-16 times in a row.
Now I hope I won't get bulldozed over by HN crowd...
With tabs pretty much every editor except something like notepad.exe could do it since ancient times, with spaces the editor needs to do a bit more processing, so you were a bit more restricted in editor choice, if you really were bothered so much by the indents chosen in the project.
So it is actually quite similar to the ligature discussion. It would be good if the code looked the same for everybody but now instead of saying "But 8-space indents waste so much space on the screen :(" some people now go "But I don't like seeing things like != or -> instead of modern Unicode symbols :("
It's too bad spaces won, tabs is just correct I think, since one can configure the tabstop to use any indent size they would like. I'm quite tired of reading 2-space indent. Seems everything has moved this way now except python. I'm even seeing C with it, which is especially jarring. I think the languages that use braces for indentation particularly need 4. Python needs it least, and I can read Ruby because its blocks are delimited by words and it's bad style to write long methods
Granted, I'm also someone who heavily encourages the use of Black as the Python formatter in projects I'm on, specifically because it has no configurable options - can't have a holy war about formats if nothing can be changed.
The reason spaces won is that it's not (spaces) vs (tabs), it's (spaces) vs (tabs AND spaces).
Now, seriously, a programming font has no (and should never have) awareness of the computer language it's representing. Ligatures make sense if they present meaning in a way easier to read than the non-combined characters. I can't type := in APL and expect the REPL to think it's an attribution arrow (←).
I get APL is a rather extreme language to talk about, but this is one example where ligatures would harm the programmer (unless your editor replaces a ":=" with a "←"). Source code is a very precise language and the choice of characters you use matters a lot. A "<-" doesn't mean "←" unless the language declares so.
https://github.com/samboy/CaulixtlaFonts/tree/main/MiscFonts...
Personally, I like them. They look pleasing and I never had issues distinguishing between the ligatures for ==, ===, and = itself.
(...I also find them annoying to look at, idk why)
But also... I know I have the minority opinion on this. It absolutely should be opt-in, not opt-out. I think the past decade, I've been told the font tweaks I enable are incomprehensable to everyone I work with. The way I like my IDE fonts is far outside the bell curve (ligatures, cursive variants for some syntax, proportional variants for prose) so the fact that most new monospace code-focused fonts seem to align with my opinions should be concerning to font makers! I like that I don't have to patch a different font's italics into my code font anymore, but common sense says I SHOULD still have to do that!
I'm not sure however that the verb form makes all that much sense in the context the website uses it...
Ligation is (among other things) the act of applying a ligature. So it does make sense.
It is aggressive in its unicode support. You want to use vulgar fractions? Or Mayan numerals? They'll work. You want to use mathematical notation like ∈? It works.
You can literally do this:
`my $var = ⅒ + 2 + Ⅻ;`
I can't include an example here because VC News strips out math.
Anyway, since you want a direct representation of the text - presumably, you configured your editor to render EOL sequences explicitly, to distinguish tabs from spaces, etc?
I don't like them because I never know what they actually stand for in ASCII.
I'm guessing the website author added that after some "website performance tool" recommended it, as they make sweeping generalizations that don't always make sense in every context, and "always add font-display: swap so text is readable earlier" is now a dogmatic rule "web developers" (mechanical or wetware ones) add without thinking, so that precious performance number goes up.
Also, I think also led by Google, `font-display: block;` actually behaves the same as swap now, just with a longer wait for the font to load [1]. Iosevka’s webpage does use swap, though.
[1]: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/A...
Iosevka typeface for code, from code - https://news.ycombinator.com/item?id=36785409 - July 2023 (76 comments)
Iosevka – Versatile typeface for code, from code - https://news.ycombinator.com/item?id=30014796 - Jan 2022 (36 comments)
Iosevka, Version 3.0.0 - https://news.ycombinator.com/item?id=23230929 - May 2020 (40 comments)
Iosevka – A Typeface for Code, from Code - https://news.ycombinator.com/item?id=14009963 - April 2017 (122 comments)
Show HN: Iosevka Open Source Programming Typeface - https://news.ycombinator.com/item?id=9951989 - July 2015 (27 comments)
(Reposts are fine after a year or so; links to past threads are just to satisfy extra-curious readers)
https://github.com/ahatem/IoskeleyMono
If you want to use Iosevka on your webpage there is a variant on google fonts called Iosevka Charon[2] that is really easy to use.
Personally, I use filtered version of Iosevka that just contains the characters and variants I need for my personal website. For HexWalker I filter Sarasa Term to the characters I used, which takes it down to 42kb from 50mb+.
[0] https://github.com/be5invis/sarasa-gothic
Why are there so many new awesome projects like this?
I'm not complaining, just trying to understand what drives the creation of open source fonts.
The hookiest tail for lowercase l man, love it.
Even for my own website, with some tighter tracking and it can work okay as a text font.
Another great customizable font is Maple Mono [0]
Chat history (excuse the lazily-constructed prompt): https://chatgpt.com/share/6acf829b-5428-83ec-939c-acbc7805a3...
This is exactly what he's talking about. It's not one-click
Now (after ... gosh, 6, 7, 8? years probably) I love it, use it everywhere and other monospace font feels super w i d e and weird.
It's interesting how personal font choice (among many other things) is!
…IBM Plex and Iosevka were in the running, but the subtle “Comic Sans” effect of the APL font make the code easier to scan, subjectively speaking.
My personal daily drivers are SF Mono and Berkeley Mono.
I use both the standard/fixed versions and Aile and Etoile for UI.
A little bit of looseness here is a pretty strong signal for careful font design actually. It means the creator considered some other factor (in this case char disambiguation) to be more important than rigid adherence to the category.
But alright, I realized you must download the archive to find LICENSE.md in there: https://github.com/be5invis/Iosevka/archive/refs/tags/v34.9....
The license is "SIL Open Font License, Version 1.1." from http://scripts.sil.org/OFL
Whenever font discussions come up, I will try everyones suggestions to find better than what I have, and always came back to Berkeley. Its almost near perfect for coding!
https://github.com/ahatem/IoskeleyMono
>Iosevka configuration to mimic the look and feel of Berkeley Mono as closely as possible.
Discussed recently https://news.ycombinator.com/item?id=49161743
Shame.
Fonts from Google have been bland and monotonous. The only nice font that Google released is Spectral(from France), but it is a proportional serif font.
I like it a lot!
The only place it works is dumb boilerplate generation (ie, a smarter replacement for templates), but the real fix for that is just jettisoning languages that beat you to death with boilerplate; its 2026, stop using C++ and Java.
I've extensively tried every LLM model, commercial or not, and for real languages like Rust or Zig, they perform poorly, and for footgun-laden languages like C++ or Java or Python, it just hands you the footgun and helps you aim the thing.
Are you living under a rock? o_o
The heading of Iosevka doesn't do the font right, my first thought was that this would be yet another soulless sans-serif. But it has tons of interesting variants. Hats of to Iosevka Etoile. See also <https://monaspace.githubnext.com> if you like big versatile font families.
[1] There was also at one point a monospace variant of Bitstream Vera Serif called “Verily Serif”.
The reason here is that the basic glyph shape is that of a sans-serif, but still got serifs added afterwards. That doesn't stop it from diluting the meaning of the term.
for this, i like Input Sans a lot.
Alas, it is oblong, not square.
And 7 thousand-odd code points is not as large a range as it used to be a couple of decades ago. That said, it does have MouseText, the 7-segment LED digits, and suchlike from the Supplementary Plane 1.
The readability is excellent, and this font replaced everything else that I tried before. Highly recommended!
I put Iosevka everywhere, not only in text editors but browsers and other desktop apps. It's one of the first things to do on a fresh machine. Thank you very much, @be5invis!
One thing I definitely love is it's easy to access. It has been packed for many package managers. I can just brew install or yay -S to get it.
Lovely font.
Some time ago I switched to wayland/sway/foot, and I'm on 0xProtoNerdFont, quite pleasant as well.
The M is 1/2 of an M wide?
https://en.wikipedia.org/wiki/Em_(typography)
it seems the width of an M should be exactly equal to the x-height in points (IIUC).
Also, whoever said that fonts intended for a terminal need to be narrower? Some terminals have narrower chars, some wider. And terminal emulators often allow for multiple char aspect ratios - e.g. via bitmap fonts of different aspect ratio.
Anyway, the typeface looks interesting, but I would have liked for the creators to compare and contrast it with existing (and popular) monospace / terminal-oriented typefaces.
I've been using a custom version - you can customize the font¹ and build your own ttf (or better yet, ttc) using the build system supplied in the repository².
be5invis, the author of the font, deserves a special mention for creating a whole custom DSL called PatEL (Parametric Type Expression Language) to generate the font programmatically!
Renzhi, if you ever come around to read this, thank you so much for Iosevka, man!
¹https://typeof.net/Iosevka/customizer
²https://github.com/be5invis/Iosevka/blob/master/doc/custom-b...
I tried it again, quickly set it up in my terminal the "Iosevka Term" version, switching from Jetbrains Mono, and just don't understand how can people read this.
But, after using Berkeley Mono for three minutes, I switched to it everywhere in a week or so, and never looked back, or looked anywhere else, to be precise.
Yes, it's not free, and yes it's opinionated. I can say that my opinions align with that font pretty much. It's one of the things which I cherish like an expensive hand tool which really does its job very well and makes you happy with its presence.
[0]: https://usgraphics.com/products/berkeley-mono
I faintly remember about the though process of italics, but I don't remember it now. They don't look uncomfortable to me, anyway.
You can start with $75 package and work your way up if you feel like you need them.
When I asked, somebody said it fits more characters in terminals and code editors. This sounds incredibly obvious, but for whatever reason that was eye-opening for me and helped me appreciate it a lot more when I tried it again. Now I can't use anything else.
https://github.com/be5invis/PatEL
It’s a real hackers typeface.
Why is ttc better?
https://pastebin.com/WwYY0QqX
Copy and paste into Import Configuration at https://typeof.net/Iosevka/customizer to preview.