This is not a post about the language, but rather about the developer experience. That means less dogma, and more “getting stuff done”. When starting work on AMFPHP 2.0, I decided it was time to refresh my toolkit. PHP is not my main language these days, so I had to take a good fresh look at what was actual and what was not. The last time I looked at IDEs for PHP there was Zend Studio, Aptana, and PHPEclipse. They all sucked so much that I ended up working with Notepad++.
Furthermore, I always found that there were no decent libraries to base my work on. Both Zend and PEAR were all riddled with bugs and impossibly badly designed so far as to make them nearly unusable.
So a few years down the line, what has changed?

IDEs have gotten better. I find that NetBeans does a decent job for PHP development, and so does PHPStorm. So much so that I’ve dropped NotePad++. However getting a development server up and running and to have it properly integrated with my IDE using xdebug and whatnot still involves messing with Apache config files for the better part of a day. I’ve got it kind of working, but it’s nowhere near as nice as getting a Java or even Flex development environment set up.

The libraries still suck massively. I’ve heard some nice things about a couple of them, but the one I’m the most interested in, PHPUnit, is still terrible. One of the big failures of the old AMFPHP development process was the lack of unit tests, and I’ve spent a lot of time and energy to try and get it right from the get go for AMFPHP 2 so that the team can buikld on a solid foundation. For example, something as simple as using a data provider for a test rather that copying and pasting boiler plate code just doesn’t work. This is just an example, the aim of the post is not to write bug reports, but it is symptomatic of the experience.

So, to wrap it up: The language still allows you to write really bad code and even encourages you to do so, but if you want to you can actually do things with a clean OOP design. The IDEs are slowly getting better. However it seems that the libraries are still pretty ugly. If I compare the situation with all the amazing stuff you can get just by looking at what the Apache Foundation has on offer, it’s pretty sad.  Furthermore I’d pay for an IDE to come with a ready server so that I don’t have to tweak and hack files to get things going. Because I did it once, but I’m not even sure I could do it again.

Pin It