When I’ve told people that Epicodus is adding a new course on PHP and Drupal, I’m often met with surprise:
- “Isn’t PHP a bad language?”
- “I thought Rails was better than Drupal.”
- “Aren’t you moving backwards, going from Ruby to PHP?”
I’ve previously held these misconceptions myself, so I wanted to share why I’m so excited for Epicodus to start teaching Drupal alongside our existing Ruby/JS/Rails class.
I often think of web development as falling primarily into two categories: building sites that are primarily about content, and building apps that are primarily about interaction. Content websites include sites for restaurants, movies, schools, or anything else where the primary purpose is to provide information. Interactive apps include airline booking sites, social media, photo sharing, and anything else where the primary purpose involves user-provided information.
Much of my development experience is in Ruby on Rails. There are a common set of problems that interactive apps need to solve - such as separating business logic from presentation, saving information to a database, logging, and security - and Rails (and other server-side MVC frameworks) is a framework that provides solutions so that you can focus on building the things that are unique to your site. And for common problems that aren’t common enough to justify being in Rails itself, there’s a huge ecosystem of Ruby gems so that you don’t have to re-invent the wheel.
Content-based websites have their own common set of problems - such as separating content from structure, authoring static pages, and providing a way for non-technical administrators to edit content - and MVC frameworks like Rails doesn’t provide many tools or guidance. But content management systems (CMSs) do, and Drupal is one of the most popular and powerful CMSs. Drupal is like Rails for content websites - it provides a framework that solves these common problems so that you can focus on building the things that are unique to your site. And just like part of Rails’s popularity comes from the gem ecosystem, much of Drupal’s popularity comes from the enormous number of modules that let developers easily extend Drupal. (There are CMSs built on top of Rails, but they lack the robustness, the availability of modules, and the community support that Drupal has.)
As for PHP being a “bad” language, nobody will argue that PHP is a work of beauty. Any language can be misused in the wrong hands, though, and PHP has seen an awful lot of misuse. Its dominance as the most popular web server language shows that its “suckiness” doesn’t matter, and in recent years, the situation has improved dramatically. On this note, I’m especially excited for Drupal 8, which will be coming out in the next few months. D8 is a big rewrite of Drupal and embraces object-orientation, REST, and modularity - it’s based on re-usable components from the Symfony web framework that are also used in the popular MVC framework Laravel and the popular forum software phpBB. As a result, it will be much easier for PHP developers to transition into D8 projects, and for Drupal developers to transition into other PHP-based stacks.
So if you’re interested in learning the language that powers 82% of the internet, and the framework that powers sites like WhiteHouse.gov and Sony.com, don’t let the rumors scare you away! For content-based websites, PHP and Drupal are often the right tool for the job.