PHP UK Conference 2009

Microsoft slurs, geeks and bean bags

On Friday I was at PHP UK Conference 2009, thanks to my boss, and a charming discount from the Facebook Developer Garage. Here’s what I thought.

The biggest presence here was undoubtedly Microsoft, followed at a distance by Adobe. Zend had a very small stand and don’t appear to have been a sponsor. I found this a little odd from the outset, but I guess it’s the big corporations that have the cash, and can ensure they don’t miss a single conference. Microsoft bribed us with the usual toys: XBoxes, the magic table thing … you know the drill. I was of course there to hear about the future of PHP, particularly PHP 6, and why we’re still just a cool as Python and Ruby.

To save you skim-readers the full breakdown, here’s my conclusion up-front: All in all a good day, but I wanted more talk of PHP’s future and could have done with less of the Adobe stuff. Most of the speakers were great, even if the subject matter missed a bit in places. Also, I know we’re trying to save the planet and everything, but could Olympia please turn the heating on next time!

Keynote

Most entertaining and inspiring talk – as it should have been, this was the warm up act. Aral Balkan shook us out of our freshly-caffeinated daze and got us excited about being a developer in 2009. We laughed over early computing nostalgia, and marvelled at the state of things now and looked into the future. I wrote more notes during this talk than any other … possibly on account of the caffeine.

In between championing Apple at every turn, Aral managed to slag off Microsoft six times, (yes, I was counting). In case you missed it earlier – Microsoft were one of the two premium sponsors. I spoke to him afterwards about this, and clearly he wasn’t counting. To be fair, his comments were largely implicit and some only noticeable by the audience’s reaction.. hilarity of course.

Noticeably absent from the keynote was PHP. When Aral wasn’t talking about the iPhone he mostly focussed on Flash, which is his background. I didn’t mind because I love Flash, but I do wonder how this went down with the rest of the PHP-centric audience. PHP did get a brief mention, but it was fairly clear that this was a portable speech which could be delivered at any web conference, and probably has been. However, Aral did a great job because I left the auditorium buzzing.

Choosing my talks

In the morning the talks were scheduled so that the Database-specific and PHP-specific talks were simultaneous. I opted for the DB talks for various reasons – They seemed be more relevant to current projects at Public, and they seemed to be set within a wider context (scaling, architecture, cloud computing, etc..). I figured that if I want to know what new features are in PHP 5.3 I can find out pretty easily, I just hope I didn’t miss any PHP 6 talk.

Talk 1. Sharding Architectures

Driest talk of the day.. and then some. David Soria Parra explained the technique of sharding, which in a very small nutshell is splitting an otherwise large database into many small ones. I was hoping to understand it – I did not. There was a hefty pretext to this talk that I was missing. It really highlighted to me quite how small the scale of projects are in the creative industry. “Two web servers, and a DB server” is about as big as it gets for me. I’ve never had to implement replication, and never had to split my reads and writes across servers. Scaling a project to a room full of servers is something that just doesn’t happen in my world; projects are much more disposable, and anything particularly large gets handed over to the client, because an agency cannot be an IT support centre.

Talks like this make you realise you don’t know enough, so that’s good I suppose. At least I have lines of enquiry if I want to get deeper into this side of web app development. Despite the dry subject matter and less-than-entertaining delivery it was definitely worthwhile. However, if I missed anything about PHP6 in the other room, I’m gutted.

Talk 2. Clouds on the horizon, get ready for Drizzle

I was still Twittering at this stage, My Nokia E65 was the envy of the delegation [cough].

Databases again;  Drizzle is an off-shoot of MySQL which is brutally stripped down to a more simple set of common features. For example, UTF-8 is the only supported character set. (I like this). David Axmark was a better speaker than David Soria Parra and quite entertaining considering the subject matter. It was great to hear such an authority on MySQL speaking. We got some [almost] amusing insights into the legacy of the MySQL project.

PHP was noticeably absent again, except for one slide which had PHP pencilled in. No doubt replaced with Java, or Python for other conferences. By the time David took questions he had neglected to mention how PHP developers could work with this new database. The obvious question came from the floor and David ummed, and erred and seemed to suggest that some bloke somewhere has developed a PHP extension. I’m willing to bet it’ll have to be built from source, and God knows if you’ll see it in a Linux repository near you any time soon. As for Drizzle getting bundled with PHP… I’m not holding my breath.

Beyond CirrusMy question was related to the one slide mentioning PHP. David had alluded to the idea for native PHP inside the database (see terrible picture ->), so I asked whether it would be possible for Drizzle to return native PHP values rather than just strings so we don’t have to abstract this kind of conversion in an additional layer of PHP code. I don’t think I followed the answer, so I’d better get hold of the video and watch it again. – I think I nodded and said “cool”… oh dear.

David also managed a Microsoft slur:

“[Drizzle] could be ported to Windows […] but it’s not a priority.”
(David smirks, audience laughs)

Talk 3. Living with Frameworks

Stuart Herbert gave a good, clear presentation of his experiences as a manager in charge of a development team, and how adopting a framework fits into this environment. He consulted the audience a lot during his talk, which was arguably distracting. These are geeks, remember! It could have turned into a debate in places, but Stuart kept it on the rails (no pun intended).

There was no doubt as to the message here. There is a legacy of PHP development where people start their projects with a blank canvas, and although this paradigm is as good as dead, the community is still adjusting. This is evident by the obvious difference in opinion out there and also by the sheer number of frameworks available. I was more interested in hearing which frameworks Stuart recommended. However, despite his company adopting Symfony his talk was purposefully agnostic. The main message seemed be that you should adopt a framework that works for you, but DO use one, become an expert, and use it properly.

My question was two-fold:

“Why are there so many frameworks available? And why has such a select few made it through to the top? Are they really the best, or is it just good PR?”

Stuart gave a good answer, but he clearly isn’t as cynical as me, and seemed to think the top ones deserve their ranking because they are the best. I’m not convinced of that last part, but it’s good know that he rates Symfony as being very well written. Unfortunately I missed the subsequent talk on Symfony itself, so I guess that’s another reason to watch the videos once they’re online.

No more Twittering now. I think my batteries had died at this point, and my boss probably thought I’d gone home early.

4. Flex and AIR for PHP programmers

Most disappointing talk. Mihai Corlan introduced us to Flash remoting with Flex and AIR. I should really have picked up on the word “introduction” in the programme, because this was beginners’ stuff. I’ve been doing this for years with Flash, and effectively Flex and AIR are the same deal. Mihai stepped us through an agonizing demo using Zend AMF with little personality or enthusiasm to pep it up. I was looking forward to the Q&A in the hope that I might actually learn something, or at least get some new lines of enquiry, but only two questions came from the floor, and one of them from me.

I asked a question about something I’ve been wondering for a while, but everyone must have thought I was an idiot, not least because I couldn’t work the microphone. Allow me to paraphrase myself here:

Thinking about AMF as a way to serialize data over the internet, and looking at server side ActionScript in Flash Media Server – Does Adobe have any interest in moving more into the back end arena? (implying a challenge to PHP)

Mihai looked thoroughly surprised and promptly said “No”. He pointed out how good their relationship is with Zend, then we joked about Cold Fusion (except I don’t know if he was joking). I guess we won’t be seeing an AS3 server runtime any time soon, or ever.

Talk 5. State Machines to State of the Art

Rowan Merewood started off explaining the relationship between HTTP and REST. I was particularly pleased about this, because I am somewhat of a purist when it comes to terminology – In the previous talk Mahai Corlan had used the term REST almost as a synonym for XML, drawing a terrible distinction between AMF packets and XML services, when in reality they both can follow the REST model.

I was most interested in the idea that the application should fall in line with the HTTP model itself. Using GET and POST properly is something I already impress upon our development team, but I’ve never thought to use the same API call differently depending on the request method.

Rowan went on to use a fairly in-depth code example for the remainder of his talk. I think this was a pretty brave move – it would always be a trivial, academic example, and in a room full of coders the details could really distract from the message. He pulled it off well, although the Q&A was predictably focused on the example rather than the wider context.

As with the database talks I attended the main things I took away from this were feelings of guilt about the things I don’t do properly. In this case planning – particularly interesting were the state diagrams. Not being from a computer science background I really don’t know how to plan my applications, I just go at it. This is something I need to work on.