Ruby versus PHP

Ruby vs PHP – in Quest of the Most Suitable Programming Language for your Startup

Even a brilliant idea can lose its shine if poorly implemented. It means if you want to succeed in something, make sure that you leverage the most applicable tool for that. We can apply the same fundamental truth to web app development where the tech stack you pick is as essential as what you’re going to build.

Some time ago, Railsware covered the battle between three prominent technologies (Python vs. Ruby vs. Node.js) for web app building. This time, we’re going to focus on two extremes – PHP, which is the most popular scripting language for the web, and Ruby, which is a bold underdog on the market thanks to its supreme framework known as Rails. So, Ruby or PHP, that’s the question.

Ruby or PHP - which language to choose

Who is who?

Both names are open-source scripting languages that are used for building web apps and general-purpose programming as well. They appeared in the middle of the 1990’s, and have common roots in the C language. But then their paths diverge.

Ruby

We should say thank you to Yukihiro Matsumoto for the creation of Ruby. This object-oriented language co-opted the features of Eiffel, Ada, Lisp, Small talk, Perl and C of course. With Ruby, web engineers get clear syntax (akin to Python and Perl to some extent similar) and upturned productivity. Its guiding principle is that you can go different ways to do the same thing. Usability is one of the arguments for why Ruby is better than PHP. Code written with this language is not only elegant and expressive but also highly usable, which clears away any confusion for users.

Interest in this technology picked up with the release of Ruby on Rails in 2005. Nevertheless, it still lags far behind PHP. Among the apps built with RoR are Kickstarter, Airbnb, and many others.

PHP

This flexible and pragmatic solution for building web apps was created by Rasmus Lerdorf. The original acronym denoted Personal Home Page. However, now it refers to Hypertext Preprocessor. According to W3Techs, this server-side scripting language powers more than 80% of all websites including WhatsApp and Viber. Moreover, it also is the basis for renowned content management systems (CMS) like WordPress and Drupal. PHP allows you to create a range of web products from simple blogs to dynamic websites.

The technology offers a plethora of frameworks for use. Laravel is the most famous one, which we will take a look at a bit later.

Differences and similarities between Ruby and PHP

We should begin our journey with hands-on differences and similarities between the languages to get a clear understanding of when to choose Ruby or/vs. PHP for web development.

Similarities

Both languages:

  • Are dynamically typed
  • Have exceptions
  • Have common programming paradigms (imperative, object-oriented, reflective)
  • Have an extensive standard library
  • Use string interpolation
  • Have vectorized operations
  • Have garbage collection
  • Have classes with access control (private, public, protected)
  • Have string formatting syntax
  • Support multi-dimensional arrays
  • Are suitable for rapid prototyping

Differences

  • Ruby differs from PHP in the lack of different syntax to access methods, variables, and properties.
  • PHP uses type hints in certain cases but is dynamic. Ruby uses duck typing and no type hints.
  • PHP uses a semicolon as a terminating symbol. In Ruby, you can use just the next line or the semicolon as well, which is a rare case and suitable for multiple instructions per line.
  • A two strings concatenation is implemented through dot (.) in PHP and plus sign (+) in Ruby.
  • PHP supports 32/64-bit integer data types, while Ruby used to leverage two visible integer classes: Fixnum and Bignum. In the newest version, both of them have been unified into one class – Integer.
  • Strong typing in Ruby versus weak typing in PHP.
  • Code blocks in PHP end with curly brackets ({}). In Ruby, you can choose between curly brackets and the word “end” for this purpose.
  • Unlike PHP, Ruby supports records and complex numbers.
  • Ruby allows nesting classes in the same file and module, while in PHP, each class requires its own file and namespace.
  • Complex PHP syntax versus easy-to-understand in Ruby.

Pros & Cons

RubyPHP
Pros
  • Open-source
  • Multiple platform support
  • Pure object-oriented programming (OOP) – everything is an object
  • Metaprogramming technique allows for reducing code length and development time
  • Flexible and comprehendible syntax
  • Fast development cycle
  • Extensive ecosystem
  • Test-driven development
  • Ruby on Rails
  • Open-source
  • Short learning curve
  • First-class functions support
  • Multiple platforms support
  • Huge ecosystem
  • The abundance of pluggable frameworks
  • Functional and object-oriented programming
  • Large software community
Cons
  • Slow CPU time compared to alternatives
  • Unsuitable for memory-intensive tasks
  • Steeper learning curve
  • Threaded execution
  • Less secure than alternative languages
  • Poor error handling

Integrations (Frameworks)

When we talk about Ruby vs. PHP usage, we should keep in mind that the language-based frameworks are no less important. For example, Ruby on Rails exceeds its underlying programming language in popularity which is evidenced by numerous articles on the web where RoR and PHP are compared. But that is like comparing a chicken soup with noodles. They are both edible but different in essence. For this reason, it makes more sense to compare Laravel vs. Rails – two great web development tools.

Rails

We’ll try to be unbiased, but Rails holds a special place in Railsware’s arsenal. This technology can boast numerous benefits including consistency, consolidation, scalability, security, and others. All these buzzwords mean that you spend less time and money on web app building compared to many other alternatives. Another salient benefit is startup-orientation. The framework can provide fast, efficient and quality outcomes through the so-called magic – Model-View-Controller (MVC) principle, the convention over configuration paradigm, test-driven development approach, etc.

It’s not a silver bullet that can be applied to any project. However, if you want to build a regular web app without any fixed concept (frequent changes are likely), RoR seems to be a perfect choice. You can find more information about why to use Ruby on Rails for your product here.

Laravel

PHP offers a bunch of frameworks – CakePHP, CodeIgniter, Symfony, and so on. However, let’s focus on Laravel – a noteworthy competitor to Rails. This PHP framework is seven years younger than RoR. At the same time, they have many similarities like the MVC pattern, OOP support, DRY principle, and awesome community support. Most of the differences lie in syntax due to their origin. It is interesting that Laravel allows you to build almost any type of web app including password managers, social networks, e-commerce websites, etc.

This is just a short intro to Ruby on Rails vs. PHP Laravel. Truth be told, this topic deserves deeper attention. So, we hope to deal with it in some time. And now, let’s get back on track.

Market presence

We’ve already mentioned that PHP beats Ruby in terms of market presence. At the time of writing, this server-side language takes up about 83.5% of the total market share. It does not have a serious competitor so far, and Ruby can only dream about such heights with just 0.6% of market share according to W3Techs. Of course, we shouldn’t rely on just one source . We also referred to SimilarTech and got the following data. The number of websites built with PHP exceeds 8 million, while Ruby acting by Rails can has just over 300K. PHP’s supremacy is also observed in different categories of web apps including people & society, shopping, entertainment, business, arts, and others. Ruby also lost in geographical coverage, where PHP has total prevalence in Russia and the USA ahead of the rest of the world.

As you can see there’s just no comparison in PHP vs. Ruby popularity. PHP had taken the lead far before Ruby on Rails came out and had a significant head start.

Face-to-face shootout

Now, let’s look at Ruby versus PHP in a face-to-face shootout to learn which programming language is the best in terms of performance, security, documentation, etc.

Learning curve

This aspect is important for both developers and startup founders. If a language has a steep learning curve, the understandability and clarity of the code will be high. And Ruby is the language that is known for its high-quality code. Hence, the answer to the question “Is Ruby or PHP easier to learn?” will be PHP. This technology requires less effort to master. For those who want to increase their knowledge of Ruby on Rails, we have prepared a selection of books here.

Performance

Using Ruby vs. PHP benchmark tests, you can define which language provides the highest performance. The focus was made at two parameters – the average runtime and the number of code lines. PHP leads in the first parameter, while Ruby gives shorter code. So, we can state that we have no winner in PHP vs. Ruby performance.

Security

Security is mostly related to frameworks and libraries. The language itself doesn’t have much to do with protection against different vulnerabilities including CSRF, XSS, and others. PHP is usually considered less secure than Ruby, which provides versatile robust tools to cope with common security vulnerabilities. With that in mind, we have a definite winner in the Ruby vs. PHP security comparison. However, that does not guarantee your code’s immunity to safety problems. Keep in mind that the safety of your web product is mostly defined by the way it is written.

Demand for developers

The high popularity and low learning curve of PHP means there are more developers who know PHP than Ruby. That said, you’ll face more troubles in finding a decent Ruby rather than PHP engineer in many parts of the globe. In that sense, Rubyists are in a higher demand not only in the USA and Japan, where Ruby enjoys the highest popularity. The language has a constant flow of venture capital funded startups across the planet. On the other hand, one of the largest communities of engineers and a huge market share means there is a constant demand for PHP programmers.

Why choose Ruby or PHP

Each project has its own peculiarities and requirements that have to be considered when choosing a tech stack. We can’t just say “Do it with Ruby” or “Everybody does it with PHP, so you should too”. An ad hoc selection approach is what you need. And the following list of reasons should make the choice easier for you.

Reasons to opt for Ruby

  • Ruby on Rails
  • It’s no wonder that we’ve placed Ruby on Rails as the key reason to opt for this language. If we take PHP, we’ll discover many frameworks to choose from, which may make a decision challenging. Ruby, in turn, does not limit itself to Rails. There are plenty of other frameworks including Sinatra, Padrino, Ruby Grape, etc. However, Rails is one of the major arguments for developers to love Ruby. With the framework, you can do a bunch of cool things automatically. In addition, it is startup-friendly, as evidenced by many famous names including Basecamp, Slideshare, and Github that run on RoR. Fintech is another niche Ruby on Rails gets along with. Here you’ll find more information about RoR for fintech products.

  • Syntax
  • The most popular Ruby-framework is not the only advantage. The syntax is what attracts many programmers to take Ruby’s side. Why learn PHP if you can get an elegant and readable syntax with Ruby and enjoy coding. Some say that a well-written Ruby code is like a book to read, and even non-engineer may get it. That sounds incredible, but it is Ruby. In practice, you get a maintenance-friendly product that was built rather fast.

  • Gems
  • This term among Rubyists denotes a software package containing a library or add-on. According to RubyGem statistics, more than 145K gems have been released so far. The purpose of each gem is rather simple – to accelerate and improve development. There is a high probability that the task you’re dealing with has been already solved by someone before. So, why do you need to reinvent the wheel if you can leverage a ready-for-use solution? By the way, PHP has a RubyGem alternative called Composer, where you can browse public software packages. PHP composer vs. Ruby gem is another topic to compare in detail but not here.

Reasons to opt for PHP

  • Toolings
  • Unlike Ruby, which is known mostly for one framework, PHP offers numerous solutions to optimize your work. In addition to the abovementioned Laravel, you can enjoy the benefits of Zend, CakePHP, Symphony, Phalcon, Codeigniter, and many others. Each of them has its own ace in the hole represented by peculiar features and inbuilt functions like database connection, debugging, calendar integration, etc. PHP frameworks allow you to recycle code and automate some trivial tasks.

  • E-commerce-friendly
  • PHP is a good web app technology and one of the best for building e-commerce websites. Really, a huge ecosystem and specific capabilities of the language allow engineers to speed up time-to-market and do without huge budgets. In addition, PHP frameworks and off-the-shelf solutions contain integrated sales analytics tools to assist in running a business.

  • Cost-efficiency
  • Similar to Ruby on Rails, PHP is a money-saving solution to build your project. Cost-efficiency starts from the very beginning when you don’t even spend a dime on subscription costs since the language is open-source. We’ve already gone through a comparison of developer Ruby vs. developer PHP, and you know that to find a PHPer is easier and cheaper. In any case, you can rely on C++ or Java engineers’ expertise since they won’t spend much time to get up to speed. Further on, you get an incredible assortment of tools including frameworks, editors, dependency managers, etcetera to optimize (i.e., reduce costs) the development. PHP saves both your time and money.

Wrapping Up

Now, it’s time to recap what we’ve learned about these two languages, let’s sum up some key takeaways.

RubyPHP
  • Ruby is an OOP language with elegant and readable syntax
  • Ruby on Rails is what drives Ruby ahead
  • Good Ruby engineers are harder to find
  • With Ruby, you can build web apps, desktop apps, and APIs
  • PHP is an OOP language with a vast market share
  • Many CMSs including WordPress are written using PHP as the scripting language
  • PHP is easier to learn than Ruby
  • With PHP, you can build web and desktop apps

In this article, you won’t find an answer to the question “Should I learn PHP or Ruby?” Both technologies are noteworthy and mature, and you will have to choose which language to leverage for your project needs.