When Mark Zuckerberg started building the Facebook he used what he knew: the LAMP stack. LAMP stands for “Linux, Apache, MySQL and PHP/Perl/Python.” These acronyms formed the basis for most new web applications being developed in the early 2000s. Mr. Zuckerberg specifically chose PHP as the language with which to build his project. PHP is widely derided by computer science “purists” as a hack that has evolved over time. It’s original author, Rasmus Lerdorf was quoted as saying “I don’t know how to stop it, there was never any intent to write a programming language [...] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way.”

My favorite observation about PHP came from a Stanford professor who derided Facebook’s early efforts with the comment “PHP won’t scale.” One and a half billion users later that comment sticks with me as being one of the most dramatically wrong assessments of a startup I’ve ever heard. Technically, he was correct. PHP is not the ideal choice for a massive website project, especially one involving thousands of engineers. Facebook compensated for their initial non-ideal tools by hiring the best developers on the planet and applying relentless effort to the problem. Along the way Facebook altered many of the basic premises of PHP, for example by creating a compiler for it. This leads us to our second observation:

“Great developers using mediocre tools will almost always outperform poor developers with great tools.”

It is not the case however that any tool will do, even given the world’s best talent. Non-technical managers who have a passing knowledge of software are prone to suggesting tools that are completely inappropriate to the job at hand. If such a leader said “Let’s use PHP for our self-driving car project” their developers would view them with the kind of disdain that Dilbert normally reserves for his pointy haired manager.

< Prev   CONTENTS   Source   Next >