Namely, bad coding practices. Globals everywhere (including "register globals" enabled by default), horrible security practices (tons of XSS vulnerabilities for example), no modularity, mixed concerns, mixing HTML and PHP, etc...
Great. Are you really telling that one of the selling point of the language is that it got a "proper" parser, In it's 7th iteration and 20 years later? What. A. Joke.
EDIT: And downvoted. Classic Php apologist response..
For one, I just saw your comment, so didn't downvote you when you wrote that. Others did.
That said, "classic X apologist" is beyond juvenile for my tastes, so any downvotes I'd call deserved.
Yes a language can get a proper parser "in it's 7th iteration and 20 years later" and still be good for some use cases and a success. In fact, the mere fact that it got to its 7th iteration and had a huge following despite not having a proper parser might point you to the fact that it should have gotten some other things very right to compensate.
But that would require thinking, instead of a knee jerk reaction and a general assumption that everybody using it is stupid and you are the clever one.
Yea, like letting people compare "0x0a" == "10" and have it return true. Sure. I can imagine some newbie somewhere looking at that and go "You can do that? That is soooo coool".
A lot of such things, that traded off sanity and security for ease of use made it popular. But that does not mean it got those things "right".
I am ignoring other inflammatory things you said, since I don't expect any better from someone who thinks php is hot shit. It is utter crap, and no one should have to start their programming career with utter crap like php when there are so many alternatives.
I am not sure what that means. By sanity, I mean sane/sensible/unsurprising behaviour. As an example, think of a gun with a feather touch trigger. It improves "ease of use", because you don't have to "pull" on the trigger and might improve accuracy for people inexperienced with guns, but it trades off safety completely. Php is like that. It was a language meant to process data coming from html forms. A lot of these insane behaviour can be attributed to that.
Because there hasn't been a formal/proper development/review process [1], only god know what hidden pitfalls there are hidden within the language, that is, in addition to the pitfalls people already know..
Php 7 is a dangerous farce, because it still has got all these problems, but is marketed/promoted as a "modern" language. Luckily, it seems that very few people are buying it..
It means that being easy to use is a desirable trait if you want a sane development experience. Having to go through bs hoops to use some language/tool/etc can drive you insane.
>By sanity, I mean sane/sensible/unsurprising behaviour.
And you'll find more or less the same amount of insanity in C or Javascript, as you will in PHP.
And in PHP it's mostly moot, because the insanity is in corner cases and stuff that's trivial to avoid.
It got a proper, rewritten, parser.
It got a free-double-the-speed update for almost all working code in version 7.
It got a full featured package manager (composer).
It got many next-generation frameworks and libs that don't fall prey to the issues that plagued early PHP codebases.
It got the "share nothing" model correctly from the beginning.
It's still the easiest and cheapest to deploy, and has tons of extensions for everything.
There's active work for a JIT and async (a la Node/Tornado etc) hooks.