When Modernization Breaks Working Code: A Study of LLMs on Legacy PHP (arxiv.org)

15 points by tambourine_man a day ago

13 comments:

by plorkyeran an hour ago

> We study a common intermediate setting: a developer pastes one complete file into a chat assistant [5], which sees the file’s internal structure but not its callers or dependencies. We evaluate the first answer, not an agent’s result after iterating on errors.

Very unsurprising results given this methodology. The agentic approach where models are allowed to iterate on changes is a very big part of what has made LLM coding tools actually useful.

by yodon an hour ago

> We study a common intermediate setting: a developer pastes one complete file into a chat assistant [5], which sees the file’s internal structure but not its callers or dependencies.

Ack! Do people actually try to develop software this way?

by antisthenes a minute ago

When I need modification to a small independent Python script (<1000 loc), sure.

Not for anything serious though.

by refactor_master 43 minutes ago

I do it from time to time when I’ve run out of tokens at the end of the month. But even then I’ve created a script to pack multiple code files and their dependencies into a single txt, with a tree overview.

And of course you never change the test suite in the process… That would be bad developer practice, LLM or not.

Gemini 3.1 Pro can easily work with this effectively, if not a bit slower than an agent.

by 1718627440 7 minutes ago

> But even then I’ve created a script to pack multiple code files and their dependencies into a single txt, with a tree overview.

Like:

    $ cat $(find project/ -name '*.py' -type f)

?
by plorkyeran an hour ago

Not any more, but it was common before Claude Code came along (~18 months ago). Based on the model versions used it may have still been the most common thing when the paper was started.

by TZubiri 31 minutes ago

It's pretty much the standard way to develop in OOP.

You are not supposed to hold all of the code in context, but to have a single object and reason about with what it see.s

by kgeist 35 minutes ago

The average age of the explored models is ~1.5 years. They discuss PHP 8.3, which was released in 2023 and has not been actively supported since 2025. Agentic coding isn't used.

I'm not sure what the point is of publishing results on the mid-2025 state of the art in October 2026.

by StevenWaterman 2 hours ago

Models:

- Claude Sonnet

- Gemini 2.5 Flash

- Gemini 2.5 Pro

- GPT-5 Codex

- Llama 3.3 70B

It's inconvenient how quickly things are improving, makes potentially-interesting results like this dubiously relevant

by TZubiri 33 minutes ago

When code output becomes cheap, you write 15 million lines of code per weekend, and of course everything gets deprecated pretty fast version 1? that was like 4 geological ages ago (1 month) that's legacy.

by AdrianB1 an hour ago

One year ago I was very skeptical about such attempts. Today, it would be my first choice as LLMs evolved a lot and the result of carefully using a LLM for this task can be very, very good.

by apishare_api 14 minutes ago

[flagged]

by ahmedk29 11 hours ago

[flagged]

Data from: Hacker News, provided by Hacker News (unofficial) API