Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
I certainly don't "dumb down" my perl code for the sake of those who don't know perl well enough to understand it. Rather I encourage them to learn perl better.

Well, for me, my company's corporate goals don't including "encouraging language elitism". Like most companies, they focus on getting the job done; and if they don't have to train more, that's better. It's a lot harder to train someone to learn all that someone can do with perl (approximately 5-10 years of solid experience). It's more time and money efficient to write your code so that people who aren't perl experts can still understand your code than to spend five years teaching all of them all of the ins and outs of the language, especially one with so *many* wierd exception cases like Perl.

If there's a choice between writing something in plain language, obvious to a reader from any language background, I'll take it.

The example I gave in another thread was:

my %y = %$x;
*y = $x;
Both do roughly the same thing: access the contents of the hash x. The second is far more efficient in terms of operations performed; it also avoids doing a copy, since it's a direct alias into the hash contents. It's therefore "faster", albeit riskier as well, in the case of accidentally overwriting the hash contents.

I very much prefer the first example, because it's more obvious what's going on. The code will fail immediately if $x isn't a hashref. And more to the point, it's obvious to everyone reading it that a hashref is what was expected. In the second line, it's very unclear as to what's expected to happen; in fact, whatever is passed in gets aliased.

I try to code in such a way as to express intent, not just function. If the code reflects my intent, anyone can fix mistakes in the encoding of that intent. The more obvious my code is to more people, the more value it has to my company, because more people can fix it or formally review it to ensure complexity.

I've had business analysts notice mistakes in the business logic of my code; *because* it's written so to be so obvious that even non-coders have a chance at grasping it. It's very satisfying to them to be sure that what they want is what's being coded; and it's reassuring as a coder to me, as well! If you write for perl-gurus only, your code will only be readable by gurus.

There aren't many perl gurus, and their time is expensive, and not worth wasting on testing tasks that could be done by others, if the code was written to a reasonable level.

In reply to Re^4: seeds... by Anonymous Monk
in thread seeds... by SamCG

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 How to display code and escape characters are good places to start.
Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2023-03-28 14:14 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (67 votes). Check out past polls.