Got stuff done.
In this case, the stuff was of a many and varied nature and involved:
- Sorting out bank accounts
- Joining Blockbuster
- Joining Library
- Posting Stuff
- Resolving that I will never again begin a personal project written in PHP.
Yesterday, you see, I managed to get PHP5 working on Atoll, my local server. It works fine, from a technical standpoint, it installed straight into the right place, it works, it access the databases and everything.
Epistula, however, doesn’t. Neither did AqWiki, Aquaintances, Klind or Pareidol. Why?
Because somewhere in the PHP5 development process, somebody wrote a function to return the contents of a directory back as an array, and called it
scandir()which, co-incidentally, is the name of my stock function for returning the contents of a directory as an array. It means that, as of PHP5’s full release, my code is broken. This is, in fact, wrong.
One of the great benefits of PHP is it’s integration. Everything available was in the manual, which was searchable and contained the wit and wisdom of several years of PHP developers who had been where you are before you were there.
The greatest flaw PHP has is it’s integration. Functions have been added haphazardly over the five major revisions to the point where, given a two word function, it’s equal odds to be
first_second()depending on who coded it when. Also, the willingness of the development team to break every previous PHP tutorial in a minor revision (Witness the whole REGISTER GLOBALS debacle), Perl – the language with the most established collection of modules on the market – has a namespace system for added on functionality which works so well even Python copied it. PHP, however, is no longer a stable platform to develop releasable code on, since your code may stop working at any point. Worst, this will manifest itself as a PHP syntax error, and you cannot guard against new internal functions unless you check the existence of every function before you use it.
So, PHP, it’s been nice using you, but until you stop fucking around with the namespaces, it’s time to try something new.