I'm a daily reader of Hacker News, a website pretty much devoted to interesting entrepreneurial and computer science topics. This morning I read an apologetic post from Mailchimp, my preferred email messaging platform, where one of Mailchimp's developers explains their reasons for using PHP as their core langauge for development to another language.
In his article, Chad comiserates to himself the difficulty of attracting star talent to a PHP-powered platform and goes to great lengths to justify why such a terrific service uses a older language. He also touches on the dominant sentiment among software developers these days: "All the cool kids are using /Ruby|Python|Scala|F#|Closure/, we aren't you?"
I felt bad for Chad after reading his article, as well as some of the hundreds of comments posted on different sites after the article's posting. It's clear that Chas has had to justify Mailchimp's toolchain many times. It also saddened me a bit to see that despite having built an amazingly successful business and software platform that has enjoyed mainstream success in the past two years, Mailchimp has to defend its technical decisions to the internetz at large. Despite many successful enterprise companies, like Flickr, Yahoo!, Facebook, etc, that use PHP to solve extremely complex engineering problems, the engineering community still has an extremely negative view of PHP.
If there's one argument I get tired of reading in all the technical blogs I read each week, it's "my language is better than yours." While these discussions can be useful in limited context, the discussion usually devolves to blanket assertions that langauge X is always better than language Y. If that were truly the case, engineers wouldn't have as many languages to choose from and our field would be much less interesting (and fun).
Programming is about problem solving, and like any other problem in business, there is usually more than one way to go about solving it (as an aside, if you are a Python programmer you probably died a little inside after reading this sentence). The choice of language used to solve a given problem is not nearly as important as how the language is used to solve the problem at hand.
Mailchimp has proven that it knows how to use PHP to solve their technical problems. Similarly, Yahoo, Facebook, and 19 million other websites also rely on PHP for powering their businesses – that's not a small segment of adopters. As engineers, before questioning why a company uses technology X, we should instead evaluate how well the company uses that technology.
Mailchimp is a market leader because of the excellent user experience it provides to its customers. What lies beneath the covers is irrelevant to the end-consumer. As a developer, I often remind myself of this fact when I research new technologies and languages. Language choice is an important decision to solving a problem, but so much less important than how your customers will feel about your product while using it.
Thank you Mailchimp, for your explanation of how you use PHP to run a kick-ass email platform.