
Go fonts - stablemap
https://blog.golang.org/go-fonts
======
SanFranManDan
This reminds me of Java applications that you can immediately tell are Java
because of the weird font.

I don't see an advantage over using native system fonts. As far as I know you
don't need a license to use fonts installed on the system running the
application. Why does the font need to be bundled? The wide spread adoption of
this is going to make go programs stick out like a sore thumb.

~~~
creshal
> I don't see an advantage over using native system fonts

As touched on in the article, you need a standardized font you have control
over for automated testing, to make sure you're getting reproducible results.
OS fonts are too inconsistent for that.

Now, why they couldn't use any of the literally hundreds of other open-source
fonts instead that Google made…

~~~
tokenizerrr
> As touched on in the article, you need a standardized font you have control
> over for automated testing

Why? Just standardize the font when running in test mode. I expect system
applications to use my system fonts.

~~~
creshal
Yeah, that's the part where it stops making sense. System fonts _are_ good
enough for human consumption.

------
ashearer
The page itself is set in the proportional version of Go. I found it
distracting to read because of the uneven character widths. The majority of
the characters (like 'b', 'd', 'f', 'k', 'l', 'o', and 't') are narrow, but
some common letters (mainly the 'e' and 'c') are round and wide, with generous
space around them. I can't get past the impression that I'm reading paper that
wrinkled when it went through the printer. Even the name "Go" has a wide G,
awkwardly large space, and narrow "o". Perhaps it's an artifact of the browser
rendering, because it's less noticeable on the alphabet sample image.

The monospaced example reminds me of TeX-produced CS papers at first glance.
I'll have to give it some time.

~~~
pmontra
The monospaced font looks very old, I don't like the look of it.

The proportional one is ok but it can't be used for programming. In part
because of the reasons you gave but especially because there is almost no gap
between the two = characters in == and @ is almost superscripted, which looks
wierd.

I'm going back to Sans Regular (whatever it is on Ubuntu). It has its own
problems (I and l look the same) but it's still better.

~~~
iainmerrick
Yes! You put your finger on it -- it looks _old!_

That's not necessarily a bad thing. Instead of "old" you could call it
"retro". But it definitely reminds me of the formatting of K&R, which makes
sense as the Go team see themselves as the heirs of the K&R tradition.

------
runeblaze
"The experimental user interface toolkit being built at golang.org/x/exp/shiny
includes several text elements, but there is a problem with testing them: What
font should be used?"

I am really amused by this opening. I guess it is part of the culture to
"recreate" something unnecessary and perhaps better when there is resource to
spare.

~~~
enneff
Font licensing is complicated and Chuck is a friend. It was very important to
us that Go programmers be unencumbered when distributing programs that use
this font.

~~~
int_handler
Why is it not possible to just use the system font for these UI elements?

~~~
kevhito
I help maintain/develop an app that allows users to draw and simulate logic
circuits on a canvas. Text plays a minor but important role for labeling
various components, showing bit and hex values, etc. The app uses system
fonts, and it's a huge mistake. The sizes and exact layout and connectivity of
various logic blocks depends on text size, and when that changes (and it does
from platform to platform), it leads to lots of subtle and hard to notice
errors. I've spent a lot of time tracking down every logic dependence on
character width and making those all platform-independent heuristics instead
of using the actual font metrics. Which makes the UI often look terrible (but
at least it is a consistent and functionally correct terrible). I would much
rather the app bundle a freely redistributable font and be done with it.

~~~
yoz-y
It seems to me that having a specific UI toolkit font would not help you in
your case.

If Go maintainers decide to change the font metrics you will have the same
problem. Distributing your own font (as you have mentioned) is the right way
to go.

~~~
sp332
If the Go maintainers change metrics, you can still distribute the old
version, or even modify the new version back to the metrics you want and
distribute the result. That's the advantage to friendly licensing.

------
sjellis
I'm surprised that people haven't commented on the implicit story here: the
intention to deliver the "Shiny" cross-platform graphical toolkit for Go. If
that happens, Go becomes one of the very few programming languages with a
default cross-platform UI library.

~~~
creshal
Let's hope it won't be as ugly as the Java crap. Or Tk.

~~~
pron
Do you mean the old Java crap, like

[https://netbeans.org/images_www/screenshots/platform/jmonkey...](https://netbeans.org/images_www/screenshots/platform/jmonkeyengine.png)

[https://netbeans.org/images_www/screenshots/platform/nbAWSAd...](https://netbeans.org/images_www/screenshots/platform/nbAWSAdministrator.png)

[https://netbeans.org/images_www/screenshots/platform/lg_soft...](https://netbeans.org/images_www/screenshots/platform/lg_soft.png)

[https://netbeans.org/images_www/screenshots/platform/GGSSEph...](https://netbeans.org/images_www/screenshots/platform/GGSSEphemerisVisualization.jpg)

[https://netbeans.org/images_www/screenshots/platform/platypu...](https://netbeans.org/images_www/screenshots/platform/platypus-
nb.jpg)

[https://netbeans.org/images_www/screenshots/platform/blueMar...](https://netbeans.org/images_www/screenshots/platform/blueMarine.jpg)

or the new Java crap like

[http://fxexperience.com/wp-content/uploads/2011/05/Charts-
Ba...](http://fxexperience.com/wp-content/uploads/2011/05/Charts-
Bar-152839_1080x675.png)

[http://docs.oracle.com/javafx/2/best_practices/img/saleshist...](http://docs.oracle.com/javafx/2/best_practices/img/saleshistorytab-
small.png)

[https://blog.idrsolutions.com/wp-
content/uploads/2014/03/vie...](https://blog.idrsolutions.com/wp-
content/uploads/2014/03/viewer_drop_down.png)

??

~~~
scrollaway
Funny, Java, using the default UI widgets, always looks a lot closer to this
on my system:

[https://i.stack.imgur.com/9UwJK.png](https://i.stack.imgur.com/9UwJK.png)

~~~
pron
The screenshots _are_ of the default widgets. The only question is which is
the selected look-and-feel (for the "old" Swing toolkit), or the style sheet
(in the new JavaFX).

------
galago
Elements of the proportional font, like the little foot on the 'a' remind me
of Lucida Grande. Lucida Grade was the original OS X system font, which B & H
also developed. This is not their first rodeo, its all about licensing.

~~~
myg204
Definitely has a Lucida Grande feel to it, which, if I recall correctly, was
one of the font on Plan9. The Go Mono isn't close to Lucida Grande Mono, but
certainly looks like an interesting update.

~~~
4ad
Yeah, Plan 9 used Lucida Sans Unicode, of which Lucida Grande is a derivatives
with very minor modifications.

Personally I use Lucida Grande for all my programming.

------
donatj
Interestingly strange they wouldn't just choose an existing open source font
that got along with their license. I guess even you've got Google's wallet
behind you it opens a lot of doors.

~~~
dx034
It confuses me even more considering that Google is behind it. Google just
announced fonts for all unicode characters. [1] Why create an extra font that
will cause every app to look like a "Go" app instead of a native
Windows/Linux/Mac app?

[1] [https://www.google.com/get/noto/](https://www.google.com/get/noto/)

~~~
dsymonds
Google isn't behind it. Some Google employees who work on Go are behind it
(well, and Chuck Bigelow too).

But as keeps getting said: it's about the licensing.

~~~
dx034
As I understand it, some of the main developers are being paid by Google to
develop the language. The main page is also hosted by Google. Even though the
language is technically open, that makes it a Google language for me. Not in a
negative sense, it means that they should profit from it.

I still don't understand why they would have to license the Google fonts for
testing and using them as standard fonts. EDIT: I just saw that Noto is
available with an open license, just not the Go license. But I still think
Google would relicense it to Go, seems like something Google would do in this
case.

~~~
dsymonds
I was referring to the Go font, not Go itself; I thought that's what you were
referring to.

------
chrissnell
The monospace font reminds me of the console on old Sun workstations running
SunOS.

It's pretty hideous. The alphanumerics feel rather slapdash, like this whole
thing was put together by the foundary on a Friday afternoon and made to meet
the minimum requirements but without much love.

~~~
fusiongyro
It's easy to fix though. Just pour more Knuthian bullshit on it until the
hackers think its flaws represent important aesthetic decisions. It was made
by an important type foundry adhering to the strictest mathematical
principles, after all!

------
jballanc
I love that they actually included Bigelow's explanation of each decision
made. So often (especially in the realm of programming fonts, it seems)
decisions on letter forms in new fonts seem to be made "because it looks
nice", but there is, in fact, a science behind it all. Indeed, Go Mono ticks
every item I look for in a programming font (one of only 2 or 3 programming
fonts that does): \- slashed 0 \- easy differentiation of 1, i, l, and | \-
open lower-case g \- proper kerning and adequate width of r, n, and m

Unfortunately, I don't see myself switching away from Menlo to Go Mono for a
silly and purely aesthetic reason: 5 point raised baseline * . Yes, yes...I
know that's how pretty much _every_ font has done * since forever, but after
working with the vertically centered, six-pointed * in Menlo (and SF Mono),
it's hard to go back.

~~~
dbl9
Do you write OCaml or C (comments) by any chance? I've often found it hard to
discover a typeface that has

    
    
        (* this is a comment *)
    

vertically centered. My usual choice is Fira Mono because it looks great and
centers * vertically, though I would love a serif monospace font. Maybe Go
Mono will be revised but I doubt it will be updated anytime soon.

When you say "6 point" do you mean it's bigger than usual?

Is there a place to obtain SF Mono without an Apple Developer account if you
don't happen to have a macOS installation handy?

~~~
jballanc
I've found the vertically centered " _" to be far superior almost everywhere.
Definitely for comments, but even for pointers (yes, I do write a fair bit of
C) it becomes clearer that the glyph is part of the type signature, and not
just a footnote.

By "6 point" I mean the character itself has 6 "arms", instead of the typical
5. For my taste, it makes the glyph feel more balanced.

There is this repo: [https://github.com/hbin/top-programming-
fonts](https://github.com/hbin/top-programming-fonts) . Unfortunately, I'm not
familiar with the legality of obtaining Menlo without OS X/macOS. It is a
variation on Bitstream Vera Sans, which is AFAIK Open Source, but I am
completely ignorant when it comes to how licenses apply to fonts (as opposed
to code).

As for SF Mono, that seems to be impossible to obtain even _if* you have macOS
and an Apple Developer account (only the UI fonts are available for download).
I managed to dig them out of the Xcode application bundle and install them as
system-wide fonts, but was greeted with a very scary warning stating that
installing these fonts could _destabilize my entire system_ (so far my OS is
still running, though)...YMMV.

~~~
dbl9
Centered double quotes?

~~~
jballanc
Gah...silly markdown-not-really-markdown formatting. Should have been: "*"

------
jjn2009
pretty soon you will not be able to compile go without it being written in the
correct font. thus making go code the same no matter where it is written or
displayed!

~~~
wickawic
Brings a whole new meaning to homoiconicity

~~~
reikonomusha
Homoiconicity has more to do with code in language X being directly written
syntactically and semantically as a convenient data structure manipulable in
X. It does not have to do with consistency in appearance.

------
jrockway
Love that screenshot. Reminds me of rebuilding Emacs, opening it up, and
immediately remembering that I forgot to enable Xft or something.

------
ekvintroj
This fonts are pretty cool. But I don't understand why they just used Roboto
or Noto fonts.

~~~
randomdata
Roboto appears to be licensed under Apache 2.0. Noto under SIL Open Font
license.

As these fonts are purportedly intended for testing purposes, presumably they
will be included in the package. Adding additional licenses to the codebase
complicates the usage. You might agree to the terms of the Go license, but not
the Apache license, for instance.

Since this new font is licensed under the Go license, there is only one set of
terms you need to agree to. This is a much better situation for many reasons.

~~~
modeless
Considering the openness of these licenses the concern is silly. The tiny
disadvantage of having an extra open license is heavily outweighed by the much
higher quality and unbeatable coverage of the Noto fonts.

Also, considering that Google owns Noto and has relicensed it in the recent
past, it would probably be possible for them to ship it under the Go license
too.

~~~
EdiX
Unfortunately if you use Noto fonts with Go Rob Pike and Nigel Tao will hunt
you down, show up to your house and kill you and your entire family, so you
have to factor that in to your choice.

------
niftich
From the designers of the Lucida typeface family.

The monospace serif typeface has pleasant, natural thick-thin strokes, giving
it a substantial, typewriter-y appearance instead of the weak lines in most
monospace serif typefaces -- remember Courier New?

~~~
WCSTombs
Yep, Bigelow & Holmes, also the designers of the Luxi font family.

The monospaced font looks like an iteration on Luxi Mono [0], fixing some of
the major issues (lowercase-ell vs. one, uppercase-o vs. zero).

The proportional font likewise looks very similar to Luxi Sans [1], the main
differences I see being again the lowercase-ell and zero glyphs.

[0] [https://www.fontsquirrel.com/fonts/Luxi-
Mono](https://www.fontsquirrel.com/fonts/Luxi-Mono)

[1] [https://www.fontsquirrel.com/fonts/Luxi-
Sans](https://www.fontsquirrel.com/fonts/Luxi-Sans)

------
vorg
I see there's a black-on-white Gopher hiding at U+F800 in the middle of the
BMP Private Use area (U+E000..U+F8FF). Besides that, only Latin, Greek,
Cyrillic, and a few box drawing glyphs are provides. Are there any plans from
the Go Fonts team to provide glyphs for all characters in the BMP, and beyond?

------
jimjimjim
Nice. it looks interesting.

Do i need it? don't know. Will it be useful? might be.

I don't see any reason to complain. It's a completely free font people.

I see no downsides to this.

~~~
4ad
Exactly. On some other forums people complain like someone is forcing them to
use it! I don't understand it at all. How does it affect their life in any
way?

Don't like it? Don't need it? Move on with your life...

------
revelation
The screenshot vaguely reminds me of a scanned copy of code from the 80s.

~~~
petters
Yes, it definitely gives the code a retro feel. My first impression is that I
like it.

------
mmel
Why does a programming language need its own font?

~~~
enneff
Why not?

But seriously, it's of great benefit to Go programmers to have a font that
shares the same license as Go itself. Most fonts are not so unencumbered.

~~~
sambeau
I was surprised to see that you didn't add any Go-specific code ligatures
(e.g. for <\- like Fira Code provides[1]).

Has there been any thought into providing a variant with some? While I could
see why some might be against them I think they're rather fun and can make
code more readable.

[1] see for example
[https://github.com/tonsky/FiraCode](https://github.com/tonsky/FiraCode)

~~~
err4nt
This is honestly where I thought this was going when I saw the title. It would
be cool for a font to be invested in the language it's used to describe to the
point where it supports features of that language.

I use Fira Code for JS, HTML, and CSS and it's great. Very rarely to the extra
fun ligatures get in the way, and when they are printed they look absolutely
gorgeous. I wish all/most code samples in tutorials and articles were set in
it so they would be a pleasure to read.

But these fonts left me scratching my head.

~~~
cp9
fyi you can get most sites to honor your font with a combination of the
browser's default monospace font and extensions like Stylish.

even this comment box respects Fira Code, see[1]

[1]: [https://imgur.com/a/LjbS3](https://imgur.com/a/LjbS3)

------
SamReidHughes
I just got this set up on a Linux system and I think these fonts are
absolutely fantastic. This is the only "programmer's font" I've tried that was
ever any good.

~~~
noir_lord
I like them but they won't be replacing PragmataPro which has ligature support
and works in everything I use, is nicely condensed without feeling cramped and
is just beautiful to look at.

Screenshots: [http://imgur.com/a/tiE76](http://imgur.com/a/tiE76) first image
is Pragmata second Go font, no contest for me.

~~~
hkmix
I used to use Pragmata, but have since switched to Iosevka. It's similar in
width and also supports ligatures.

------
0942v8653
I think these are made in preparation for high-DPI screens.

The serifs are short enough that I couldn't see them all on my regular screen
(particularly the right-hand serif on the lowercase 'w'). But on my phone I
would be able to see it perfectly well. On a high-DPI screen, the text isn't
blurry or anything. They didn't focus on the rendering at all it seems, but
made their screenshots in high resolution.

------
petters
The monospace font looks interesting. Fixed-width serif fonts are not that
common.

But creating fonts for Go? That sounds like a solution in search of a problem.

~~~
ansgri
Fixed-width serif is exactly what I wanted! It's refreshing to be able to
switch from serif to sans-serif, I do that on my Kindle about once a month and
the text immediately becomes less boring.

------
dbl9
This looks like an improved version of Luxi. I couldn't use Luxi Mono because
O and 0 look the same, but this fixes that. I had been looking for a serif
monospace font for a long time and this looks great.

Did anyone else try to use it in xterm or rxvt-unicode?

In xterm and Emacs the vertical spacing seems to be too small, making it look
pressed together.

In rxvt-unicode the only problem is that the renderer displays it stretched
horizontally like a short but wide block.

------
jxy
The vertical line of the box-drawing characters (U+2502 and etc.) is not long
enough.

While you are at it, can you guys complete the APL symbols?

------
swah
Wish they had talked to Fabrizio Schiavi..

~~~
favadi
You mean the Pragmata font?

~~~
cschmidt
Yes, that's the Pragmata guy. I first paid for his font in January 2004, and
he still sends out updates. (I did upgrade to Pragmata Pro in 2011, but
still). He's been doing nifty program specific ligatures lately.

------
rcarmo
These look exactly like the Plan9 fonts (which IIRC were also by
Bigelow&Holmes). Ironically, the Plan9 folk seem to shun TrueType in favor of
bitmap fonts... I'm pretty sure the Raspberry Pi Plan9 image I'm running at my
home office only has bitmap fonts installed.

~~~
4ad
Plan 9 uses Lucida Sans Unicode, which was the OS X system font (as Lucida
Grande) until recently. There is a resemblance between this font and Lucida
Sans Unicode, they come from the same foundry, after all, but they are
significantly different.

> Ironically, the Plan9 folk seem to shun TrueType in favor of bitmap fonts.

It's true Plan 9 uses bitmap fonts, but that's just how the technology was
implemented (so you could use BitBlt, etc), there is no shunning of trye type
fonts.

~~~
rcarmo
Clearly you haven't been on 9fans over Summer :)

~~~
dbl9
Was there a font thread you're referring to?

------
rbanffy
The monospaced font reminds me of Luxi Mono (with the 0 solved) and of the Sun
console font.

------
zhte415
When reading this, I wanted to check the x-heights of letters, as they seemed
proportionally shorter than for example Roboto.

Ended up not checking, but coming across an article by Google on typography in
general, part of their Material Design.
[https://material.google.com/style/typography.html#typography...](https://material.google.com/style/typography.html#typography-
typeface)

------
crsmithdev
Yuck, the monospace font feels too dense, and dislike the serifs.

~~~
sjm
It's a pity when newer typefaces don't have lighter weights — they look far
better on high resolution displays than normal/regular weights, which look
almost bold.

My favourite example and what I use daily, Office Code Pro Light:
[https://raw.githubusercontent.com/sjrmanning/darkokai/screen...](https://raw.githubusercontent.com/sjrmanning/darkokai/screenshots/elixir-
example.png)

~~~
vertebrate
This is MacOS font rendering for you, in Linux normal weight looks normal

~~~
4ad
Or rather, in macOS it looks normal and in Linux it looks too thin.

------
grok2
Go has a cross-platform GUI toolkit? Should I wait for it instead of learning
Qt/C++?

~~~
vanderZwan
It's experimental, so I wouldn't. Pick it up when it gets better.

Qt/C++ skills are both good to have anyway, so it won't be time wasted.

------
talideon
Is it just me, or is every other font produced by Bigalow and Holmes
essentially Lucida?

~~~
4ad
This is much closer to Luxi (especially the monospace font) than to Lucida.

~~~
talideon
Yup, but Luxi itself is essentially a remix of Lucida.

------
sgdread
I usually prefer DejaVu fonts [1]. One of the best fonts for terminal and
coding under free license.

[1] [http://dejavu-fonts.org/wiki/Main_Page](http://dejavu-
fonts.org/wiki/Main_Page)

------
dxhdr
It'd be nice to see font examples with syntax highlighting as well.

~~~
valarauca1
[https://s22.postimg.org/x92shc4wx/Screenshot_at_2016_11_16_2...](https://s22.postimg.org/x92shc4wx/Screenshot_at_2016_11_16_22_11_29.png)

Rust not Go but same idea

------
chj
Looks like a good font choice once you get used to it.

------
tyingq
The first example shown in the post reminds me of the boot up font you would
see on an old SPARCstation.

------
amelius
I hope this UI toolkit will take the good parts of CSS and HTML, and perhaps
toolkits like React.

------
gragas
Honestly how could serif be a good idea? I do not see the appeal at all.

------
smegel
Why wouldn't they just use Google Droid? Strange.

~~~
dublinben
From the comments here so far, it seems really important that they could be
under the same permissive license as the rest of the project.

~~~
tapan_k
Another reason to not just use Google fonts is to make sure they do not - even
if unwittingly - give an impression that the Go language is controlled by
Google. This is an open source initiative (at least in spirit) and needs to
make choices akin to its roots.

------
kingmanaz
Not a bad font. Personally prefer Anonymous Pro.

