Web development is a fast-paced field, with frameworks and libraries seemingly popping up every...
5 Reasons to Choose PHP + Symfony2 over Ruby on Rails
PHP and Ruby were introduced to the public within months of each other. The year was 1995. As originally conceived, these two languages fulfilled very different purposes. They were not in competition.
In 1993, Yukihiro Matsumoto wanted an object-oriented scripting language. Unsatisfied with what Perl, Python, and other current languages had to offer, Matsumoto decided to invent his own. He wrote an interpreter and released the very first version of “Ruby” on Japanese newsgroups in December 1995.
In 1994, Rasmus Lerdorf began PHP as a personal project to track views of his online resume. When he released the first version of “Personal Home Page Tools” to the public in June 1995, PHP sported just a few simple macros and utilities to enhance personal home pages. It was far from obvious that PHP would be relevant 20 years later, let alone that it would power major websites worldwide.
PHP and Ruby were created for quite different purposes. It may be surprising, therefore, that 21 years later these two languages – paired with frameworks – compete to power some of the biggest names on the web. Ruby and PHP both have large, active development communities, loads of documentation, books, courses, and certifications. Some may say that the choice between PHP and Ruby is truly just a matter of preference. It is true that Ruby on Rails can achieve virtually the same functionality as PHP plus the Symfony2 framework. However, we Nerds are partial. We work with both Ruby and PHP; but we especially like PHP. And we think there are five specific reasons why you should consider PHP, along with the Symfony2 framework, for your next web project.
Here are 5 reasons to choose PHP plus Symfony2 over Ruby on Rails for your next web development project.
5 Reasons to Choose PHP plus Symfony2 over Ruby on Rails
1. Experienced PHP developers are easier to find.
Why are experienced PHP developers more abundant than experienced Ruby developers? Perhaps PHP developers are more common because PHP is easy to get started with. With a simple text editor, basically anyone can write some PHP code and quickly see it in action. What’s more, PHP is error-tolerant; in other words, one typo doesn’t necessarily kill all functionality. PHP was built bit by bit over time, organically, with no definitive master plan. This is often cited as one of its flaws, but it also means that PHP can be used in a more modular manner than, say, Ruby.
Clearly there is a long way to go between getting your feet wet and being an “experienced” programmer. While we can’t say precisely why there are more experienced PHP developers today, our experience tells us that it is so.
The greater availability of experienced PHP developers makes PHP development an advantageous decision for your business or startup for three reasons:
- The ability to quickly find additional PHP developers speeds up development time.
- It’s easier to find programmers who can take over or extend pre-existing projects.
- Perhaps most significant, PHP development costs may be less, specifically because there are more PHP developers in the labor market.
2. PHP 7 is faster than Ruby.
In terms of speed, PHP 6 was more or less in line with Ruby. Now, PHP 7 boasts a 30-40% performance boost compared to previous versions of PHP. In short, the latest version of PHP can offer the same functionality, but provide it faster than Ruby. These time savings may not be mission critical. And Ruby may get impressive performance improvements in future releases. Still, PHP performs well (and is light on server resources: see point 4), which makes it a solid contender for your next development project.
3. It’s easier to involve new developers in PHP + Symfony2 projects.
PHP and Ruby both have accompanying web development frameworks. With Ruby, the preeminent framework is called Rails (thus, “Ruby on Rails”). PHP has a number of popular development frameworks, including Zend, Yii, Laravel, and Symfony2. Here at WebiNerds (when working in PHP) we’re partial to Symfony2.
Because Symfony2 lets you use just one component or a few components – but does not necessitate using the whole framework – it is easier for a new developer to get involved in a project. Instead of needing to learn an entire framework from day one, they can focus exclusively on one component at a time. Step by step, a developer may cover the features of Symfony2 faster than Rails.
On the other hand – assuming you already know the Rails framework – it is likely faster to develop in Rails; components are more tightly integrated. For this reason, Ruby on Rails is often used for prototyping projects, or for early versions of projects that may even eventually be re-written and deployed in the PHP programming language.
Read also: How to Choose a PHP Application Framework
4. Symfony2 requires fewer server-side resources.
Symfony2 is lighter than Rails on server resources. This is great for businesses, potentially meaning lower web hosting costs for the same performance. Perhaps more significantly, PHP (the language that powers Symfony2) is supported on virtually all web hosts, giving you plenty of hosting options to meet your exact business requirements. Symfony2 also scales well. If your site’s popularity booms, it’s pretty easy to add more server capacity to meet that demand.
Read also: SSDs: Website Hosting Without the Spin
5. Symfony2 has better quality control, and offers LTS releases.
“Enterprise” editions and Long Term Support (LTS) releases are a big deal when software is business-critical. Symfony2 offers LTS releases. Rails does not.
Symfony2 is open source, though functionality is developed and tested primarily by SensioLabs, a French-based PHP development company. Many open source developers also contribute to the Symfony project, and SensioLabs performs a lot of testing and checks commits from open source contributors. All told, this means that Symfony has better quality control than Rails. Most features of Rails are open source contributions, and are not checked by any ‘higher’ authority.
Note: SensioLabs also offers valuable training and certification opportunities for Symfony2. No precise analogue is available for Rails.
“Starting from the principle that ‘an undocumented line is a line that does not exist,’ you will also find many works dedicated to Symfony, which will help you throughout the development of your sites and applications.”
Symfony2 supports several versions of PHP; as of January 2016, it supports PHP version 5.5.9 or later (released February 2014). This means that the current version of Symfony supports any version of PHP that has been released in the last two years. Rails 4.25, the current stable release, ‘prefers’ Ruby version 2.0 or later (released February 2013). Thus, both Symfony2 and Rails offer support for language versions going back at least two years. However, it is worth noting that Ruby has seen fewer major updates over the past few years than PHP has.
- Rails is not optimal for fast growth, but is well-suited for prototyping.
- Symfony2 is a stable and capable framework for long-term projects.
- Symfony2 offers professional – and thorough – training and certification options.
- Symfony2 has a components system, so you can use just one component in a project; you don’t have to use the entire framework.
Ruby on Rails and PHP plus Symfony2 offer approximately the same functionality. That said, PHP with Symfony2 may be a bit faster, easier to support, lighter on server resources, and more backwards compatible than Ruby on Rails. Most significantly, at present it is likely cheaper to develop functionality in PHP with Symfony2 than it is to develop the same functionality in Ruby on Rails. Ultimately, Ruby on Rails and PHP with Symfony2 are only tools. They both serve certain purposes well. Which you choose for your project will depend on your particular needs, your team’s expertise, and your budget.
Have you used Symfony2 in a recent development project? Are you thinking of developing a PHP-powered website for your startup or business? We would love to get in touch. Drop us an email, give us a call, or leave a Facebook message or Tweet!