On 03/05/2016 12:26 PM, Walter Parker wrote:
For software written for other people and for projects that don't have
ongoing tech staffs that do tech debt maintenance, they would like to keep
old, working code running. Telling them that they must spend money to
update the software so that the language can look cleaning is often a hard
sell.

  Outside of the PHP world, there are code bases that are 20-30 years old.
See Linux, Apache HTTPD, in-house software at many corporations.

One of the lessons of the Y2K rollover was that software choices made in
the 50-60's (and in some cases the actual software itself) was felt 40-50
years later because the software wasn't rewritten anew every 10-20 years.
Some companies treat software like capital assets and not as expendables.
They want it to last like a house and not be be replaced every 5-10 years
(like many cars).


Walter


That is correct; there are many, many old codebases of many different languages out there. However, you need to consider in what way such software is maintained. Let's start with Linux and Apache. Both of those pieces of software are _not_ in "maintenance" mode. They are both in active development, and as such are living, changing codebases that are being continually updated to have new features, bugfixes, and compatibility with newer compilers, systems, and libraries.

Now consider some in-house software that is in maintenance only, as there are also many of those. Assume one such software is written in C. Let me ask you: are you going to compile such software with the latest version of libc and using the C11 standard with the compiler? Of course not! The likelihood of it compiling bug- and error-free is too common, with functions removed in C11 and memory layouts changing in the last 30 years of libc. You would compile such a program with the appropriate versions of its dependencies.

Now I'm not saying any of this is good or bad, I'm just saying it the way it is. If you have 40+ year old software that you can't afford to continually update, you should continue to use the best versions of stuff that are still compatible. If you can afford to update small parts to be compatible with newer systems, then do so. (I'm talking like changing a few lines of code or maybe more to use a new function instead of an old, deprecated one.)

In the PHP world (which is a tad bit different, since you can't ship "binaries" compiled 10 years ago), the equivalent would be to run 10-year-old software on the best version of PHP that it is compatible with; 5.6 (hopefully; maybe older, maybe newer -- depends on the program). Now how long we backport security and bug fixes to old versions is a completely different discussion, but I hope you get my meaning.

--
Stephen

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to