Ask HN: Anyone using proportional fonts for coding?
Doesn&#x27;t play nicely with aligned material.<p>Parallel definitions lined up for readability.<p><pre><code>  #define AF_UNSPEC       PF_UNSPEC
  #define AF_LOCAL        PF_LOCAL
  #define AF_UNIX         PF_UNIX
  #define AF_FILE         PF_FILE
  #define AF_INET         PF_INET
  #define AF_AX25         PF_AX25
  #define AF_IPX          PF_IPX
  #define AF_APPLETALK    PF_APPLETALK
  #define AF_NETROM       PF_NETROM
  #define AF_BRIDGE       PF_BRIDGE
  #define AF_ATMPVC       PF_ATMPVC
  #define AF_X25          PF_X25
</code></pre>
Similarly in structure definitions where there are line comments:<p>C preprocessor continuation backslashes.<p><pre><code>  &#x2F;* From some MD5 code *&#x2F;

  #define FF(a, b, c, d, x, s, ac) {                      \
    (a) += F((b), (c), (d)) + (x) + convert(u32_t, ac);   \
    (a) = ROTATE_LEFT ((a), (s));                         \
    (a) += (b);                                           \
  }

  #define GG(a, b, c, d, x, s, ac) {                      \
    (a) += G((b), (c), (d)) + (x) + convert(u32_t, ac);   \
    (a) = ROTATE_LEFT ((a), (s));                         \
    (a) += (b);                                           \
  }
</code></pre>
Alignment in parallel definitions.<p><pre><code>  struct netent {
    char *n_name;                 &#x2F;&#x2F; Official name of network.
    char **n_aliases;             &#x2F;&#x2F; Alias list.
    int n_addrtype;               &#x2F;&#x2F; Net address type.
    uint32_t n_net;               &#x2F;&#x2F; Network number.
  };
</code></pre>
No, tabs will not fix this issue, unless everyone agrees on exactly the same font, and the same tab stops, in the same editor. What looks vertically aligned in your editor looks staggered in someone else&#x27;s.<p>This kind of thing is not unheard of:m<p><pre><code>  struct netent {
    char      *n_name;              &#x2F;&#x2F; Official name of network.
    char     **n_aliases;           &#x2F;&#x2F; Alias list.
    int        n_addrtype;          &#x2F;&#x2F; Net address type.
    uint32_t   n_net;               &#x2F;&#x2F; Network number.
  };
</code></pre>
We have the identifiers of the declarators vertically lined up, but the pointer derivators hang to the left. Tabs will just not do this.<p>Proportional font coders are in the lunatic fringe.<p>All else being equal, do not hire.