|Keep It Simple, Stupid|
Re: Amicable divorceby sundialsvc4 (Abbot)
|on Jul 15, 2020 at 01:03 UTC||Need Help??|
With the full understanding that I am right now writing a post that will promptly "be excommunicated once again, based solely on 'who I am,'" I will simply repeat one critical point: "The Perl language is successful." This means that there are at least hundreds of millions of lines of installed, in-service source(!) code ... which becomes a far larger line-count when you begin to consider the impact of CPAN.
Since Perl is a "pure interpreter," it is entirely dependent upon the language system's re-interpretation of the entire code body ... every single time that it is run. There is no "executable code" resource ... "that we can continue to run even though we now can't re-compile it." In short, if the language-interpreter is changed in any "breaking" way whatsoever, the customer is completely screwed.
And this immediately translates into
I had not one but several "baptisms by fire" with regard to this when PHP made very significant (and yet, often arbitrary) "breaking changes" to their system (between #5 and #7), which, as you well know, is monolithic. You have no niceties such as use DBI; in that language. Even regular-expression handling is not embedded, so if they decide to "deprecate" (and remove) existing functions, only to replace them with two whose two parameters are reversed ... "tough beans.™"
For one – and, only one – of my clients, this amounted to almost a quarter-million dollars of labor cost, spread among a number of people, to move the system to PHP-7 from PHP-5 while otherwise remaining almost exactly where it was. (No business-value gained ...) I taught the others how to continue using the PHP-5 system even as their (Linux ...) distributors "moved on."
The Perl language has largely avoided such snares because, as a language, it is minimal. Perl created a lightweight and flexible way to interface with the standard binary libraries upon which we all ultimately depend, without embedding this directly into the compiler/interpreter.
At this point, the Perl language can and of course should "move forward," but in an entirely(!!) backward-compatible way. It must not abandon its 5.x legacy – however slightly.
And, I submit, it already knows how to do this: use Moose; use 5.0; This language is actually so flexible that it can re-invent itself on the fly. No other language that I have ever been aware of has ever been able to approach this level of magick without a preprocessor.
"Being both 'old' and 'successful,'" your language is now literally worth billions of dollars ... in a way that is utterly and entirely-rightly intolerant of anything called "breaking." Don't do it: we cannot (and, once again, will not ...) afford it.