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

Re^5: "Practices and Principles" to death

by chromatic (Archbishop)
on Mar 01, 2008 at 06:57 UTC ( #671343=note: print w/replies, xml ) Need Help??

in reply to Re^4: "Practices and Principles" to death
in thread "Practices and Principles" to death

I do not expect a meaningful response to this, because that would require you to actually consider my arguments rather than using spoiling tactics, like exploiting a typo , to dismiss them.

I've long known that American isn't your native language. (The "Uk" in your nickname gives it away.)

sub assertOk (&$;) { my( $package, $file, $line ) = caller;

This does not respect the level of the invoking code in the callstack. Every test function is exportable and composable, and as such has to set the level at which to print the call trace appropriately.

my( $code, $desc ) = @_; warn sprintf "%s %d # %s [%s(%d)]\n",

This prints to the wrong filehandle, so diagnostics might not appear in the output stream.

( $code->() ? 'ok' : 'not ok' ), ++$nTests, $desc, $file, $line ; }

This doesn't check the test numbers for sanity.

And also consider the less than stellar syntax that it requires.

Besides the camel case, it's not too ugly.

If you are, at the lowest level, going to kick the responsibility of performing a comparison test off to Perl's parser (via string eval), why bother with interspersing all the layers between those comparisons and the Perl parser?

"Hey, if you're going to calculate the Fibonacci function in every Haskell tutorial, why bother writing a program? Why not just look it up in a book?" I'm sure you could trivialize any program to its least interesting part and dismiss it completely for being most uninteresting. I get it. You don't care about any of the other features Test::Builder provides. That's fine. I don't care. You don't have to use them.

Those other features solve plenty of problems for plenty of other people using plenty of other languages and frameworks. You don't have to care about that, either. I can't understand why you do, but that's fine too.

They remote me from the code being tested.

Yes. That's the point. That's exactly why TAP exists, and it's why we can use the Perl test infrastructure to manage Parrot's tests, for example, which are written in Perl 1, Perl 5, Perl 6, Tcl, Lua, Pheme, C, Ruby, PIR, PASM....

Most damning, they prevent me from using the full power of perl to construct my test suite because I am always having to service the needs of the test tool infrastructure by reducing all my tests to simple yes/no answers.

That's half true. It's true in that all good tests ultimately have a yes or no answer. It's false in that the entire point of extracting Test::Builder is so that people could use the full power of Perl to construct test suites without having to service the needs of the test tool infrastructure and without having to worry about the interaction of other parts of the test suite they might also want to use.

Replies are listed 'Best First'.
Re^6: "Practices and Principles" to death
by BrowserUk (Pope) on Mar 01, 2008 at 11:29 UTC

    You know, the only thing that surprises me about this response is it's total lack of any saving grace. You normally manage to include one valid point with which to obscure the vacuousness of the others. But there's nary a one this time.

    It's finally dawned on me, after 6 long years of trying to engender sensible open debate, why there are so few core contributors to such projects. Guys like you like it that way. It makes you feel heroic. Enjoy.

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

      Sadly, I did expect a meaningful response to this, because I believed that you would actually consider my arguments rather than using spoiling tactics such as ad hominem attacks and hasty generalizations. Why don't we save everyone such time and just block each other's posts?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://671343]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (9)
As of 2018-06-22 08:39 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (122 votes). Check out past polls.