If you made actual evidential arguments why it's good that Nil gets fed into @variables on assignment, or why is it good that @variables are, yes, both defined and DEFINITE when only declared, why this inconsistency, or counterpointing design,with $variables, is a good thing, we could discuss that.

However, you didn't, so now I'm left with personal impressions. You seem like the kind of user that Perl 6 should have never created: a user who is desperately willing to fix themselves when the language is shaking. I think replicating this mentality, i.e teaching people that they just have to learn harder, every single time they have a sensible and consistent complaint about the language, is much more dangerous than planting the thought that, as promised, Perl 6 made new mistakes, as opposed to the old Perl 5 mistakes. I think it's only fair that if I demonstrate a problem, building upon the experience of others, and point out a direction in which it could be improved, then that's legitimate impact. Really, let people think that there is a big broad problem in Raku's design - which is not a unique thing among programming languages really; part of the reason there is so many of them! - , and give them ways to cope, and hope for improvements. For the people, that's healthier than recognizing the problem nevertheless, but finding out that it's denied.

You probably know that Nil is far from being two decades old, or the Great List Refactor. These are things that took place before the first official release but they were also much bigger changes than the one we are talking about. It *is *possible to change the language, and it is sometimes desirable as well.

For defined and DEFINITE - I think you are correct and I don't know myself how to properly explain it. Horribile dictu: I think this part of the language is overwhelmingly complicated, way beyond usefulness. But I don't think it's downright contradictory. Another example would be Empty which is clearly DEFINITE, yet not defined.

Anyway, it doesn't help us with the @variables that start from being both DEFINITE and defined while $variables start from being not DEFINITE and clearly not defined.

Reply via email to