Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

This may or may not be off-topic. It does involve Perl, at least peripherally, though.

Not long ago, I found myself telling someone "People who live in houses made of Windows shouldn't throw stones." The follow-on to that, of course, was my statement that "I'm glad Linux was built from reinforced concrete."

In relating this to another audience, being inordinately impressed with my own cleverness, I got this response from Sterling "Chip" Camden: "So you only have to avoid throwing jackhammers."

Being the contemplative sort that I am, I found myself considering that statement as it relates to concrete (pun intended) reality. I noted that Linux seems to come with the software equivalent of tools like jackhammers (and backhoes and water saws and every other frighteningly powerful industrial tool out there), while Windows mostly seems to come with pebbles. As I considered it in more depth, I realized that this correlation of included tools' destructive ability to the power and flexibility of the system seems to bear out across other OSes as well, and even into other realms.

Two other realms in particular to which I've applied the concept conceptually are the sociopolitical and programming languages. Most of you will have heard Perl called the "Swiss Army Chainsaw" of programming languages, of course: if you're not careful, you could easily saw off your own leg, to say nothing of the fact that it's ugly and noisy and belches noxious fumes while you're using it, but that all provides a great deal of versatility and power that is rare in other languages. What it really boils down to, as far as I can tell, is this: By providing the tools, you empower those who know how to use them to do great things. Those who are both incompetent to use such tools effectively and too irresponsible to avoid dangerous tools when they should do so become victims of their own willful ignorance. It requires a little bit of willingness to take responsibility for one's own actions to avoid being a menace, but when others who have that sense of responsibility have the same tools they provide sort of an insulating layer against the behavior of the irresponsible few, and the system as a whole is strengthened.

There was a lot more thought going into this than the above, but that's kind of a summary of some of the important stuff. Ultimately, I distilled the whole thought process into what I call

Perrin's Principle of Inclusion:

The strength of any system is directly proportional to the
power of the tools it provides for the general public.

I guess it's sort of an answer to (for instance) the Perl-dismissers amongst the Java crowd who complain about how "dangerous" Perl can be. The answer is that the language is merely powerful and flexible; it's the programmer who can be dangerous. Allowing the programmer that power and flexibility is a net win, however, because of what I (hubristically) called Perrin's Principle of Inclusion.

print substr("Just another Perl hacker", 0, -2);
- apotheon
CopyWrite Chad Perrin


In reply to Principle of Inclusion by apotheon

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



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (6)
As of 2022-01-28 11:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In 2022, my preferred method to securely store passwords is:












    Results (73 votes). Check out past polls.

    Notices?