So far, I see no convincing argument from either side. All the various similes and analogies limp equally. It may be fun to draw elaborate parallels to metaphoric images, but that does nothing to actually analyze the situation.
As near as I can tell, there are two factual concerns:
As I already said on this thread, the latter is a social issue rather than a technical one. I do not think defaulting to strictures would solve it.
Many novices start out with Perl by making minor modifications to existing code, which are often incredibly shoddily written scripts found somewhere on the web. What would happen if strictures became the default? As has been mentioned elsewhere, likely, no strict; would be cargo culted into them. It's a given that that wouldn't help the existing code base, but would it improve the situation for the twiddling novices? Unlikely. If they don't understand strictures, they're not going to take the time for a quick script of their own they feel confident enough to write, either. After all, sticking no strict; in there works.
Other novices start out by reading tutorials or books with bad advice (or, more precisely, a lack of good advice). The situation is not so clear here. I can certainly see it that some of those will actually be updated to encourage no strict;. Many will not be updated, resulting in confusion for their readers. Others will be updated with confused advice (<q>use my for all variables</q>). Overall, there is no clear win here either.
The situation is similar to that of gun control. In Germany, it is very difficult to legally own a real gun (other than certain classes of BB guns). It is very clear that Germany has profitted from this; areas with very low gun density tend to have very low crime rates, also. Criminals are easier to pin down as well, if only because their posession of guns is illegal and provides a means to get hold of them. But the situation is very different in the USA, where there is no strict gun control, and hundreds of millions of guns (at least) are already in circulation. You cannot solve the problems there simply by introducing gun control laws and expecting it all to sort itself out. The USA have not had use strict; in their gun legislation in eons, and defaulting to it now would be as problematic as it is a good idea. Germany has no such problem because Germany has always defaulted to strictures.
With Perl6, we will have the opportunity of a tabula rasa; and indeed, it will (not entirely, but largely) default to strictures. I see this as the best possible course of action that can be taken at this time. Defaulting new versions of Perl5 to strictures, on the other hand, would be a mistake.
Makeshifts last the longest.
In reply to Re: Why isn't C<use strict> the default?
by Aristotle
in thread Why isn't C<use strict> the default?
by BrowserUk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |