Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because of course /buildmenu took users away from regular Natural Selection servers, resulting in a holy war dynamic: https://gwern.net/holy-war

>The endur⁣ing phe⁣nom⁣e⁣non of ‘holy wars’ in com⁣put⁣ing, such as the bit⁣ter⁣ness around the pro⁣longed Python 2 to Python 3 mi⁣gra⁣tion, is not due to mere pet⁣ti⁣ness or love of con⁣flict, but be⁣cause they are a co⁣or⁣di⁣na⁣tion prob⁣lem: dom⁣i⁣nant plat⁣forms enjoy strong net⁣work ef⁣fects, such as re⁣duced ‘bi⁣trot’ as it is regu⁣larly used & main⁣tained by many users, and can in⁣flict a mirror-image ‘bit⁣creep’ on other platforms which grad⁣u⁣ally are ne⁣glected and begin to bi⁣trot be⁣cause of the dom⁣i⁣nant plat⁣form.

>The outright neg⁣a⁣tive ef⁣fect of bit⁣creep mean that hold⁣outs do not just cost early adopters the pos⁣si⁣ble net⁣work ef⁣fects, they also greatly re⁣duce the value of a given thing, and may cause the early adopters to be ac⁣tu⁣ally worse off and more mis⁣er⁣able on a daily basis. Given the ex⁣tent to which hold⁣outs have ben⁣e⁣fited from the com⁣mu⁣nity, hold⁣out be⁣hav⁣ior is per⁣ceived as par⁣a⁣sitic and im⁣moral be⁣hav⁣ior by adopters, while hold⁣outs in turn deny any moral oblig⁣a⁣tion and re⁣sent the meth⁣ods that adopters use to in⁣crease adop⁣tion (such as, in the ab⁣sence of for⁣mal con⁣trols, in⁣for⁣mal ones like bul⁣ly⁣ing).



The trouble with the Python 2 => 3 transition is just how much work it imposed on everyone in the ecosystem, and the general lack of care for backwards / forwards compatibility in the ecosystem - the fact you need something like "virtualenv" at all is damning in itself, out of the major stacks only NodeJS requires similar hacks (e.g. nvm).

The PHP world, for example, is very famous for its focus on compatibility: breaking changes are generally announced far before they are released, and the amount of actually breaking changes is very very small - out of my mind, the only thing that really bit a lot of very old code was the removal of implicitly provided global variables and the mysql legacy functions, which by that point were deprecated for like a decade and in many cases could be resolved by more-or-less simple search and replace runs. Other than that, a lot of legacy code works fine or with similarly minor modifications in PHP 8 - while the runtime itself is capable of running code with syntax features of the modern world.


The 8 series has made a lot of little changes that are currently deprecations but if converted to errors as promised in 9 will be the end for lots of legacy code without changes: most of the standard library not taking null arguments where it used to, changed/added typehinting for the standard classes affecting anything that extends/implements them, and disallowing dynamic properties on objects are some big ones that come to mind.

Once 9 makes some of this mandatory it'll also be much more difficult for a single codebase to work across a wide range of PHP versions. That's possibly even an explicit goal: forcing narrower support from applications and libraries will prod more hosts and end-users to update.

Not that these are bad changes, but that the philosophy of extreme compatibility really isn't in force anymore. It's not a Python 2/3 scenario but a gradual constant shift.


On the flip side, and to be crass, PHP is a hell language that many hate or refuse to program in. I do wonder if there's a correlation.


Most of the PHP haters haven't worked with PHP since the 5.x days. PHP 7 started to reverse the trend and PHP 8 together with a decent IDE is on-par with Java.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: