May
30
Some thoughts on PHP advocacy
Filed Under WebDev | Leave a Comment
These days, PHP is being taken more and more seriously as a professional web development platform instead of just a simple scripting language for quick & dirty web hacks. However, one of the main strenghts of PHP, the diversity of it’s community and it’s low barrier to entry, also leads to the kind of shallow, badly informed PHP advocacy we can do without.
Nate Abele’s talk on CakePHP at this weeks Kings of Code conference, with it’s baseless dissing of Rails and personal attacks on DHH, led me to think we could use some basic guidelines for
spreading the PHP gospel.
So here’s a start. Feel free to critize/contribute:
- Thou shalt not dis Ruby on Rails. Rails is awesome. Repeat after me: “Rails is awesome”. So let’s learn and steal from it as much as possible.
- Thou shalt not dis Microsoft. Microsoft sometimes does awesome stuff. Okay, I’m not gonna make you repeat that. I feel dirty enough typing it. And no cute Blue Monster is going to stop them from being evil either, but you can still be evil and do cool stuff. Think Tom Cruise.
- Admit PHP is one of the most inelegant, inconsistent languages every invented by mankind. Or as Jeff Attwood put it recently “PHP isn’t so much a language as a random collection of arbitrary stuff, a virtual explosion at the keyword and function factory“. Don’t argue about PHP on the basis of elegance, structure and logic. You’re gonna loose. Besides, do you really want to waste your time on a “yo’ momma dresses you funny” argument with language design purists when you could be coding the next Facebook?
- It’s not about making PHP ready for the “enterprise”. That’s just the sales pitch. It’s much more about making the enterprise ready for PHP, and the culture and values of the web that come with it.
- PHP4 is dead. Bury it already. Don’t take it out on stage and show it to the world pretending nobody’s gonna notice the funky smell. (That even includes you, Matt Mullenweg…)
- Native performance is irrelevant. Seriously. Screw the benchmarks. If you absolutely, positively have to squeeze every inch of processing power out of your servers, code in C. Otherwise, learn about architecture and how to cache the crap out of everything. The chance that native language performance is relevant for your web application is very, very small, so stop arguing about it.
- PHP doesn’t begin and end with Zend. PHP is neither a language nor a product. PHP is a above all a community. PHP is you. That’s why PHP rawks. Because you do.
May
28
Kings of Code, quick recap
Filed Under Tech, WebDev | 2 Comments
Attended Kings of Code yesterday. Awesome conference for web devs, just a quick recap:
- PPK is great speaker, did his bit on javascript event handling, most of which was news to me. Some jabs at W3C and surprising praise for Microsoft (that is, for the 1% of things they do get right). Big revelation: PPK was the only guy in the room who doesn’t use Firebug. (slides of his talk)
- Folke Lemaitre gave us a great insight into how Netlog was made to scale, especially interesting was how they used memcache. Big surprise: despite having many more users and using the same technology, Netlog uses a lot less servers than Hyves. Several Hyves dudes in the room btw…. (slides)
- Mark Birbeck walked us through the new W3C standards for the semantic web, RDFA, XForms etc. Interesting, but not really riveting stuff.
- Nate Abele didn’t make himself any new friends by dissing Rails, Symfony et all, mostly for the wrong reasons. But it was good to know many of the attending coders were more professional. Somebody might have to explain to him most pro-PHP coders would rather use real RoR than CakePHP’s php4 imitation of Rails. Too bad, with the right input Cake could be going places, ’cause there is plenty of room for something other then Zend’s pick-and-choose approach and Symfony’s enterprisy framework.
- Nate Koechley did his bit about front-end performance tuning. Little news to me, but an excellent and very convincing presentation. YSlow rules! There was a rush for Yahoo stickers at the end, yes, we’re still amongst geeks here.
- The Open Source pitches were fun. Roomware already had it’s fanclub in the room, Bert managed to squeeze GIT into 5 minutes and still be convincing, Simon made an excellent case for oAuth (gotta check out oAuthernoon). Ruben was less convincing with Javeline (probably the wrong audience), and Tinco was too badly prepared and nervous to make the case for Rails. Should have stuck to Phusion, which could become a breakthrough project for Rails.
- Menno van Slooten from eBuddy made a smooth presentation about the growing professionalization of front-end development. Cool bit about the MySpace cross-site scripting worm.
- John Resig did a very thorough presentation of the big javascript frameworks JQuery (of course), Dojo, Prototype an YUI. Really helpful to me, but I got the feeling a lot of the front-enders would have preferred to hear him go into the technical details of JQuery.
Other stuff:
- WiFi was excellent most of the time.
- Backchannel was funny but kinda useless for one day, single track conference.
- Few people bothered to bag a free eBuddy mug.
- Total sausage fest, 4, 5 women tops. Maybe add some Flash and a female speaker next time?
- Looks like the PHPGG is gonna come out of hibernation. Nice.
- Everything went very smoothly and on schedule for a first time conference. Guess the experience of the NextWeb dudes helps.
- The conference room could seriously use some airco.
- After the drinks at Club 11 we organized an impromptu geekdinner with about 25 dudes from Hyves, Mediamonks, Lost Boys ao.
Thanks to Sander for putting an great event together!
(Sorry for the messy incoherent post, I just wanted to write this down while it’s still fresh. It’s not like I’m trying to write War and Peace here…)
May
2
…but does it scale?
Filed Under Tech, WebDev | Leave a Comment
A lot of non-developer blogs are writing about Twitter’s scaling issues, and the possibility they may ditch Ruby-on-Rails. The good thing is: the relevance of technological choices is finally being made visible for a (slightly) broader audience. The bad thing is: it’s largely being simplified to a “does platform X scale” issue.
Now I’m not going to defend the use of RoR, because I think it’s a naive choice to use relatively unproven technology for a project like Twitter. And I’m certainly not going to join the choir of clueless RoR fanboys who believe just using RoR makes them more professional developers. At least most of “our” PHP scriptkiddies are clueless without the major attitude problem…
But RoR is not the issue here. Virtually every platform can scale. You can probably write Twitter in VBscript and make it scale. Just as long as it allows you to cache the crap out of everything and optimize and de-normalize the database-interaction, you’re pretty much set.
Unless you’re looking for out-of-the-box “enterprise” scalability, which in practice means “keep adding more hardware to achieve mere ‘acceptable’ performance”, creating a scalable web application is a matter of architecture rather then platform choice. If the platform you choose allows you to tweak every inch of your app, and mix & match various technologies best suited to solve particular issues, there’s no reason why your app won’t scale. Many high-traffic websites for instance have bits and pieces coded in C, and/or certain services running on highly tweaked servers just to solve particular bottlenecks. It’s only if your technology of choice is so monolithic doesn’t allow for such hacks it becomes a blocking issue. This is a serious risk when choosing not only a particular programming language but an entire framework, but most frameworks will allow you to work around it if necessary.
The key is not to let your entire application depend on one single platform or vendor, and work on the principle of “small pieces, loosely joined”, in which the pieces can be made from any technology that scratches your itch*). Which by the way seems to be exactly what Twitter is currently doing.
*) This is of course one of the main reasons why Microsoft sux so very badly for web apps, but even Microsoft seems to have figured that out by now.
Apr
7
First impressions
Filed Under WebDev | Leave a Comment
fav.or.it
Just got an invite for fav.or.it’s beta from Nick Halstead. First impression is that some of the criticism not entirely unjustified.
Seems to me fav.or.it, in trying to make the world of RSS-feeds and blogs accessible for a wider audience, has attempted to do too many things in a new and innovative way, creating a user experience that is confusing for both novices and experienced users. The whole UI definitely needs reworking, and maybe they should consider leaving out some (a lot) of the (more advanced) features, in favor of simplicity and transparency, introducing them later on in a gradual manner (and after much usability testing).
Although I believe stuff like Symbaloo is a ludicrous (and potentially harmful) simplification of what the web is all about, and only serves to widen the digital divide, it certainly does a way better job of creating an accessible, idiot proof UI. Fav.or.it is a lot more ambitious, which I wholeheartedly support, and I really hope they find a way to make it work. But what I’ve seen so far, this isn’t it.
So I’ve started following some people on Twitter, just to ease back into things. (I don’t want to go back to the information overload of a few years back, with hundreds of emails per day in my inbox and constant IM’s.)
Picked Boris (Veldhuijzen van Zanten) and Peter (Robinett), more or less because they we’re the first I came across, and I’m interested in what they are up to. Immediately got my first useful twitter experience: both tweeted the fact that a metro derailed near Centraal Station. Which is kinda blocked my regular way home. Should really fix my bike this weekend.
P.s.
Although he understandably has had very little time (or energy) to maintain it, fav.or.it founder Nick Halstead has a great blog that is a must read for any (php) developer.
