in reply to Re: Too lazy for constructors
in thread Too lazy for constructors
That is, why do we want age to be an integer? Because we have some preconditions? Because we're doing math with it?
No. Because I want to be able to store it in a finite amount of space.
Type errors may be a rare source of bugs, but they're one of the nastiest to track down... especially if they've been allowed to propagate beyond their original source, corrupting other data structures and otherwise wreaking havoc.
I can't help but say that I think strict type checking is good, if sometimes a pain in the ass. Adding "soft" type checking like this gives you the good points without the "pain in the ass" aspect of not being able to, say, quickly tag an object with an attribute in a debugger. ie, you can still get around it with $object->{attribute}, but $object->attribute will always be checked.
srand 3.14159; print join("", sort{rand 1<0.5}map{$_^"\037"}split m{ }x,"qmptk|z~wOzm??l]pUqx^k?j"),",\n";
|
|---|