&gt; * It&#x27;s 2016 and PHP still doesn&#x27;t have a module system, Python had one in &#x27;91, Perl had one in &#x27;94, Ruby had one in &#x27;95<p>Composer is widely adopted and has been the standard for years now. It&#x27;s not baked into the language, it&#x27;s a community driven effort that has been wildly successful.<p>&gt; * inequality operators still have no === equivalent<p>Still true. Pretty easy to deal with since there are functions for handling equality of all scalar types.<p>&gt; * sorting is still indeterministic when you have null values because NULL &lt; -1, and NULL == 0
&gt; * arrays are the only containers in the language and they simultaneously act as sets, lists, and associative arrays which fucks up almost all array functions because you don&#x27;t know what they will do<p>Both of these things are true. Neither of these things regularly snag me in my development, but like many other dynamic languages, they do need to be carefully designed for. Unit testing, strongly typed scalar vars (new in PHP7), or using SPL object data structures instead of language primitive help here.<p>* PHP has had exceptions for almost 10 years now and a lot of functions still require you to use their specific error function to tell if it failed. So if you don&#x27;t call say json_last_error, your code will SILENTLY return the wrong thing<p>I can&#x27;t think of a function I regularly use besides json_encode that has this problem.<p>Much of that article was originally a disagreement with the approach PHP generally takes and is subjective in the first place. I&#x27;m not trying to sway people&#x27;s opinion to actually use PHP, I&#x27;m just saying that despite the worts it is a capable language with an incredibly positive and productive community. It&#x27;s no longer the dumpster fire it once was.