Slashdot Mirror


Programming With Proportional Fonts?

theodp writes "Betty or Veronica? Mary Ann or Ginger? Proportional or Monospaced? There's renewed interest in an old blog post by Maas-Maarten Zeeman, in which M-MZ made the case for programming with proportional fonts, citing studies that show proportional fonts can be read 14% faster than fixed-width fonts. Try it for a couple of weeks, he suggests, and you might like it too. Nowadays, Lucida Grande is M-MZ's font of choice on OS X, and he uses Lucida Sans on Windows. Helvetica, anyone?"

16 of 394 comments (clear)

  1. Many years ago ... by Anonymous Coward · · Score: 5, Informative

    ... /. had a thread very similar to this.

    And there were a lot of valuable inputs, like

    * 1. Make sure that the font's period (.) sign and the comman (,) sign is BIG, to aid in the debugging process.

    * 2. Color of the font and background must also complement each others. Too much contrast hurts the eyes. Too little will blur them up and make it hard to see.

    There are many other very useful pointers in that thread. If anyone can dig that thread up it would be very very useful for the new crop of programmers.

    1. Re:Many years ago ... by BenoitRen · · Score: 4, Informative
  2. Re:Monaco by psergiu · · Score: 5, Informative

    Monaco is one of them. 0 is slashed and 1, l, I and | are unique.

    --
    1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
  3. Examples... by wisnoskij · · Score: 2, Informative

    I like the examples they show to prove their point.
    Fixed width Monaco 10pt, which comes out too small and kind of blurry to me.
    and Proportional Helvetica Neue 12pt, which is in a bigger font and is actually reasonable sized.

    so yes, a reasonable sized proportional font is easier to read then a undersized fixed width font...

    --
    Troll is not a replacement for I disagree.
  4. Re:Consolas by MoeDrippins · · Score: 2, Informative

    I do much the same. I waffle between light grey and "wheat"* for the background, but never, ever white.

    * wheat: http://en.wikipedia.org/wiki/Wheat_(color)

    --
    Before you design for reuse, make sure to design it for use.
  5. Link for hinted version by msgmonkey · · Score: 2, Informative

    I thought I would have a look at this font but it looks terrible on windows with cleartype on at 11points, however I managed to find a hinted version at:

    http://pgl.yoyo.org/bits/tech/inconsolata-cleartype-raph-leviens-inconsolota-font-hinted-for-windows/51:2008-09-25/

  6. Re:Overrated by interiot · · Score: 4, Informative

    Elastic tabstops solve the alignment problem. "Do what I mean, not what I say" with whitespace is a good thing, particularly when the width of a character can be totally different for every reader. Elastic tabstops aren't implemented in many editors yet (currently available as an optional feature in gedit and Code Browser), but once it becomes more widespread, many more programmers will be free to try out proportional fonts for coding.

  7. Re:Pencil and Paper by MrMr · · Score: 2, Informative

    Goose feathers make better quills than those from birds of prey.
    And yes, I do program in fortran.

  8. Plan 9 has always used proportional fonts... by CondeZer0 · · Score: 4, Informative

    The programming environments by Rob Pike use proportional fonts by default. Both Acme (also used by Dennis Ritchie) and Rob's previous text editor Sam (still used by Ken Thompson, Brian Kernighan and Bjarne Stroustrup).

    The rio terminal windows also use proportional fonts.

    At first (like many other things from the Plan 9 world) the lack of precise control about how everything spaced can be a bit frustrating, but once you learn to stop worrying about it, it can be rather pleasant and liberating to use (good) proportional fonts for writing code.

    --
    "When in doubt, use brute force." Ken Thompson
  9. inilliibiliti by epine · · Score: 4, Informative

    proportional fonts can be read 14% faster than fixed-width fonts

    Sounds good, until brain engages, 14% later. can be always flags +10 in my wetware instance of CrapAssassin, unless BeerGoggles is displacing cycles.

    I think, with maybe 60,000 hours of reading time under my lengthening belt, I'd have noticed this effect by now, if it applied carte blanch to all modes of reading. The other night I skimmed the 130,000 words supplied in response to the Edge 2010 question "How is the Internet changing the way YOU think?" This was not the cream of their efforts, but there were some interesting topical centers.

    My reading speed through this exercise varied by an order of magnitude, depending on signal density. The weird thing is, for some of the longer responses, my subconscious sends notice "nothing to see here" at a skimming speed where I have no clue what words are actually flying past. Every so often, I drop out of warp speed to double check, and sure enough, not very much to see here, by whatever criteria turns my crank, which itself is sometimes elusive to my conscious mind.

    I took a speed reading course and read 'War and Peace' in twenty minutes. It involves Russia.
              — Woody Allen

    I once attended a school where in some dark closet they kept copies of "Duck and Cover" films, as well as a CRM114-vintage machine designed to stretch your saccade, by forcing you to read words in a revealed window with a progressive speed ratchet.

    I never did especially well compared to the best of my classmates on the quiz that followed. Had they slowed that stupid thing down to about half the speed they were forcing us to read, followed by an essay question to expound upon conceptual error, distortion, slant, exaggeration, and damn lies, I would have run out of foolscap before completing my task. In critical response, I was an autobahn surrounded by country lanes, yet many of my classmates could read for uncritical comprehension faster than I could. Dangerous skill. (I'm sure for some of my old classmates, whatever dirt path once existed has returned to nature in their adult years, with ample fertilizer from mainstream media, but that's another matter.)

    It's no different with source code. You can read for comprehension, or you can read for all possible error, a state of mind where the eyes consume only a tiny fraction of total brain glucose. Critical thought in the candy factory is hard enough when the conveyor flows along at a consistent speed. Neither can I properly type a long sequence of i and l characters worth a damn in a proportional font. My eyes fail to sync with my fingers, and half the letters fall down my shirt.

    Nothing impairs reading speed like a tightly written algorithm where every symbol is exactly right. Nothing inflates the volume of symbols violently gouged onto the retina as a chunk of code where no symbol means precisely what it seems to mean.

    Personally, I'm not lining up for smaller gouges in greater number.

  10. Re:Overrated by mdf356 · · Score: 2, Informative

    and 8 spaces is just too wide for most programming.

    Tell that to the FreeBSD foundation. Or the bulk of the kernel developers for AIX. Both places use 8 space tabs in style(9).

    --
    Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
  11. Re:Bad for the next maintainer by TheRaven64 · · Score: 2, Informative
    This is very language specific. If you wrote code in Objective-C or Smalltalk then you would have come across more problems. In these languages, message sends (method invocations) have named parameters. It's common to write code like this:

    [someDictionary setObject: someObject
    forKey: aKey];

    This should be aligned so that the colons in the two parts of the method name line up. This makes the code much more readable, especially when you have longer or nested message sends, but it only works when the size of a space is the same as the size of the character above it.

    --
    I am TheRaven on Soylent News
  12. Re:Small apples vs big oranges by TheRaven64 · · Score: 2, Informative

    Not only that, but he took a font specifically designed to be readable without antialiasing at small sizes (Monaco), displayed it with antialiasing, and then concluded that it was hard to read.

    --
    I am TheRaven on Soylent News
  13. top-10-programming-fonts by hey · · Score: 4, Informative
  14. Re:Overrated by Anonymous Coward · · Score: 1, Informative

    One thing's for sure... I wish I could type this message that I'm typing right now in a proportional font. Monospaced is horrible for non-code text. But the standard text input area for HTML is monospaced. Slashdot really needs an option for an "advanced editor".

    HTML does not define a "standard text input" font. Blame your browser.

  15. I'm suprised not to see this mentioned by jdougan · · Score: 2, Informative

    A data point in this discussion is that it is traditional for Smallltalk implementations to use proportional fonts as the default for code editing. I've been programming in Smalltalk since 1985 and I think I've only encountered a couple of people who changed the default to anything but a proportional font. Some Smalltalks allow for rich text code, and then you'll see ASCII art done as a monospaced font section embedded in a larger proportional method or comment. But I've not seen it that often. Maybe I've led a sheltered life.

    Another data point is the book "Human Factors and Typography for More Readable Programs" by Ronald Baecker and Aaron Marcus ( http://www.amazon.com/Human-Factors-Typography-Readable-Programs/dp/0201107457 ). In this outstanding volume they build a framework for understanding program legibility and an approach to formatting C programs that utilizes this framework. Recommended to anyone who wants to have a better understanding of the issues in this area.