L’électron libre

Is PHP still cool or should you learn a better language?

1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 5.00 out of 5)
Loading...Loading...

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:
    • Zend (very popular in big corps)
    • CakePHP (inspired from Ruby on Rails)
    • Symfony (very pro as well)
    • Codeigniter (more exotic and easy to start with)

Recurring arguments in favor of other languages

  • Other “sexy” languages include :
    1. Ruby on Rails (Popular at Google, Twitter, Shopify, Groupon)
    2. Python
    3. Perl
    4. ASP.NET
    5. More exotically: Go, Haskell
  • 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

CONCLUSIONS?

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…

Be Sociable, Share!

One Comment, Comment or Ping

  1. Thanks Youcef for this recap; compared to learning a real language (English, Russian, Chinese…), all these programming languages have a very small vocabulary. Getting started and becoming a master with any of them, once you are fluent in one, is just a matter of a few weeks time spent on a real project.

    Just like best-selling books that please readers all over the world, what matters most is not the words used, but the semantic appeal behind.

    What truly should differentiate programming languages is their ability to accomodate for a given semantic scenario also known as software design.
    Then, of course, objective characteristics help to figure out which are intrinsically better:
    1/ How good is design time inference to allow the IDE to detect syntax (basic), type, or logic (concurrency more complicated) bugs?
    2/ Which rules of thumb have to be respected by the programmer to make the whole program more robust? Immutability, functional programming are great ways of dealing with high performance computing but are hard to enforce if not constrained by the programming language itself (or at least a framework).
    3/ All those you mentionned: maturity, documentation, cross-platform support…

    Yet for the future, I look forward to seeing (or working myself on) programming languages that focus much more on the semantic (what people are really trying to achieve) than on low level algorithmic concepts.
    That’s not an easy task; frameworks such as .NET have managed to go much farther than ever before (at the expense of performance though), but still have a long way to go. If they can; new paradigms are usually the privilege of new languages.

    Who knows, maybe someday IDEs will eventually become the long-awaited Ideas Development Environments…

Reply to “Is PHP still cool or should you learn a better language?”

BLOGROLL