Hacker News new | ask | show | jobs
by Zikes 4131 days ago
Agreed! PHP really needs a non-backwards compatible fork, something to go back and refactor all the built-in functions so they're consistently named and the arguments are consistently ordered, and with sensible defaults all around.

If the fork did nothing else, that would still be a huge leap forward.

3 comments

No, it really doesn't.

Forks are highly dangerous and fragment communities. Massive BC breaks kill adoption of new versions.

If you want nicer functions, add a new, parallel API.

(Speaking as a former PHP internals contributor.)

+1. People are still on Python 2.x.

If you want safety, add a nice upgrade path so people can actually start using it easily on their existing codebases.

Tag the old API as potentially dangerous/unsafe/deprecated/ugly and warn (or error out if you can opt into a strict mode per-file) so people can upgrade incrementally without waiting for all their dependencies to first (who won't because they have no upgraded users), and without breaking all their tests in one mega-commit.

> If you want nicer functions, add a new, parallel API.

This has been one of my 'shower' (think about in the shower) projects for quite a while :).

One day I might even take a stab at it.

So a new API with the old one deprecated. Same thing.
Actually, one reason people still use PHP is backward-compatibility. You can take an old project, import it to the latest PHP, and it'll mostly work. Try doing that with node, Rails, Python, or Angular 1.0.

One big mistake Microsoft made was breaking compatibility with VB6 and VB.NET. What happens to all those people who spent years developing VB6 applications?

If you took PHP and refactored everything and cleaned up the bad bits, it'd be a new language and not PHP. You'd be starting over from scratch and competing with all the other hot and trendy languages fighting for users.

How's that working out for adoption of Python 3?
Right, as if Python 3 is a hostile fork or something. Nope. The pushback against Python 3 boils right down to laziness on the part of library authors, and the 2.x people serve as a kind of echo chamber of conspiracy theory about what's simply an iteration.
That's kind of my point: If a non-hostile, non-forked, major version upgrade to an established language like Python encounters pushback from library maintainers and the community, what chance is there that a hostile fork to PHP will gather support from a critical mass of maintainers and community?

I honestly think a better way would be to write a library that acts as a wrapper/translation layer to the non-intuitive commands that exist in PHP (thinking about it, I'm sure one probably already exists).

Now I see your perspective, and I definitely agree with you, but I'm not sure the Python situation isn't a special case. For PHP though specifically, consider the changes that 5.4 brought. I think for all those changes, it went pretty smoothly bringing most PHP programmers to using those features without a lot of fuss. But you're in a much better position to say if anything I'm saying has merit.
And don't forget Perl 6!