Forgot your password?
typodupeerror
GUI Programming

Programming With Proportional Fonts? 394

Posted by timothy
from the now-that's-wild-and-crazy dept.
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?"
This discussion has been archived. No new comments can be posted.

Programming With Proportional Fonts?

Comments Filter:
  • prophecy (Score:4, Funny)

    by Anonymous Coward on Sunday January 17, 2010 @07:43AM (#30797550)

    this guys just trying to ensure the prophecy of the helvetica wars is fulfilled

  • Monaco (Score:4, Funny)

    by psergiu (67614) on Sunday January 17, 2010 @07:44AM (#30797554)

    Monaco is fixed-width & good looking.

    • Re:Monaco (Score:5, Insightful)

      by psergiu (67614) on Sunday January 17, 2010 @07:52AM (#30797582)

      background: black
      foreground: X11:peachpuff or #99CF96
      font: X11:10x20 or Monaco 12pt

      That's way faster to read than anything on a bleed-your-yeys white background.

      TFA is comparing 10pt Monaco with a 12pt font. Put them both at 12pt and Monaco - which is monospaced - the way God intended computer displays to be - wins.

      • by frisket (149522)

        background: black
        foreground: X11:peachpuff or #99CF96
        font: X11:10x20 or Monaco 12pt

        That's almost exactly how my Emacs starts up, except I tend to use 12x24 for text documents (eg XML, LaTeX, etc) as it's even more readable; I don't do a lot of programming these days. The trick is to get the right set of colours for font-lock-mode...

      • That's way faster to read than anything on a bleed-your-yeys white background.

        For a lot of people (I've seen estimates between 20% and 50%), light-on-dark is much harder to read than dark-on-light, even if they wear corrective glasses or contact lens.

        I get headaches from reading light text on a dark background...

      • Re: (Score:2, Redundant)

        by bmo (77928)

        >background: black
        >foreground: X11:peachpuff or #99CF96
        >font: X11:10x20 or Monaco 12pt

        You just reinvented the amber monochrome screen.

        Now if you could simulate a long persistence phosphor.

        Maybe there's a market for used Wyse 80 amber terminals.

        --
        BMO

      • Re: (Score:3, Insightful)

        by kbielefe (606566)

        TFA is comparing 10pt Monaco with a 12pt font. Put them both at 12pt and Monaco - which is monospaced - the way God intended computer displays to be - wins.

        You're missing the point that if you're trying to fit a certain amount of text horizontally on the screen, you can use a bigger font size with a proportional font.

    • Re:Monaco (Score:4, Insightful)

      by Jurily (900488) <jurily@@@gmail...com> on Sunday January 17, 2010 @07:55AM (#30797608)

      There are a lot of fixed width fonts specifically designed so each character is unique in appearance. That is not negotiable when programming.

      oO0 il1 lilli

    • Re:Monaco (Score:4, Funny)

      by h4rm0ny (722443) on Sunday January 17, 2010 @08:17AM (#30797710) Journal

      Still, I'd be willing to give it a try. If I knew how to get proportional fonts in vi. Anyone tell me how to add proportional fonts to a terminal in KDE 4?
      • This is actually something that I've been playing with recently. For simple command-line programs, including the shell, there's no reason why the terminal emulator can't use proportional fonts. For things that use curses, it's a bit more difficult. You can more or less get it working if you have the terminal sends SIGWINCH every time you make a line long enough to cause it to wrap, resetting the window 'width' to the number of characters in the line that will wrap. Programs that use curses to generate d
    • by thogard (43403)

      Monaco is fixed-width & good looking.
      Um no... its not good looking.

  • Overrated (Score:4, Insightful)

    by tjstork (137384) <todd@bandrowsky.gmail@com> on Sunday January 17, 2010 @07:49AM (#30797572) Homepage Journal

    I've programmed in proportional fonts. It's ok, but I prefer fixed width for alignment.

    • Many years ago ... (Score:5, Informative)

      by Anonymous Coward on Sunday January 17, 2010 @07:58AM (#30797628)

      ... /. 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.

    • Re:Overrated (Score:5, Informative)

      by interiot (50685) on Sunday January 17, 2010 @09:11AM (#30798022) Homepage

      Elastic tabstops [nickgravgaard.com] 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 [nickgravgaard.com] and Code Browser [tibleiz.net]), but once it becomes more widespread, many more programmers will be free to try out proportional fonts for coding.

    • Re: (Score:3, Interesting)

      by Megane (129182)

      I did it once too, back in the early '90s. I was working on an adware program for Buick, so I used Eras as the font in my IDE (FYI, I was using a Mac, I think the PC guys were using Turbo Pascal) and it worked out real well.

      But I prefer monospaced fonts because you can't save your font and tab stop preferences in a plain-text ASCII file, and you don't want your text to look like a complete mess when someone else looks at it. You can only use hard tabs, and 8 spaces is just too wide for most programming.

      On

      • Re: (Score:3, Informative)

        by mdf356 (774923)

        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).

      • Re:Overrated (Score:5, Insightful)

        by ceoyoyo (59147) on Sunday January 17, 2010 @12:11PM (#30799306)

        Just use tabs. If the dork who opens your text file doesn't have his tab stop set for his preferred size then he deserves to see ugly code.

        You probably use four spaces, hey? Personally I hate four spaces. Waste of space. Two is the way it was intended to be. But I understand that other people might have different preferences. With tabs we can all be happy.

    • Re: (Score:3, Insightful)

      by Yvanhoe (564877)
      Actually, it is less error-prone to work with fixed fonts, IMHO.
      In many occurences, one can anticipate if one line will have one more or one less characters than the previous one. Having a way to quickly check this gives a little supplemantal layer of proof-reading.

      this->posx=0;
      this->posy=0;
      tis->ttl=40;
      this->source="";

      The typo is easier to spot in fixed font.
  • Consolas (Score:5, Insightful)

    by Mangala (604031) on Sunday January 17, 2010 @07:52AM (#30797584)
    Microsoft's Consolas with properly tweaked ClearType has been my personal favorite since its release. Another huge improvement to my code screen is changing the background color to a light grey - still not a dark color scheme, but much less glaring than pure white.
    • Re:Consolas (Score:4, Insightful)

      by Anonymous Coward on Sunday January 17, 2010 @08:32AM (#30797754)

      Second the Consolas recommendation. One reason why I prefer fixed-width fonts is that proportional fonts reserve too little room for dots, commas, semicolons and other "narrow" characters, which happen to be of great importance in programming. Proportional fonts focus on text, while programming languages focus on structure.

    • Re: (Score:3, Informative)

      by MoeDrippins (769977)

      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) [wikipedia.org]

    • by gbjbaanb (229885)

      second the light grey, but I use an off-white instead. The creamy colour is still white-ish so doesn't look as nasty as grey but takes the edge off pure white. Hint: you need to take the tiniest amount off, too much and the little colour square you thought looked good will turn yellow on a large panel.

    • by EdZ (755139)
      I can't find the link right now, but I remember reading that the easiest to read (i.e. a sample group were able to read it fastest on average) font and background colours are a pale yellow for the background and a dark green for the font.
  • by Anonymous Coward on Sunday January 17, 2010 @07:52AM (#30797590)

    MS Comic Sans is simply the best. My code doesn't have bugs, it has bloopers and out-takes.

  • fixed (Score:3, Interesting)

    by HalfFlat (121672) on Sunday January 17, 2010 @07:55AM (#30797606)

    fixed, AKA 6x13, or more formally, -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1.

    The one true programming font. No other font better manages the compromise between legibility and compactness, and being a well-crafted bitmap font, it is crisper and clearer than ever on modern LCD screens.
    X11 got it right 25 odd years ago, and now with near-full Unicode support, it's only gotten better.

    • by psergiu (67614)

      or 10x20 if you have a high-dpi display.

    • Re: (Score:3, Interesting)

      by arth1 (260657)

      I'm a predominantly Unix (and -like) user myself, but X11 fonts is one department where I think work is needed. The choice between 75 and 100 dpi (newer displays tend to be far more than 100 dpi), and no subpixel smoothing? As for "fixed", it's one of the least readable fixed width fonts. Whenever I encounter it, I switch it over to "screen" (by Haeberli, then at SGI), or better yet, consolas if hinted fonts are supported.

      As for TFA and using proportional fonts for programming, all I can say is that the

      • by Stele (9443)

        I've been copying "Screen13" around to my various systems since working on SGIs in the 90s. I even have my editor set up to use the white on dark blue/purple background found in SGI terminals. Very nice readable font and text you can stare at all day.

  • Pencil and Paper (Score:5, Insightful)

    by turgid (580780) on Sunday January 17, 2010 @07:56AM (#30797616) Journal

    It's the only way to write real code.

  • by drerwk (695572) on Sunday January 17, 2010 @07:56AM (#30797618) Homepage
    This was my favorite for a long time. No question about 1 and l, or 0 and O; which may have been identical in the default Monaco. Also :,;, and , where slightly bold so one could easily see statement ends.
    But for whatever reason, big screens, better fonts, syntax highlighting. ProFont was quite readable in 9pt; important on small screens. I might try to put ProFont in Eclipse tomorrow. ProFont can be found here: http://www.tobias-jung.de/seekingprofont/index.html [tobias-jung.de]
  • by mattdm (1931) on Sunday January 17, 2010 @07:59AM (#30797630) Homepage

    Reading prose is different from reading code. I'd think that whatever you gain wouldn't be enough to make up for the loss from lack of vertical alignment.

    Additionally, which monospaced font you use matters. You need one that's designed to be readable and to make clear distinctions between 0 and O, l and 1, and so on. I use Raph Levien's Inconsolata [levien.com] for coding, and it's excellent (and available under the Open Font License).

    On Fedora, yum install levien-inconsolata-fonts.

    • by Kjella (173770)

      Reading prose is different from reading code. I'd think that whatever you gain wouldn't be enough to make up for the loss from lack of vertical alignment.

      As long as space is a fixed width, then you should still have verical alignment... Imagine:

      if ( foo ) {
      bar();
      } else {
      otherbar();
      }

      vs

      if ( foo ) {
      bar();
      } else {
      otherbar();
      }

      In fact, I think fixed space characters can put unproductive attention to variable name lenghts over content to create "nicer" looking code.

      • by TheRaven64 (641858) on Sunday January 17, 2010 @09:30AM (#30798138) Journal

        You're confusing indenting with alignment. Indenting is a set of whitespace at the start of a line indicating the depth in the scope. Alignment can be anywhere, for example between variable types and their names in a structure. If you have an int element and a float element, you might put one space after float and three spaces after int, then the variable names will line up. In languages like Objective-C and Smalltalk it's common to have colons lined up in message sends that wrap more than one line. To do this, you need to be able to guarantee that the whitespace that you put in one line is the same width as the characters that you put in the other.

        If your editor supports elastic tabstops, then you can use them, but then your code will look weird in something like viewvc or any editor that doesn't. This is why our coding conventions say you should use tabs for indenting and spaces for alignment. A tab is a semantic 'indent by one level' character, while a space is an 'advance the cursor by one character width' character. To have this work in a proportional font, you'd need to redefine space to mean 'advance the cursor by the width of the character directly above'. This is not impossible, but it would require a bit of hacking in the layout engine.

      • My code often has multi-column formatting I would like to preserve. e.g. a initialized structure array or a list of #defines where I want names and value in two columns
    • 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/ [yoyo.org]

  • by krou (1027572) on Sunday January 17, 2010 @07:59AM (#30797634)

    From what I understand, the way we process written words is based on the idea that each word is a like a "picture" made up of letters. So, the easier it is to identify the picture, the easier it is for us to read. This means that the width and height of letters plays an important part in creating unique pictures. It is for this reason (at least in print) serif fonts are much easier to read than sans-serif fonts. It's also for this reason that ALL CAPS is the most difficult way to read compared to just reading normal text. On this basis alone, it's likely that proportional fonts are better to read because they're likely to create better word pictures.

    • by Krioni (180167) on Sunday January 17, 2010 @08:15AM (#30797698) Homepage
      What I wonder about is whether the ease of reading attributed (correctly, I assume) to proportional fonts apply to prose, but not necessarily to the kinds of reading needed in programming. When I read code, I'm sometimes looking for single-character mistakes. In a case like that, a proportional font that helps form "word-pictures" might mask an error. In other words, the speed attributed to proportional fonts is for reading comprehension — translating text into thought — but might actually detract from the speed and accuracy of reading for the purpose of editing/finding mistakes.
      • by krou (1027572)
        That is a good point. Whether speed of reading for programming is as important as equal spacing, or identifying unique characters etc. is something that is definitely debatable. We don't read code the same way as we read a novel, not to mention that overall code structure (spacing, indents etc.) has a lot more meaning than what you'd find in a book.
      • Re: (Score:3, Interesting)

        by smisle (1640863)

        If I remember right, (some) Editors (the human kind that edit manuscripts) prefer monospaced fonts for exactly the same reason - they can catch errors much easier.

        I typically use the font 'Monospace' although I'm not particularly attached to it.

    • by jez9999 (618189)

      I guess it just goes to show it's all down to personal taste, because I have to say I disagree with most of that. OK, reading all caps is tougher, but apart from that I find a good fixed-width font just as easy to read as a good proportional font, and serif/sans- just as easy as each other to read; if anything, sans- looks a bit nicer when printed.

      • by ironicsky (569792)
        The only thing I disagree with is the serif vs san-serif thing both looking good in programming. I own a domain name that specifically plays on the fact that most browsers use a san-serif font for displaying URL's... the url ends up looking like this when typed in upper case letters : lllllllllll.com because I's 1's and lower case L's all look the same or very very similar in a san-serif environment. I prefer a fixed width font serif font for any coding because tabs/spacing line up better and its easier to
    • by jbengt (874751)

      As long as tabs are fixed, and delimiters like spaces, periods, and commas are sufficiently large, I prefer proportional fonts while coding. Then again, I don't code 8 hours a day, so YMMV.

      Maybe it's my old eyes, but I find serif fonts much harder to read than sans-serif.

      Also, I find "ALL CAPS" at least as easy to read than "normal text". That could be because I work in the construction industry where drawings use all caps. (In fact, until several years after we switched from hand drafting to CAD, I fou

  • Reading code is not like reading prose. It's more like reading poetry, where how the text elements are spaced and aligned can say a lot about the author's intended meaning. If I'm reading a book, I definitely want it typeset with a proportional typeface. Code, on the other hand, is MUCH more legible when set monospaced.

  • Not the bottleneck (Score:5, Insightful)

    by bcmm (768152) on Sunday January 17, 2010 @08:07AM (#30797664)
    Speed of reading is not a bottleneck in understanding code anyway, since I am sure it is pretty uncommon to be able to understand code while reading it as fast as you would read a novel.

    And there are numerous disadvantages: lack of alignment, smaller punctuation making syntax errors less visible (" '" vs "' " for example), etc., etc.
    • by Tatarize (682683)

      Yeah, the only thing about a font that wou1d make code more readab1e is making 'l' and '1' not look like the same thing. Everything e1se is icing.

    • by interiot (50685)
      You can easily modify one of the GPL fonts to use wider punctuation, and call it a programmer's font. The important thing that makes proportional fonts faster to read is that the letters are proportional-width, punctuation width doesn't necessarily have to stay small.
    • inilliibiliti (Score:5, Informative)

      by epine (68316) on Sunday January 17, 2010 @10:17AM (#30798478)

      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 [youtube.com] 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.

  • I wonder .. (Score:2, Insightful)

    by Anonymous Coward

    How do you align comments, etc.? How do you do visual block selection? What if you want to add a small ASCII drawing to a comment?

    The disatvantages seem overwhelming to me, and I find good monospace fonts (Deja Vu Sans Mono, Inconsolata, ...) easy enough to read. Also, some editors (e.g. gvim) will scale proportional fonts to make them look monospaced (and really ugly).

    • Re: (Score:2, Insightful)

      by d3matt (864260)
      Let's not forgot standardized coding styles. I have a hard enough time with developers who use the wrong spacing for tabs in their editor window!
    • Re: (Score:3, Funny)

      by gbjbaanb (229885)

      What if you want to add a small ASCII drawing to a comment?

      You mean like this:

      requirements
      specification ---> o
       
      original coder --> O
                        -|-
                        / \

    • by Jugalator (259273)

      How do you align comments, etc.?

      By tabbing to the configured ruler position in our IDE of course!

      Heh, but seriously, is there a development IDE that support that thing?

  • Old news (Score:2, Redundant)

    In the comments there, MMZ (author) notes "This was written 2 years ago."

    • Is that a pre-emptive strike against /. duping? He's got to learn to play by the rules that govern /. !

  • Examples... (Score:2, Informative)

    by wisnoskij (1206448)
    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...
  • Vertical alignment (Score:3, Insightful)

    by Skapare (16644) on Sunday January 17, 2010 @08:29AM (#30797744) Homepage

    I'm not willing to give up on vertical alignment. And lots of code sections I've written, in addition to ascii-art comments to explain lots of code, really needs that vertical alignment. And that's not just leading alignment, it is internal alignment.

    This won't break Python's indentation based syntax because one should be using consistent indentation. But many displays of proportional fonts will collapse multiple spaces into the space of one, and even Python becomes hard to read.

    The solution is to have a proper display system that can do both proportional fonts AND controlled alignment at the same time, without mangling the code files themselves, for all active programming languages (and that's a LOT of them). Inserting invisible alignment into the code is not an option unless we can teach every language parse to remove such alignment elements before parsing the code for what it is coded for. Someone could do this with a new language I don't doubt. But it remains to be seen if anyone can do it in general for all existing active languages.

    Oh, and if you do come up with a solution and it just can't manage to achieve it with COBOL, I won't cry. But it better work with assembly and microcode syntax.

  • But try it in assembly language.

  • I like to line stuff up, such as assignments. (Tried to demonstrate this with a code sample, but /. comments collapse spaces)

    So for a list of const definitions in .h file, for example, despite variable names of differing lengths, the "=" signs will all be in the same column, and the values will all begin in the same column.

    You might be able to achieve this with a proportional font and tabs, but I don't trust tabs.

    • by u38cg (607297)
      The pre tag. Learn it, love it.
      • by slim (1652)

        Slashcode appears to strip <pre>.

        It accepts a <code> tag that puts your comment in a monospaced font, but spaces are still collapsed.

  • reads faster? (Score:5, Interesting)

    by g253 (855070) on Sunday January 17, 2010 @08:39AM (#30797808) Homepage
    Are we really in such a hurry when reading code? I'm under the impression that fixed fonts allow us, when we parse code, to see the different elements more clearly because their size is determined by the number of characters. But that's just an intuition. Anyone else has the same feeling?
  • visual cues (Score:5, Insightful)

    by pz (113803) on Sunday January 17, 2010 @08:41AM (#30797816) Journal

    Human languages have lots and lots of redundancy, such that you can often either screw up letter order, word order, or even drop entire words, and often the full meaning is clear. Visual cues in the form of paragraphs and chapters are added to help guide the reader, but removing them would not render the text entirely incomprehensible.

    Computer languages are not as forgiving, and, also, lacking redundancy, far denser. Reading speed is irrelevant because of the bottleneck formed by reading comprehension. Code is rarely read in novel-like linear fashion, but, much more often, flitting from one part of the text to another, navigating through visual cues. Visual cues in the form of often richly structured layout that includes idioms not required by syntax make navigating and comprehending code possible, and removing them although would, in most languages, not change the meaning of the code, would erect a formidable barrier to comprehension. Not using these cues to the fullest to help write clear, expressive and maintainable code is being self-indulgent and shortsighted. Requiring that a particular, and perhaps unspecified font be used for best display, rather than the ubiquitous assumption of monospaced font, is mere vanity.

    Remember, when code is written, it is meant not only to be converted into executable machine language, but also to be comprehensible and comprehended by other programmers, or future selves. Clarity of expression is vital.

    • Re: (Score:3, Insightful)

      by coryking (104614) *

      Yup,

      Reading speed is irrelevant because of the bottleneck formed by reading comprehension.

      You shouldn't be reading code word for word anyway. Most of a programming language just symbolic (if, for, while) and could be replaced by icons and mean th same thing. The only real words are the variable and function names. As you read the names, it automatically fits them into the overall block of code. The only way your brain can do this preattentive trick [ncsu.edu] is if you provide it visual queues through syntax colo

  • ... out there, regardless of the coding language, who are developing and writing their code on those old punch card systems ... you insensitive clod!

  • At work I do a bit of matlab programming and the default font makes it very hard to see the difference between parenthesis and curly brackets. That's a huge glaring flaw in the defaults that come with the IDE.

    Back in the dark ages when I did a lot of FORTRAN77 programming, I would output a lot of data tables. Trying to setup the print statements to make those tables with a proportional font would make me want to kill someone.

    Today I pick my fonts for programming on how readable the punctuation and letters

  • The "article" is stupid and ill-informed.
    The author compared a Monaco at 10pt with Helvetica at 12pt and concludes Helvetica is easier to read.

    I could do a similar test with Helvetica at 7pt and Arial at 12pt and conclude that Arial is better!

    In programming, readability is determined by different factors than for literature. Word-pictures are less important since you basically have to deal with a lot of made-up words (variable and function names) but what's really important is to eliminate any room for misi

    • Re: (Score:3, Informative)

      by TheRaven64 (641858)
      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.
  • by Looke (260398) on Sunday January 17, 2010 @08:51AM (#30797874)

    All code in Stroustrup's "The C++ Programming Language" is presented in a proportional-width font: "At first glance, this presentation style will seem 'unnatural' to programmers accustomed to seeing code in constant-width fonts. However, proportional-width fonts are generally regarded as better than constant-width fonts for presentation of text. Using a proportional-width font also allows me to present code with fewer illogical line breaks. Furthermore, my experiments show that most people find the new style more readable after a short while."

    Not only is the font proportional, but it's bold, italic, and serif as well. Now, reading a textbook is of course pretty different from editing on-screen, but I remember reconsidering some of my habits after reading that book. That code ain't hard to read.

  • by tagattack (412693) on Sunday January 17, 2010 @09:00AM (#30797946) Homepage

    VIM renders text-area as a grid. This is compatible with column-area selection, and other features it supports which frankly I use nearly daily. While I've honestly considered using proportional fonts — I've tried living without VIM, switching to Eclipse or IDEA for several months at a time to give the IDE experience a full opportunity. Doesn't work for me, so neither will proportional fonts.

    Besides there seem to be more reasons not to use proportional fonts than to use them:

    • Lot's of people align assignments, this will look terrible.
    • Several formatting techniques (newline before curly bracket) depend on the width of whitespace.
    • Occasionally code contains tabular data which is easily formatted for digestibility using fixed-width fonts.
    • Occasionally, although rarely, comments may contain diagrams or ascii-art figures which would be rendered useless with proportional font.

    Reasons to use them:

    • You might be able to read the contents of your code up to 14% faster, if you don't run into the issues above...
  • Call me crazy.... but I started doing this a couple years ago.

    I can't remember what font it was now; I was programming under linux using eclipse.

    But I really enjoyed switching away from a fixed width font...

  • ... but my VT102 terminal only has the one and the APL compiler doesn't understand a \t.
  • Missing the Point (Score:4, Insightful)

    by Deorus (811828) on Sunday January 17, 2010 @09:59AM (#30798326)

    While fixed-width might not be recommended for text, code is not exactly regular text. In a regular essay, skipping a period or a comma is usually not an issue. In code, however, it makes a world of difference, and therefore it doesn't make sense to use a font that may cause confusion between a pair of parentheses '()' and a zero '0', an 'I' and an 'l', a single dash '-' and two dashes '--', etc. Fixed-width founts are a lot clearer, and clarity and usability are extremely important for me.

  • by CondeZer0 (158969) on Sunday January 17, 2010 @10:17AM (#30798470) Homepage

    The programming environments by Rob Pike use proportional fonts by default. Both Acme [cat-v.org] (also used by Dennis Ritchie) and Rob's previous text editor Sam [cat-v.org] (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.

  • RTF! (Score:2, Insightful)

    by Megane (129182)

    I see a great need for compilers to support an RTF-to-plaintext filter on their front ends. Then you can program in whatever font you want, and it will look essentially the same when viewed by anybody else.

    But there should also be a standard on what you should and shouldn't do. For instance, it should not be kosher to specify text sizes or colors. Text sizes give you the "HTML mail" problem (where Outlook e-mails show up in a tiny font because the HTML hard-codes the font point size). Text colors screw thi

  • If they did those studies with $JoeRandom, they are meaningless for programmers, who see fixed-width fonts all day long.

    Oh, actually I just came here to say: “Those who do not learn from history, are doomed to repeat it.” (In that some new generation thinks they have to test it for truth all over. Which can make sense... If you build up to what is already known, and not just ignore everything.)

  • by hey (83763) on Sunday January 17, 2010 @11:16AM (#30798908) Journal

    This was on reddit today
    http://hivelogic.com/articles/top-10-programming-fonts [hivelogic.com]

Life would be so much easier if we could just look at the source code. -- Dave Olson

Working...