Mailchimp is an email marketing online tool that allows business to cleverly manage their email campaigns. It is wonderfully developed, looks wonderful, so well that I consider it a model of what a web 2.0 site should be like.
In a recent post of Chad, a member of the Mailchimp team, he mentioned how a fast-growing company like them had immense difficulty finding a good developer that would to code in PHP. He goes on explaining that from a hip company like Mailchimp, they would expect a sexier language, like Ruby amongst others.
The article is followed by a handful of comments, stemming from more or less advanced developers. It provides what seems to be a good update on what’s going on in the server-side web development world.
Recurring arguments in favor of PHP
- easy to learn
- low-barrier to entry
- free of charge and open source
- adult mature language:
- that has been through many improvements
- very well documented
- large community of peer users
- hosts with PHP servers are readily available, competitive, and cheap
- from the point of view of HRs: It’s easier and cheaper to have a PHP developer
- Great current examples based on PHP: Wikipedia, WordPress, Flickr, Facebook, and many CMS
- Some great existing framework allowing coders to get things done faster:
Recurring arguments in favor of other languages
- Other “sexy” languages include :
- PHP is slow
- Scope of methods (absence of local namespaces) <— solved in PHP 5.3
- PHP is not ideal for OO (object-oriented) programming
- Often in PHP one must develop their own framework before they can do something good with it in complex projects to be scaled
- PHP is not good for SOA with strongly designed RESTful web services
Recurring neutral/flexible points of view
- PHP can be very good, what matters is that the developer has a mature mindset and can adapt
- It is the team that matters, not the language
- Often, people will hate a language because they have personal preference for other languages or a lack of skill on the hated language
- The tools that one uses do not matter, what matters is what is accomplished with it. Read this excellent article : The Duct-Tape Programmer
This is the typical debate that I have observed for electronic chipsets, a market that moves much faster than that of programming languages. “Should we use the good old popular one, or the recent fancy stuff ?” Undoubtedly, PHP is very popular, gets the job done, is mature, documented, and easy to access. Undoubtedly, other languages combined with the state-of-the-art frameworks also get the job done, sometimes maybe in a more elegant way. No wonder recent languages benefit from the pitfalls of older more mature languages. This was the technical aspect of things.
On a psychological level, there seems to be a category of developers, composed of young inexperienced progressive developers, and also with very experienced PHP developers, that are hungry for new supposedly better languages like Ruby. It can only be understood. Also, debating on the best languages can seem like fighting over which Häagen-Dazs flavour is the best. With comparably capable languages, there simply is no best. Different people have different levels of experience and different preferences that each one can justify. That does not make it the best for all, just the best for them. People love to hear “Go for this it’s statistically the single best choice”. A better approach is to map the languages with the best uses and with people’s personal inclinations. Everybody and every company is different, so to each their own.
A sound choice for any new developer would be to get strong experience in PHP, and as a hobby learn the alternative 4 languages listed above (1 to 4).
To finish with, here is the graph showing a survey done in France to figure out what developers use for server-side web development as of 2010:
Compared to the 2009 survey, PHP and Java have lost a few percents in favor of Ruby on Rails and ASP.NET, but again the data set is too small…