Rasmus Lerdorf talk at the BBC

Yesterday, Backstage was really lucky to have the opportunity to have Rasmus Lerdorf over for a talk. If you don’t know Rasmus, he’s credited with creating PHP and has been at Yahoo! for 7 years.

Rasmus took us back to 1993 and gave us an intro into PHP and it’s uses – it was a mixed level talk because some of our developers are new to PHP and asked me if they could have an intro, so soz hardcore PHP peeps who were expecting a bit more of a hardcore talk.

Rasmus Lerdorf at the BBC
Rasmus Lerdorf at the BBC

I haven’t sorted out all my notes properly as I’m presently at Open Hack 2009, but here’s some of my notes from the Q&A session as they were really interesting, apologies if I typed any of these answers incorrect or got the wrong end of the stick – Rasmus let me know!

Q: Alex asked about back to front controllers…
A: Rasmus: they have a Zend framework – but they’re very slow, as the code has to be evaluated.

Q: Dan: what’s the deploy process at Yahoo!?
A: Rasmus: We have a central package database to ask what package versions are available. What ever you pick it makes sure it picks the files automatically so they’re not half written in the cache.

Q: In terms of source control how do you organize that?
A: We started with CVS but we’re mostly Subversion with Git and we build Wine packages and people work in small groups. We have a central control team called ‘the paranoids’ and we have a code ferret that looks for things. We look for patterns and red flag things.

My goal recently has been to push things developed towards an open source form
You should treat all projects and document like they were open source for the guys who are new to something


Q: Rendan – Staging servers?

A: Rasmus: People make their own processes – Yahoo! is a company of 35 companies so you will get different processes in different areas. Some of the code will be horrible and you’ll have the desire to pull it apart – it’s tricky as you don’t want to rock the boat – i.e. it’s weird but it works for them. There are no central services

Do we use different languages for different parts of Yahoo!?
PHP is the default and so is C++ Fireagle was built in Ruby on Rails, but it’s now in Ruby – Delicious was in Perl for years but is now in PHP. Seven years ago we decided to write everything in PHP, we needed to do this as we had 4 different code bases in Singapore and we had all sorts of coders writing different code. We had to make some hard decisions – even where other code would have been better than PHP we had to do it to standardize everything.


Q: Any drawbacks to using PHP?
A: Rasmus: We may have to revisit it, but not in the next 3-5 years – maybe if I leave!

Q: Yoafv: PHP has had its problems in the past – will PHP be used more for unit testing in the future?
A: Rasmus: Yes, there’s simple test written buy a guy in London, but problems are a separate thing. I keep things very simple – there are some very strong opinions but I don’t want to get into any battles – PHP is a part of a larger system but you get to decide what you test.


Q: Your opinion on Ruby on Rails?

A: Rasmus: Anything I say about Ruby ends on Twitter and blogs and I get people calling my wife – I wish people didn’t care so much about what I think on Rails – the scaffolding is a quick way to write code but the scaffolding doesn’t help you – it’s okay for a weekend project but not good for scaling.

Ruby is good but I don’t have any love for the Rails bit and you also have the problem of finding enough people to write it. I don’t like programming but I like solving problems – with PHP it’s really easy to code and it’s really easy to find coders – it’s a bit harder to do that with other languages when you need to find 2000 developers.


Q: What different types of developers do you have?
A: Rasmus: We have front end guys – they get better and better – the front end engineering team has been beefed up over the last 5 years and you have the back end guys but within that you have the front end back end and the back end back end guys -who write the C++ stuff – there’s 3 distinct groups!


Q: Do you have any recommendations on serving personalized content whilst making the service more dynamic?

A: Rasmus: We don’t serve a single static page at Yahoo! – from ads to personalized data we use good code, it has good latency – we work backwards – you build it so you hit the numbers, it’s not impossible if you throw effort at it. It’s all customizable with news, comics, content, mail etc – not doing it to save money doesn’t make sense.


Q: How do you manage the dependencies?

A: Rasmus: We have this new thing called Wireless (?) which is a framework building many content services and it also does benchmarking – from these little blocks.


Overall it was a very interesting talk, whatever your views on PHP. I was especially interested in the questions people asked, I filmed the event & I’ll put some video up later. Thanks Sophie at Yahoo! for helping make this possible 😀