http://www.perlmonks.org?node_id=728025


in reply to Re: Code Maintainability
in thread Code Maintainability

Consider this instead:
my $circle = Circle->new( radius => 4.5, origin => [2.3, 2.2], visibility => 1, );
I agree that named parameters are a huge win. That's a bit of Lisp and PL/SQSL I miss frequently in other languages.

And frankly, without named parameters, it seems to me the convenience constructor debate really becomes a choice between the lesser of two evils. On the one hand we can be verbose, on the other we can be cryptic. I personally prefer cryptic to verbose: I expect a maintainer to look up parameters as he or she needs.

But I return to my thesis: maintainability is a red herring. If we choose which idioms to use based on aesthetic value, we eliminate the problem. We both agree that a constructor taking a series of numbers is ugly. But I would argue that :

my $capital = Capital -> new ("Canada", "Ottawa");
Is obvious and very maintainable, even though it's conceptually the same pattern.

My conclusion is that a sense of code aesthetics allows us to choose the best (or least evil) option on a case-by-case basis.