I was wondering how one might "define" elegant code?

Elegance is a funny thing. You know when it's not there, but sometimes it's hard to articulate why it is there when you're seeing it.

To my eye, an elegant piece of code does what it needs to in a way that's easy to follow, without any extra bells-and-whistles (including needless commentary). "Easy to follow" implies well formatted, with just enough horizontal and vertical whitespace. It also implies carefully chosen names, and control-flow structures that match the problem. It implies a well-factoredness, with a certain coherence to each subroutine/method.

A truly elegant piece of code teaches you something good about how to reason about a problem.

An elegant piece of code is written first to inform the reader, and second to be executed by a machine. Sometime, when speed is needed, elegance can be undone.


In reply to Re: IYO, what is elegant code? by dws
in thread IYO, what is elegant code? by stonecolddevin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.