
Monospaced Programming Fonts with Ligatures - riqbal
https://www.hanselman.com/blog/MonospacedProgrammingFontsWithLigatures.aspx
======
Stratoscope
> Picking a programming font is like picking a religion. No matter what you
> pick someone will say you're wrong. Most people will agree at least that
> monospaced fonts are ideal for reading code and that both of you who use
> proportionally spaces fonts are destined for hell, or at the very least,
> purgatory.

I guess I'm destined for hell or purgatory then.

Hanselman is not alone. I had the CEO of one company look over my shoulder and
ask, "Mike, I don't understand how you can program in a proportional font.
_How can that possibly work?_ "

He wasn't interested in the answer, he just wanted to make a point to me and
our teammates that what I was doing was weird and wrong.

I would hope for people to have more intellectual curiosity than this. One of
the best ways to learn is to let your assumptions be challenged: talk with
people who do something differently from you and find out why they do it.

It's been said that a programmer should learn a new programming language every
year or so, and especially learn a new _kind_ of language that will teach you
different ways to think about code.

Similarly, I think every programmer should try coding in a proportional font,
at least for a while. It may show you new ways to think about how you _format_
your code, as it did for me when I got curious many years ago and tried it.

For example, it cured the bad habit I had of lining up too many things in
columns, like this:

    
    
      myFunctionThatDoesStuff(someArgument,
                              andThisCalculatedOne(anArgumentThatMeansSomething,
                                                   anotherWordyName));
    

Obviously that won't work in a proportional font, so it forced me to try this
instead:

    
    
      myFunctionThatDoesStuff(
          someArgument,
          andThisCalculatedOne(
              anArgumentThatMeansSomething,
              anotherWordyName
          )
      );
    

This indentation-only style has many advantages, and of course it works just
fine in a monospaced font too. In fact the Rust/Servo team recently switched
to it from their former column-aligned style.

~~~
mathgenius
> For example, it cured the bad habit I had of lining too many things up in
> columns

I don't like this style either, but it's a style not a "bad habit."

~~~
Avshalom
nah, it's a bad habit.

It means constant readjustment and unnecessarily bloated diffs every time you
change a function or variable name.

or the lovely

    
    
      foo := a;
      bar := b;
    

then a day later

    
    
      foo    :=  a;
      bar    :=  b;
      foobar := cd;
    

which also points to the problem that it lends itself to _premature_ constant
readjustment because a day later you have to move every thing again because as
it turns out you really needed foobarlist as well. and each time you end up
with a diff reporting that foo and bar (and then foobar) have changed too.

It's making busy work for yourself and ruining the usefulness of code review
tools.

ALSO alignment vs indentation is the whole reason we have to have the spaces
vs tabs argument.

~~~
kpil
Here is a thought.

Maybe no formatting characters should be allowed to be saved embedded in
source code, and instead presentation filters should handle everything related
to formatting, documentation, etc.

It might work..

~~~
hobo_mark
Git supports custom "clean/smudge" filters on push and pull exactly for this
sort of things. Unfortunately neither github not gitlab consider them so your
online diffs would look like a mess of you did that.

------
Jakob
I like switching fonts every couple of years just to keep it fresh.

My font right now is Iosevka:
[https://be5invis.github.io/Iosevka/](https://be5invis.github.io/Iosevka/) A
font generated from its source code. You can build your own variant. It has
ligatures as well.

I like that it’s not as wide as many other monospace fonts.

~~~
NoahTheDuke
My problem with Iosevka (and Input and others like them) is that the
[x-height][0] is too large, ie the bottom-half parts are too tall compared to
the top-half and uppercase letters. Especially in less-wide weights, it feels
muddy and hard to distinguish.

[0]:
[https://en.wikipedia.org/wiki/X-height](https://en.wikipedia.org/wiki/X-height)

~~~
Jakob
That is exactly the kind of problem this font wants to solve. Just change the
x-height to your taste:
[https://github.com/be5invis/Iosevka/blob/master/parameters.t...](https://github.com/be5invis/Iosevka/blob/master/parameters.toml#L15)

------
rocky1138
This is a deeply personal choice, I feel. I am not a fan of using ligatures in
programming code as it gives some abiguity around how many characters are in a
given ligature.

To each his/her own, I guess.

~~~
vivekseth
Does it? In monospaced fonts, you can use width to know how many characters
are in a ligature.

~~~
joemi
The issue, at least for me, isn't that it makes it impossible to figure out
how many characters a ligature is (since, as you noted, it doesn't), but that
it adds some ambiguity, especially when taking a quick glance. Ambiguity can
slow down parsing (in the brain) and potentially lead to errors (in the code)
if I mistakenly think a ligature is a single character.

For instance, in the examples from the article, the == and -> ligatures in
particular look like something I might not always see as two characters.

------
TeMPOraL
> _I frankly can 't understand how tiny font people can function. It gives me
> a headache to even consider programming at anything less than 14 to 16pt and
> I am usually around 20pt._

What? I can't understand how such large font people can function. I mean, how
large (or dense) are your screens? Is that a Macbook thing?

I'm at... something small. Hard to tell exactly, because on my laptop screen,
all following fonts look pretty much the same size, while having different
configured values:

\- IntelliJ - Monospaced, size 12

\- Emacs - (:family "Hack" :foundry "unknown" :slant normal :weight normal
:height 76 :width normal)

\- xterm - xterm*faceName: Hack:size=8:antialias=false

So 8 / 12pt (which one is pt?) and/or 76 somethings. People at work say I'm
crazy working with such small text, but frankly, anything larger for me feels
like wasting tons of vertical space, which is of short supply given the (IMO
completely idiotic) market standardization on 16:9 and 16:10 displays.

~~~
nsxwolf
What are you going to do when you get older and your eyes go through "the
change"? You can keep your font sizes and wear readers, but then don't you
have to move your head a lot to view the entire magnified image?

Any presbyopic developers care to chime in on what the experience is like? I'm
40, so mine could cross over any time now.

I hate 16:9 too. Please give me back the bottom of my screen that you chopped
off.

~~~
simias
You could try rotating your screen to get 9:16, although I find that it tends
to be a bit narrow if you want to split vertically and have two pieces of code
side by side.

With 16:10 screens however I think it work rather well, I currently use three
1920x1200 monitors and two of them are vertical, it looks like this:
[https://svkt.org/~simias/emacs-vertical.png](https://svkt.org/~simias/emacs-
vertical.png)

It's also great for looking at docs.

~~~
khedoros1
I spent some years with dual 24" 10:16 screens. It was a convenient coding and
documentation reading environment. If the workstation had supported a third
screen, I would've requested one to run horizontally, for the rare times I had
to view video, or something.

------
edejong
Apparently I'm one of the two users of proportionality spaced fonts for
coding. I've used this now for five years and I don't understand why
developers still see this need to code as if monospaced terminals is all
that's available. Especially on large screens with high dpi it reads much
faster. It also makes it less awkward to use editor unicode substitution for
display purposes.

~~~
arnsholt
After programming in SmallTalk for a while, I'm starting to come round to a
similar point of view. I haven't quite made the leap in my day-to-day work
yet, but I really am considering it.

Another thing I'm considering to adopt from ST is dropping syntax
highlighting. If research on highlighting for natural language can be
transferred to code (I'm not entirely sure, but I suspect it might),
highlighting might actually be harmful to comprehension. The only thing I'd
keep is a slightly lighter colour for comments, as these don't have quite the
same status as code. Ideally, I think I'd like to have them deemphasised by
moving them off to the margin or something like that, but that requires rather
more work than rendering them a lighter colour than the rest of the code.

~~~
oneeyedpigeon
> Ideally, I think I'd like to have [comments] deemphasised by moving them off
> to the margin or something like that

This is one reason I'm a fan of Douglas Crockford's slightly unorthodox style
of always beginning comments in column 0, rather than indenting them along
with the code. This helps, to a small extent, in differentiating comments from
code. Example:
[https://github.com/douglascrockford/JSLint/blob/master/jslin...](https://github.com/douglascrockford/JSLint/blob/master/jslint.js#L133)

~~~
djur
This resembles certain forms of literate programming, like Haskell's "Bird
style"[1] or Literate Markdown:

[1]:
[https://wiki.haskell.org/Literate_programming](https://wiki.haskell.org/Literate_programming)
[2]:
[https://ghc.haskell.org/trac/ghc/wiki/LiterateMarkdown](https://ghc.haskell.org/trac/ghc/wiki/LiterateMarkdown)

I've dabbled with it and enjoyed it, but I really feel like it needs editor
support to feel truly fluent (i.e. being able to preview the formatted version
on the fly, being able to collapse the text blocks, etc.).

------
yla92
I love Firacode and use it in Android Studio/IntelliJ but it has this bug[0]
where "=" is invisible in Gnome terminal. So, I had to switch to Fira Mono[1],
the parent of Fira Code, from Mozilla. Fira Mono doesn't have cool ligatures
but it's a good font and works pretty well.

[0] :
[https://github.com/tonsky/FiraCode/issues/162](https://github.com/tonsky/FiraCode/issues/162)
[1] : [https://github.com/mozilla/Fira](https://github.com/mozilla/Fira)

~~~
lygaret
The whole Fira family, (and Fira Mono in particular) are amazing.

------
Wintamute
I'm mystified how any one finds these more readable. Form over function if you
ask me.

~~~
falcolas
It transforms them from individual characters being put together to
approximate symbols into the actual symbols. The act of joining together
particular character combinations into more aesthetically pleasing forms is
common and very old practice.

It looks odd only because we're accustomed to seeing the individual characters
due to display limitations inherited from typewriters and TTY machines.

~~~
danellis
I agree, except for the www ligature. It just looks odd to only have part of a
domain name compressed.

~~~
cordite
www was unnerving to me (and a couple of my team members) too.

In a way I am interested in psychological basis for my innate rejection of
this. Conceptually, I comprehend why it is made into it's own ligature, like
!=, it is a unit of information these days.

~~~
vanderZwan
Well, for starters it's an abbreviation, whereas -> or != is an approximation
of a symbol, so that makes it different from the rest. Also, you're on a
website that has no www in any part of its website, so it's not nearly as
ubiquitous.

If anything I think it makes more sense to have :// as a ligature.

------
amk_
I really like the giant, triple-line === ligature for JS in Fira Code. Makes
it super-obvious when you are doing strict vs sloppy equality checks.

~~~
kazinator
Sarcasm?

~~~
masklinn
Why would it be sarcastic? The triple bar is also the operator for logical
equivalence, which I guess is where the font authors got it.

~~~
gervase
I assume potential sarcasm would be related to the difficulty differentiating
between similar symbols, based on length, with different lexicographic
meanings.

For example, dash vs endash vs emdash, etc: ‒ – — ―

If those symbols were used in a programming language and had different
meanings, differentiating quickly could be much more difficult than seeing the
difference between -, --, ---, and so on at a glance.

~~~
amk_
Just recorded this GIF of typing out a function with the added visual cues:

[http://imgur.com/a/LQVV2](http://imgur.com/a/LQVV2)

IMO it's comparable to a WYSIWYG equation editor vs looking at raw LaTeX -
conceptual errors pop more.

~~~
FireBeyond
Also out of curiosity, what editor / plugins are those?

~~~
amk_
Just VSCode with the ESLint plugin and this theme:
[https://marketplace.visualstudio.com/items?itemName=jdinhlif...](https://marketplace.visualstudio.com/items?itemName=jdinhlife.theme-
gruvbox-dark-medium)

------
ericmo
One thing that really annoyed me in some monospaced fonts with ligatures is
the [] ligature, I never understood why would someone rather see a box instead
of two brackets. I'm no typographer, but I think that it makes the text lose
its uniformity, because [] and [0] will look weird close to each other.

I guess I'm not alone in this, because in the Fira Code repo there's this
commit from 2 months ago: "Remove [] ligature from specimen".

------
sqeaky
Tiny font person reporting in. I can easily read 9pt font scaled to 80% or 90%
in Qt Creator on my 4k monitor. Some of my other coworkers are unsure if I
even have text on my screen. I do it because I can fit 4 split views of 120
columns text on my screen (at 90%, 5 at 80%).

Right now I only have 3 split views, Unit tests, the header and the source
file I am working on.That window does not take up the full screen and I have
plenty of space for a build VM another text editor for scripts and notes, a
file manager and a few consoles.

~~~
shanselman
You're a god!

~~~
sqeaky
Today I learned: god is nearsighted.

------
tambourine_man
I get really excited about this kind of thing.

At the same time, I'm amazed that we, developers of all people, still use
mostly software from the 80's. At least conceptually, if not actual code.

I mean, our tools can be as awesome as we want them to be. An illustrator is
at the mercy of others to improve his daily software. We're not.

And yet, we get all fired up when we are able to display thousands of colors,
some pseudo GUI feature like menus or divisors by _patching fonts_ or have
text appear at the opposite end of the line _simultaneously_. Madness right? I
know.

I'm as guilty as the next guy, my editor is Vim (on the terminal) and I spend
ridiculous amounts of time tweaking tmux, bash/zsh and fetishizing over color
schemes.

I can't help but feel that by now we should have an OpenGL rendered
environment where something like SublimeText's minimap would be easy and
Hollywood style interfaces possible, albeit excessive.

------
twobyfour
I'm not sure that ligatures would be an improvement for legibility or editing
code.

~~~
kej
I happen to like them, but the only one I'd put forth as a definite
improvement is that JS/PHP's triple-equal === operator gets turned into three
horizontal lines that take up more vertical space than the double-equal does.
That can be the cause of subtle bugs, so I think making that distinction more
obvious is a win.

~~~
twobyfour
Personally, I'd probably find it easier to visually mix up the two-line and
three-line versions than to mix up the two-char and three-char versions when
skimming code - but to each their own.

~~~
kej
You still get the same three-char width, the ligature just makes it three
lines tall, also.

------
Pxtl
Honeslty, this should be handled by the language itself. If a language
supports unicode, why not support ≠ for not-equals instead of "!="? Then
provide a pre-processor that will replace all your ugly "!=" with the correct
mathematical symbol.

~~~
dragonwriter
> If a language supports unicode, why not support ≠ for not-equals instead of
> "!="?

Perl 6 tends to support both multicharacter ASCII operators and single-
character Unicode equivalents.

~~~
SwellJoe
I love the way Perl 6 looks with Unicode, it's really beautiful, but I'm just
not very comfortable typing Unicode. It takes me a split second to type
">>*<<", but much longer to type the Unicode equivalent (and I probably have
to look it up). The editor could probably do it for me, but I haven't looked
too deeply into how.

I think doing it with the font might actually be nicer from a usability
perspective. Unicode is fun to play with but slows me way down.

~~~
InstanceOf
Someone should make an optional IDE plugin or setting to convert them.

~~~
SwellJoe
perltidy for Perl 6, perhaps, should offer it as an option. It'd only show up
after you saved your code (or checked it in, or built it...I usually run
perltidy on my Perl 5 code in my dist.ini, so it only happens during a dzil
build).

One of the golang plugin bundles for Atom runs gofmt on every file on save
which is actually pretty neat. I've been tempted to do the same for all of the
languages I use. It sort of habituates me to do the right thing over time, as
I see the changes happen immediately and I'm always working with a file that
is mostly in the "right" style.

------
timothevs
I am a huge, huge fan of the free font “Input”[1]. Just love how customizable
it is, so much so, that I’ve replaced Pragmata Pro with Input on Sublime.

[1] [http://input.fontbureau.com/](http://input.fontbureau.com/)

~~~
hashmal
I was looking for someone mentioning Pragmata Pro, now I might check out
Input…

------
kazinator
That www thing looks like shit. Just, no.

~~~
smcl
The www was a little weird to look at for me too, but it's the combinations of
multiple "-" and "=" that pushed this over into "nope" territory for me.

It's cool that some folks find it better, but it's just not for me

------
pitaj
I really like the ligatures in Iosevka ligatures when working with Javascript,
especially with `=>` (which it turns into a fat arrow). It's not really that
significant, but it's a nicety that enjoy.

------
dannysu
Oh, I didn't even know ligatures is a thing. Learned something.

When coding in Haskell, I used to use the vim-haskellConcealPlus [1] plugin
for vim to swap chars being display into nicer unicode chars for various
operations.

I'm no longer using it now because it wasn't monospaced and moving around
lines was jarring.

If only there's a way to combine the benefits of the two. Monospaced font with
ligatures seems to only work for operators that take the same amount of space
as their ligature counterpart.

    
    
      [1]: https://github.com/enomsg/vim-haskellConcealPlus

------
seanmcdirmid
I really want someone to come out with a proportional font with programming-
oriented ligatures; they make more sense with a proportional font because
unusual "widths" are no longer a concern. I've foresworn monospaced fonts, but
really like what they did in hasklig. I can get the same effect if I do my own
editor (replace => with unicode ⇒), but not with an off the shelf editor.

I tried to figure out how to hack open sans to do this, but the tool chain and
steps needed to modify a font aren't well documented as far as I can tell.

------
whalesalad
Really looking forward to having this capability in Sublime Text. I really
love Fira Code. It looks great in Emacs for Clojure development and is right
at home with my powerline-esque ZSH theme.

------
jsingleton
I think Scott updated the sample used for the screenshots after putting it in
the post.

The code is listed as:

    
    
      // FIRA CODE
      object o; 
      if (o is int i || (o is string s && 
          int.TryParse(s, out i)) { /* use i */ }
      var x = 0xABCDEF;
      -> --> ==> != === !== && ||<=<  
      </><tag> http://www.hanselman.com 
      <=><!-- HTML Comment -->
      i++; #### ***
    

I think what was actually used is:

    
    
      // FIRA CODE
      ABCDEFGHIJKLMNOPQRSTUVWXYZ
      0123456789!@#$%^&*()_+={}[]<>/?'";:~`
      object o; 
      if (o is int i || (o is string s && 
          int.TryParse(s, out i)) { /* use i */ }
      var x = 0xAB_DE_F;
      -> --> ==> != === !== && ||<=<  
      </><tag> http://www.hanselman.com 
      <=><!-- HTML Comment -->
      i++; #### ***
    

The underscores in the hex literal are not part of the font, which looks like
it is confusing some people.

A couple of those lines are new C# 7 features (patterns and literals) that
appear to have been partially lifted from this blog post:
[https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-
featu...](https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-
in-c-7-0/)

I wrote a section on C# 7 for a new chapter in the upcoming second edition of
my book from last year. There are loads of useful new features in C# 7 (and 6
if you're still on 5) and I thought I recognised those snippets.

------
brianberns
I tried some of these fonts in Visual Studio and quickly learned that any
ligature that contains a hyphen (e.g. "->") doesn't work, due to a limitation
in the Windows Presentation Framework. :(

[https://github.com/tonsky/FiraCode/issues/259](https://github.com/tonsky/FiraCode/issues/259)

------
gdwatson
One of the things I love about DejaVu Sans Mono is that it has a human-
designed oblique version and doesn't rely on my editor to automatically
distort the font. I'd love to try Fira Code, but what do the ligatures look
like auto-slanted?

(Oblique and italic are both slanted styles of font; the difference is that a
true italic has some cursive features and an oblique does not.)

------
Finbarr
Fira Code looks really nice. Shame Sublime Text doesn't support ligatures.
Seems to be the most voted for idea for development:
[http://sublimetext.userecho.com/forums/1-general/](http://sublimetext.userecho.com/forums/1-general/)

~~~
shanselman
Try VS Code. There's a Sublime Text keymap
[https://marketplace.visualstudio.com/items?itemName=ms-
vscod...](https://marketplace.visualstudio.com/items?itemName=ms-
vscode.sublime-keybindings)

------
kps
It's $CURRENT_YEAR. Just let people write ≠ for ≠ already.

~~~
dragonwriter
The problem with Unicode operators is good, consistent input methods.

~~~
TheOtherDave
Yeah. The thing that blows my mind is that the guy who runs Input Club (they
make/design keyboards with open-source firmwares) sent the USB consortium an
email a year or so ago asking if there were any plans to update the USB HID
spec for unicode, and the response indicated that he was the first person to
ask! Really?!? Unicode was out for a few years before USB even existed, and
nobody'd even thought about it before? You'd think at least the word processor
industry (which wasn't nearly as homogenous back then) would've jumped on it.

------
coaxial
I personally love hasklig. Iterm2 has it on the Mac, but I'm sol on Ubuntu.

Is there any good terminal app that supports ligatures? I tried konsole, but
the font looked like it wasn't getting any anti-aliasing and was harder to
read as a result.

I love terminator, but it doesn't support ligatures.

What do you use?

~~~
xyzxyz998
Most popular terminals use VTE. VTE doesn't support ligatures if that helps
narrow your search down.

------
zitterbewegung
This is sort of off topic but every time I see a new font on anywhere I just
try it out . At this point I think the fonts that I prefer are probably a set
where they all fall into a global maxima of my utility .

------
KirinDave
I figured I'd leave this here: I rebuild Iosevka with the Haskell ligature
mode on default. I use this for a lot of things (although recently it's gotten
no use as I've been working in Emacs).

Since it's a bit of a process to rebuild Iosevka, I just bundled the
artifacts: [https://goo.gl/gsFm8P](https://goo.gl/gsFm8P)

(Please excuse the redirection, this got a LOT of downloads and I have a big
azure credit so I hosted it there and youw ould not believe what a pain it is
to host simple linkable files on Azure).

~~~
tetraodonpuffer
note you can kinda use ligatures in emacs by doing something like

[https://gist.github.com/pcstl/2d9b28a74d6f9254586c2d58d54590...](https://gist.github.com/pcstl/2d9b28a74d6f9254586c2d58d54590f8)

~~~
KirinDave
This replaces -> and whatnot with unicode equivalents, right?

There are a LOT of problems with that. First and foremost you really do want
double character width for these symbols in the iosevka format. Stuff like →
is microscopic.

~~~
tetraodonpuffer
it also seems to adjust the spacing, I have used it with FiraCode and it seems
to work correctly. Note my main font is DejaVu Sans, with this I just use the
Fira Code symbols for the "ligatures"

------
bwidlar
My favorite, Luculent:
[http://eastfarthing.com/luculent](http://eastfarthing.com/luculent)

------
cbeley
While I've had people say I'm crazy, I don't think I could ever give up my
current font I've been using for years now:
[https://github.com/belluzj/fantasque-
sans](https://github.com/belluzj/fantasque-sans) . It's both readable and fun.
Keeps me extra happy throughout the day. :)

------
spdustin
If only Sublime Text supported fonts with ligatures… I miss out on these
amazing fonts!

------
jayshua
Ligatures are great, but I just love the cursive italics used by Operator
Mono. Haven't justified the price to myself yet, but am considering it since I
haven't been able to find any other fonts that do cursive italics.

~~~
matiasz
Matthew Butterick’s font Triplicate has true italics and a Code version with
programming alternates.

www.triplicatefont.com

------
ww520
I switched to Source Code Pro font couple years ago and never look back.

[https://github.com/adobe-fonts/source-code-pro](https://github.com/adobe-
fonts/source-code-pro)

~~~
masklinn
As the very article notes, Hasklig is a fork of Source Code Pro with
programmatic ligatures. In much the way Fira Code is a ligatured version of
Fira Mono.

------
hatsunearu
I don't like that --> has a continuous line. that gap in the middle gives me a
very clear indication of how many -s there are in the arrow.

------
mcv
Can you have a ligature that displays a warning when you mix tabs and spaces?
Because that would actually be useful.

~~~
mattcoles
If you use Vim, you can `set list` and set the `listchars` to something useful
for you.

------
sqeaky
I am glad -> was included, but why not ==. Isn't that a comparison operator in
many languages?

------
taeric
Wait, since when were the different length dashes considered ligatures? Same
for not equals.

------
zeveb
My only real concern is that it makes 0x123 look like 0×123. Otherwise, pretty
cool.

~~~
IvyMike
My concern is it made 0xABCDEF turn into 0xAB_DE_F. What happened to the "C"?

~~~
rofex
Yeah! Why is noone else talking about this? This was what immediately struck
me when looking at the screenshots...

~~~
TeMPOraL
I noticed that immediately, too; I just assumed the author changed the source
before taking screenshots and forgot to update it on site code. If a _font_
was doing that, it would be criminal.

------
nijaru
What sort of application do people use to design fonts and add ligatures?

~~~
gdwatson
FontForge[1] is the one I always see mentioned in the open source world.
Adobe, being a giant of computer typography, has some proprietary tools.

[1] [https://fontforge.github.io/en-US/](https://fontforge.github.io/en-US/)

------
jbmorgado
For some people this might be great but for me this is a total sensorial
overload, I tried to use some of these fonts in the past and I just loose
track of the code.

Did anyone experience the same in the begging and grew to actually like these
fonts or was it always a "love at first sight" experience for you that use
them?

~~~
nulagrithom
There was definitely a lot of "whoa!" and distraction in the beginning,
especially while typing and watching things transform.

Later I loaded up some JS code I was working in earlier but without ligatures
as the terminal I was using didn't support them. It definitely felt oddly
verbose, especially the arrow functions.

I can still go either way, but it's mostly lack of ligature support that keeps
from adopting it wholesale. Changing one way or another is a tad disruptive.

------
draw_down
It slightly alters the monospacing which would drive me batty when coding, but
cool idea. Especially for displaying code like in a blog post or other non-
interactive use.

~~~
nkrisc
Well, depending on your audience I think it would be a step backward for
static display of code since in some cases it isn't clear what to actually
type. Fine for experienced audiences but really frustrating for anyone
learning.

For example, the 'x' in the hex value. Is it a regular 'x' or another
character? How about those fat arrows? How are those typed?

~~~
wereHamster
If you don't use one of those fonts that support ligatures, you'll see the
plain ascii characters. You shouldn't use these fonts if you don't know what
kinds of ligatures it supports or how it converts plain ascii characters into
a higher form.

~~~
nkrisc
I was commenting on the use of these fonts to display code to others, not use
while writing.

------
Garet_Jax
The edges of the WWW symbol need to align with the old symbol if they are
doing it right.

The && also breaks out of alignment. Alignment is the whole reason I am using
mono-spaced fonts.

My history: IBM VGA (strange j, h, k, etc.), Courier, Bitstream Vera Sans,
Lucida Sans Italics (only proportional font, but it looked great at the time),
Consolas, Kids Play.

------
xyzxyz998
Crazy idea but i'd like to see a monospaced version of Comic Sans Neue. The
proportional version is very well done.

------
megamindbrian
I love this.

