Saturday, November 5, 2011

Elegance and Simplicity




When it comes to software engineering, I always think back to my first year Calculus teacher, Mike Lavender, and his admonishment that "in mathematics, power tools are consider inelegant where hand tools will do." Words to live by in programming and engineering.


So I'd go so far as to redefine elegance in software programming and engineering as "simplicity perfected." The simple fact is that where requirements change, a well engineered simple solution will usually turn out to be more agile than a heavily engineered, complex one (whether programmed with "agile" methodologies or not).

When one takes the idea of trying to perfect simplicity in the art of programming (and software engineering), it becomes easier to recognize foot-guns and inherent problems, and tradeoffs often become more conscious and controlled.

2 comments:

  1. Wait, why are you writing about elegance and simplicity? This is supposed to be a blog about SQL! [/peanutgallery]

    ReplyDelete
  2. Hi Jay;

    Thanks for the laugh!

    SQL has its shortcomings for sure. Some day perhaps we will have a database system which:

    1) Accepts queries in the notation of relational algebra,
    2) Distinguishes between empty sets and unknown values,
    3) Allows for cross-relation constraints, allowing for high levels of normalization without losing semantic richness of data constraints......

    ReplyDelete