Earlier quoted context omitted.
No, I'm saying that the stuff built into PHP is weird and inconsistent. I should change it to "sane default library" from "sane API". My current favorite example of this (ignoring the naming scheme for string functions entirely) is that in_array and strpos are functions that perform (almost) the same task, on two different types. They take their arguments in the opposite order. strpos($haystack, $needle) vs in_array(…
> No, I'm saying that the stuff built into PHP is weird and inconsistent. You never asked yourself WHY. See, that's the important question, isn't it. WHY. I'll tell you WHY. Because two different dudes implemented it. At different times. Probably, from different continents. They didn't notice it at the time. But, eventually, someone noticed it. And then they did something really crazy. They didn't fix it. Because tha…
Choose a convention (ie: always $haystack before $needle), find the methods that don't conform, and print deprecation messages for them, add their replacements.
Then in the next major release, remove the deprecated methods. Hell, you could even put the deprecations in in a module so that those who can't/won't update their code won't have to be left behind.
It may be impossible to write a good language from the start, but that shouldn't deter from fixing those mistakes.