Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^5: Perl for big projects

by chromatic (Archbishop)
on Jul 14, 2006 at 05:57 UTC ( #561153=note: print w/replies, xml ) Need Help??

in reply to Re^4: Perl for big projects
in thread Perl for big projects

In cases where adhering to standards is critical to the project, Perl might not be as useful as some more restrictive language.

Which programming language in use or existence today mandates the use of meaningful identifier names? How about test coverage? What about well-factored functional units? Non-duplication? Effective and usable documentation?

If you can't perform code reviews and have your team adhere to minimal coding standards, use that language.

Replies are listed 'Best First'.
Re^6: Perl for big projects
by spiritway (Vicar) on Jul 14, 2006 at 06:49 UTC

    Hi, chromatic. I'm not certain what point you were trying to make here. Suggesting that some features are missing from all languages, doesn't negate the value of the ones they do contain. There is a place for, say, strict type checking, and Perl doesn't require that. Other languages do. They are probably a better choice in some instances.

    Perhaps your point was that no language features can substitute for adequate code review and testing. This is true. Even so, code review and testing do not prevent disastrous bugs from getting through to production. Review alone doesn't catch all the bugs. Relying on language features doesn't catch or prevent all the bugs, either. If I had to choose *only* one safeguard, I'd opt for code review and testing, having many eyeballs look over the code. But refusing to use other available tools is (IMNSHO) taking unnecessary risks. Just because there are laws and police to protect my property, doesn't mean I leave my doors unlocked.

    Understand that I'm not being critical of Perl. I love that language, and it's almost the only thing I use. Still, it isn't perfect, and it isn't necessarily the best language to use in every situation.

      My point is that I've personally encountered very few maintenance problems while using Perl caused by anything remotely resembling a type error that a static type system could catch. (Perhaps a handful or two in eight years.)

      (Hey, I've even written simple Haskell code that passes the type inferencer but has a trivial mathematic proof violation.)

      I've almost never failed to encounter bad identifier names, poor factorization, massive duplication, and poor factorization in code with maintenance problems.

      My theory is, fix the big errors first. People write bad code badly. Don't pretend that static analysis or compiler tools can fix anything but trivial errors. It (currently) can't.

        I've almost never failed to encounter bad identifier names, poor factorization, massive duplication, and poor factorization in code with maintenance problems.
        I like the way you make your point by mentioning "poor factorization" twice ;^)

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://561153]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2023-09-23 06:34 GMT
Find Nodes?
    Voting Booth?

    No recent polls found