[Pharo-project] Look and font competition

Ben Coman btc at openInWorld.com
Tue Jun 12 12:07:23 EDT 2012


Stéphane Ducasse wrote:
> Hi guys
>
> this morning Igor shows me all his work around dynlib loading of third party plugins. 
> And yes now we get all the third party plugins downloaded and compiled (yes with only one copy of FT2)….Great stuff! 
>
> Now we would like to organize a little competition for the official look of Pharo 2.0. So if you feel that you are a little 
> bit designer inside, please send us proposals.
> We propose this one :) based on Curlz MT (welcome to the world of the pink little ponies) :)
>
>
>   
I've got an interest in graphic design.  I've just done a bit of reading 
around to familiarize myself with font choice.

First of all, there is the question of monospaced versus proportional 
fonts.  It is widely believed that monospaced fonts are better for 
programming but then Smalltalk is often different and better.  I notice 
that Pharo 1.4 uses proportional fonts and I've never had a problem with 
that.  There is good discussion at [1]. 

Then there are considerations of technology differences to consider 
between platforms.
    * A difference in rendering between Microsoft and Apple [2]
    * Whether ClearType is available cross platform? Some advantages [3]
    * Is TrueType available on all platforms?
    * Will anti-aliasing be always-on? 

[1] 
http://programmers.stackexchange.com/questions/5473/does-anyone-prefer-proportional-fonts
[2] http://www.joelonsoftware.com/items/2007/06/12.html
[3] http://blogs.msdn.com/b/fontblog/archive/2005/12/13/503236.aspx

Some points against proportional fonts are:

1. Not designed for programming.  Distinguishing small-o, cap-o & zero 
and one, small-i, cap-i, small-l, cap-L is the critical feature. 
Punctuation is often not very distinctive.  A little while ago there was 
a hack to make the period character larger.   Also in Pharo 1.4 cap-i 
and small-l are hard to distinguish. 

2. Alignment of indents.  Mainly this is where different developers can 
use 8, 4 or 2 spaces for fixed tabstops which affects the alignment of 
text.  However searching World > System > Settings for "tab" doesn't 
show this is configurable, so Pharo seems to sidestep this issue.

So I like...
   * Droid Sans (http://www.google.com/webfonts/specimen/Droid+Sans) 
Apache License. Steve Matteson.

   * Ubuntu (http://www.google.com/webfonts/specimen/Ubuntu) (similar to 
Open Font License)

Some points for monospaced fonts are:

3. Some characters are just wider than others. Cramming an 'm' into the 
space of an 'i' makes it challenging to design a good readable monospace 
font.

4. Most programmer fonts lack italic and bold - which I think becomes 
important for Nautilus.

 * From 
http://www.codeproject.com/Articles/30040/Font-Survey-42-of-the-Best-Monospaced-Programming   
I like...

 * Liberation Mono.  In particular it seems the clearest of the lot when 
ClearType is disabled.  It deals very well with point (1) above. However 
while the download page says it is Open Font License the download itself 
contains only a modified GPL2 license that allows embedding without 
modification of the font. Steve Matteson.

  * Droid Sans Mono.  Same author. Distinguishable point (1). Strong 
period. Strong number 1 which matches how it appears in engineering 
drawings.  Apache license.  Also consider that people like what they are 
familiar with, and Android will become fairly widespread.

  * Dina. Clean without ClearType.  Identical even with ClearType. MIT 
type license.

AnonymousPro does also looks good.

Disclaimer: I am yet to use these fonts in anger.  Just reporting 
impressions so far.

cheers -ben










As an aside, even with monospaced fonts there remains an issue with 
fixed tabstops where new text inserted preceeding a tab stop bumps the 
tab out of alignment with other vertically aligned text.  An very 
interesting fix for this is "elastic tabstops" [2] [3]
[2] http://nickgravgaard.com/elastictabstops/
[3] http://tibleiz.net/code-browser/elastic-tabstops.html





More information about the Pharo-dev mailing list