Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Although you don't realize it, you're asking for a program that will verify that any other program is correct. This, in essence, is what Godel proved to be impossible in his Incompleteness proof and what the Halting problem is all about. At some point, you have to trust the programmer, even if only just a little bit.

Now, there's two ways of approaching this need to trust the programmer. Languages like Java say "I'm only going to trust you as far as I have to, but no further." This may be perfectly valid in some situations. I know that if I'm coding with a bunch of people I don't know, I'd prefer to do it in Java instead of Perl.

On the other hand, languages like Perl and C say "Since I have to trust you, I might as well TRUST you." And, so, they leave as much as possible up to the programmer. The major difference between Perl and C (which is what BrowserUk alluded to) is that Perl provides a lot of scaffolding for you. Little things like automatic memory management, useful types, and dynamic recompilation.

My reasons for this prediction were that corporations and other large organizations have less use for brilliant code that only to a small number of Perl wizards can grok, than for mundanely-written code that even the non-wizard can follow.

This point deserves a special response. There is "brilliant code" in every language that only the wizards can grok. When was the last time you read the Perl source?

My last contract was at a place where the code that underpinned half their applications was truly understood by only 4 people. Yes, others could have come in and studied the code and become experts, if there was a business case to do so (and there are arguments either way). The same goes for the steaming pile of Javascript crap I was handed, as well as any significantly complex application. Just because the code is simple to read doesn't mean that application is simple to understand. And, just because the code is hard to read doesn't mean the application is hard to understand.

Remember this - reading code is hard. If it was easy, then no-one would pay use the big bucks. It's not supposed to be commotitizable. If it was, then outsourcing would actually work in the average case.


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?

In reply to Re: TMTOWTDI... and most of them are wrong by dragonchild
in thread TMTOWTDI... and most of them are wrong by tlm

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 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?Last hourOther CB clients
Other Users?
Others about the Monastery: (7)
As of 2024-04-23 12:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found