The Real 3 Virtues of Perl

From Perl Guilds - Getting Medieval with Perl
Revision as of 11:26, 29 January 2025 by Admin (talk | contribs) (Created page with "== Introduction == When Larry Wall revealed to the the Perl faithful in 1996 [1] that the ”Three Virtues of a Perl Programmer” were: laziness, impatience, and hubris; he also described what he meant, which was in contrast to the actual meanings of those terms. Unfortunately the words that he chose continue to be passed along as actual virtues, while what he meant to convey has been lost to the sands of time. Worse of all, they are touted as virtues, when in fact,...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction[edit | edit source]

When Larry Wall revealed to the the Perl faithful in 1996 [1] that the ”Three Virtues of a Perl Programmer”

were: laziness, impatience, and hubris; he also described what he meant, which was in contrast to the actual

meanings of those terms. Unfortunately the words that he chose continue to be passed along as actual virtues,

while what he meant to convey has been lost to the sands of time. Worse of all, they are touted as virtues, when

in fact, they are all vices. The Perl Community aims to correct this situation by focusing on the actual virtues

described by Perl’s founder.

Virtues versus Vices[edit | edit source]

The concept of virtues is very old, dating back to Nicomachean Ethics. Aristotle identified virtues as character

traits that enable individuals to live a good life and achieve eudaimonia (flourishing or happiness). Examples include

courage, temperance, and justice. Virtue was seen as the ”golden mean” between two extremes (e.g., courage is the

balance between recklessness and cowardice). Aristotle’s virtues, such as courage, justice, and temperance emphasize

achieving a balanced and flourishing life through reason. These ideals directly influenced formal Christian virtues,

particularly through St. Thomas Aquinas’ prolific writings, which integrated them with faith, hope, and charity as

moral principles for spiritual growth. For example, the medieval codes of chivalry reflected this synthesis, urging

knights to embody classical virtues like courage, meekness, humility, and compassion, as seen in their oaths to

protect the weak and uphold justice.

Here we describe what Larry Wall meant in correct, virtuous, and perhaps even chivalrous, terms.

Practical Wisdom or Prudence, Not Laziness[edit | edit source]

Unlike the vice of laziness, this virtue refers to practical wisdom, or prudence. It involves the ability to make

sound decisions and take appropriate actions based on understanding, experience, and ethical considerations. This

aligns closely with Larry’s definition of laziness, summarized as: ”...the quality that makes you go to great effort

to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful

and document what you wrote so you don’t have to answer so many questions about it.”

Spiritedness, Not Impatience[edit | edit source]

Accounting for the passionate aspect of human nature, this encompasses emotions like anger, righteous indig-

nation, and the drive to achieve justice or excellence. Who among us has not experienced this in some form,

particularly during heated online discussions? This aligns well with Larry’s definition of impatience, summarized

as: ”...the anger you feel when the computer is being lazy. This makes you write programs that don’t just react to

your needs but actually anticipate them—or at least pretend to.”

Good Order, Not Hubris[edit | edit source]

Far from harmful pride, this refers to maintaining good order and governance, both in societal contexts and

personal conduct. Applied to programming, it signifies creating well-structured, organized, and maintainable code.

This aligns well with Larry’s definition of hubris, summarized as: “...the quality that makes you write (and maintain)

programs that other people won’t want to say bad things about.”

Conclusion[edit | edit source]

The following virtues enable individuals and groups to achieve eudaimonia—flourishing—universally, for the

entire family of Perl programmers. The timeless and time-tested foundation for achieving this has always been, and

will always be, based on exercising virtue. There are other virtues that could benefit the Perl Community as we

move forward, but let us begin by correctly speaking about the first principles established by Perl’s creator. Thank

you, Larry Wall!

References[edit | edit source]

[1] Larry Wall, Tom Christiansen, and Randal L. Schwartz. Programming Perl. O’Reilly & Associates, 2nd edition,

1996