On Mon, Apr 10, 2023 at 6:42 PM Arvids Godjuks <arvids.godj...@gmail.com>
wrote:

>
>
> On Tue, 11 Apr 2023 at 00:03, Deleu <deleu...@gmail.com> wrote:
>
>>
>>
>> On Mon, Apr 10, 2023, 4:01 PM Arvids Godjuks <arvids.godj...@gmail.com>
>> wrote:
>>
>>>
>>>
>>>
>>>> *snip to keep the email short*
>>>>
>>>>
>>> Hello Deleu, I want to highlight your response specifically, because you
>>> blame the wrong people here.
>>> This is the failure of the business owner to plan accordingly and ignore
>>> all the warnings for years and decades. That is if any developer raised any
>>> concerns lately, which I also have seen quite a bit when "yes man" just
>>> shove code into the meatgrinder for a year or two and then just move to the
>>> next job: "It's not my problem, the next guy will deal with this". And that
>>> feeds the vicious cycle, and the owner is either oblivious or does not
>>> understand the implications because "well, it works, it generates money" at
>>> the moment right until that plane hits the ground and things blow up.
>>> I've handled a big legacy project, did major updates to it, seen how an
>>> effort of 1 month of my time to drag it into the modern day paid off over
>>> the next 6 months by picking up development speed by 3x with the same team
>>> of 5 people + me. In 1 year we started to literally take away clients from
>>> our competitors who could not keep up with us and we had a literal line of
>>> clients to onboard, we had to scale our sales team 3x and had a backlog of
>>> 6 months still. All stemmed from a single decision "I will tackle this, we
>>> need it to update to newer PHP". Business owners were really stoked that
>>> they actually listened to developers.
>>>
>>> You cannot expect to run code that was written 2 decades ago without
>>> major updates on modern language versions. It's not possible for almost any
>>> language that is being actively developed. Think laterally - instead of
>>> hand-fixing every null check out there, introduce a library that can handle
>>> data structures and handle the nulls for you en mass. Isolate the internals
>>> and just pass already sanitized values into it. Suddenly you cut off like
>>> 90% of the needed fixes that prevent you from running your code. It's still
>>> needs fixing, but at least you give it good data to start with, so it does
>>> not error out.
>>> --
>>>
>>> Arvīds Godjuks
>>> +371 26 851 664
>>> arvids.godj...@gmail.com
>>> Telegram: @psihius https://t.me/psihius
>>>
>>
>> Thanks for your reply, I understand everything you mean here by improving
>> a development flow. I've been responsible to for doing that improvement for
>> the past 6 years and I'm pretty close to retiring 100% of the legacy code,
>> but I still need a couple of years to do it. I have long ago convinced the
>> people in my business that we need to pay this technical debt.
>>
>> You mentioned that I'm blaming the wrong people, but I'm not blaming
>> anyone here. I have 4 teams working with me to replace our entire legacy,
>> one bite at a time, but I lead only 1 of those teams. The other 3 teams
>> have not only decided that the technical debt needs to be paid, but also
>> its not worth it to pay it with PHP and have move to Typescript.
>>
>> My points are:
>>
>> - development practices has changed and we know it, but it takes time to
>> shutdown legacy
>> - we are actively working towards paying that technical debt and PHP
>> improvements are great to help with it, but the deprecations aren't always.
>> - like it or not, there is a community unhappy with how hard it has
>> become to maintain a PHP codebase.
>>
>> I believe there's a lot more leeway in breaking BC and fast evolving the
>> language around projects that have started in 2018+ with automation tests
>> from day one. Introducing a BC break on PHP 8.3 about something that was
>> first released on PHP 7.4 is orders of magnitude easier to deal with than
>> BC breaks on things first Introduced on or before PHP 5.6. If we could just
>> have a way to opt-in to a faster-paced language for all new code while not
>> breaking PHP 5.6 features until the previous generation of software can be
>> retired, that would be awesome.
>>
>>>
> I do have to ask: How any of that is the concern of PHP the language, PHP
> the project? This is pure and simple is a company issue. Now they have to
> pay for their decision by probably buying some 3rd party extended support.
>

I think that's a very honest and on-point question. Which is somewhat
related to what I meant to mention here:
https://externals.io/message/119834#119846 but got called out as "spreading
BS" by Larry here: https://externals.io/message/119834#119868

I don't agree with Larry and I think you're dead right. PHP has a limited
resource and maybe it has decided that the "legacy community" is not a
priority and/or not worth the work. If that's the decision, I have nothing
else to argue and I can accept it.

-- 
Marco Deleu

Reply via email to