My programming journey

Yesterday Mailchimp posted a blog post about how they needed to “come clean” and admit that they use PHP, the reasons behind it, and why they think it ultimately isn’t that big of a deal. This is a topic that I find really interesting, because…*deep breath*I too am a PHP programmer. I know, it’s embarrassing. Or is it?

For the last few years, as I’ve become more and more enmeshed in the hacker culture, I’ve watched as more and more disdain has developed among the hacker elite for PHP. Actually, it’s not just PHP; if you want to be one of the cool kids, you pretty much have to do all web application programming in Ruby, Python, LISP, or something really esoteric like Erlang or Haskell. There’s about as much love for PHP these days as for Java and .NET, which is to say “not much”. I’ve even heard people that I respect say that no serious hackers are using PHP for anything.

PHP has its flaws, and I won’t waste time rehashing that. Neither will I go through the litany of large companies who successfully use PHP, like Yahoo and Facebook. Because ultimately, that’s not really what’s important to me. What’s most important to me is solving my customer’s problems. I’ll program in COBOL if that’s what’s best for my customers. And when I started doing web development five years ago, PHP was far-and-away the best choice for me and for most of my customers. And even today in 2010, I’m not convinced that’s not the case for a variety of problems.

Now, having said all that, I am getting tired of PHP and the limitations of the language, and I’m eager to develop some more advanced skills. So starting in early 2010, I began working with iOS programming, and more recently, I’ve been doing Python/Django as well. I’ve been reading about more theoretical computer science concepts, and going through computer science classes from MIT and Stanford via iTunes U. I’m learning a lot, I’m having tons of fun, and I’ll probably end making more money with these technologies than with PHP. I wish that I had started playing with these things two or three years ago, but I wasn’t ready to push myself as a programmer like I am today. It took time, but now I’m ready to add a level of discipline and rigour that I perhaps wasn’t before.

But in spite of all of that, if a customer calls me tomorrow and needs a simple CMS website, I’ll probably recommend WordPress, even though it’s in PHP. That’s just what’s best for the customer.