Ruby and PHP are two of today’s best-known and widely used languages for web development. There are some major similarities between them – they are both dynamically typed, meaning you don’t need to declare variables before using them, they both have exceptions and private and public classes, and they both have extensive standard libraries to call on. See more here. However, they are also quite different in a number of other important ways, as we’ll see by going into detail about the two languages.

Ruby

Created in 1995 by Yukihiro Matsumoto, Ruby is a general-purpose programming language that’s also gaining widespread acceptance for web development via the Rails web development framework, developed later in 2005. In fact many programmers new to Ruby are learning it as part of Ruby on Rails.

Ruby has always had the guiding principle that there is more than one way to do something. The language offers developers a lot of flexibility and freedom to do what they want, how they want it. This one characteristic makes Ruby on Rails a powerful development platform, but the flipside is that Ruby is also more complex to implement and more difficult to learn for beginners. For instance grasping the concepts around blocks, procs and lambdas will be a challenge even to experienced developers coming in from other languages. And the Rails framework itself introduces yet more complexity and stuff to learn. In Rails you must learn the whole stack - web server, application server and the database engine. Troubleshooting Rails is also a tricky affair as it doesn’t focus on errors like PHP; instead it simply refuses to load the entire page you’ve just spent an intense 10 hours developing.

Other notable features of Ruby/ Rails are listed below.

  • Object-intensive: in Ruby everything is an object, including even classes and modules
  • Use of blocks
  • Functional programming
  • Fragmentation
  • Full Unicode support
  • Rails’ ActiveRecord ORM
  • Rails’ integrated testing framework

PHP

PHP was created around the same time as Ruby in 1995, by Rasmus Lerdorf. Unlike Ruby, PHP was purpose-built as a web development language, although it is now also used for general programming. Web development and deployment is very simple with PHP; for example if you want to send a header to the browser, just use the inbuilt header() function. In Ruby/Rails you must first load in some libraries then use namespaces or modules to get to the equivalent function.

One of PHP’s main advantages compared to Ruby is its blissful simplicity and shallow learning curve, and that’s one reason for its massive popularity and huge user community. There is also a much larger market for PHP developers – on a single day in December 2012 there were 305 job postings on Monster.com for PHP developers, vs. 138 for Ruby developers (and that’s Ruby in general, not specifically Ruby on Rails). There were over 18,000 developers listing with PHP skills on their resumes on LinkedIn, compared to 720 resumes listing Ruby as a skill. Lastly, PHP also boasts a much higher number of other complementary 3rd-party resources, such as frameworks, applications and libraries.

One of PHP’s major flaws is that it was not always object-oriented. This led to developers generating poor-quality code to get around the problem. Also, PHP does not have proper native Unicode support, although this is reportedly a work in progress slated for the next major release.

Summary

So, which one to choose – Ruby or PHP? It will really depend on your priorities and features that you find desirable in each language. Ruby is a powerful, flexible language with an excellent web framework in Rails. But it is difficult to learn and needs a higher level of technical skill, so good Ruby on Rails developers are harder to find and will therefore ask for higher compensation.

PHP is easier to learn and in much more widely used, though it is not as powerful as Ruby. And PHP is also custom-built for web development, though it’s not as good for general-purpose development.

References

Ready to see
UpGuard in action?

Ready to save time and streamline your trust management process?