4 ms·
> Unfortunately, it's productivity gained at a very high cost, which becomes apparent once you try to debug and maintain that piece of software. You can write
by einhverfr 13y ago
> Unfortunately, it's productivity gained at a very high cost, which becomes apparent once you try to debug and maintain that piece of software.
You can write untestable, unmaintainable software in any language. I will agree with you that the default scoping of variables has some real costs in terms of maintenance and debugging that are not initially apparent to too many programmers though.
> Sure, Moose and other modern helpers will fix that to some extent, sometimes with other tradeoffs (performance).
Moose has performance impacts. If you want something less heavy, use Moo, or Role::Tiny. These offer fewer features and better performance. Also as I recently learned, lexically scoped variables are faster, so use strict can in fact sometimes flag possible performance improvements there.
> But the "malleability" of Perl feels silly at some point where you get a bloated, slow and lacking simulation of a type-safe language when you could use a much faster modern language with real static type checks and great maintainability (like Go) instead.
To be honest, the other languages I really like in this regard are red and rebol, which are, if anything, more malleable. The malleability is important because, done properly, it allows:
1. Better testing
2. Better readability
3. More concise code
4. Code that is more self-documenting.