@JJ:
~~~
Why do you use PHP?
~~~
I started out with ASP when I was all Microsoft based, but then switched to PHP due to Apache/PHP being preinstalled and ready to roll on the MacMini as well as being readily available on cheap shared-hosting plans. It was simply practicality more than anything. I still think this is the case. I don't believe the RoR hype at all and I think the future will be serverside JS simply because of the inescapable practicality of JS being (currently) the only programming language available in all browsers. Coding in two different languages in order to serve browser-content is a waste of effort.
~~~
what's your biggest annoyance in PHP?
~~~
There's an infinite list of niggles with PHP, as with any programming language, I think.
But the fundamental failure with PHP, and not just a frilly issue, is that the PHP developers keep trying to make PHP into an object-orientated language.
It isn't. PHP was born a procedural language and its native types are procedural and any attempt to bolt OO onto PHP is a failure evident by the effect it has by using it.
When I started learning PHP I tried solving things with classes, like a good little programmer should. The net result was tons and tons of code spread across lots of files in a way that is almost impossible to follow the flow, and because the native types are not OO, it meant lots of code to munge one thing into another, or hundreds of temporary variables to instantiate objects.
Using OO in PHP creates a mess that solves the problem in the longest winded and most convoluted way. When you code PHP procedurally, how it was designed, it's compact, readable, focused and efficient. You use less files, the code reads more linearly (top to bottom) and you waste a lot less time. Just look at ReMarkable and imagine doing that in PHP OO style. It would be 3'000 lines long and hundreds of functions. As it is, ReMarkable is just 1 (one!) function.
That is not to say that OO programming is bad, it's not. I can code either way, but that I believe that when you try to make a programming language something that it invariably is not, then it fails.
If PHP embraced its procedural nature and fixed a lot of the niggles (array sort functions don't return the array) then it could be truly great.