Editing
The Real 3 Virtues of Perl
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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, 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 === 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 == 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 == 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 == 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 == 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 == [1] Larry Wall, Tom Christiansen, and Randal L. Schwartz. Programming Perl. O’Reilly & Associates, 2nd edition, 1996
Summary:
Please note that all contributions to Perl Guilds - Getting Medieval with Perl may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Perl Guilds - Getting Medieval with Perl:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
Edit source
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information