WebBuilding

Languages and formats

Ruby

Summary

Ruby is a free, open-source programming language created by Yukihiro Matsumoto (Matz) in Japan, first released publicly in December 1995. It became a major web language through Ruby on Rails, the framework David Heinemeier Hansson announced in July 2004. As of October 22, 2026, W3Techs finds Ruby on 7.1% of websites whose server-side language is known, and the newest version is 4.0.8.

What Ruby is

Ruby is a free, open-source programming language created in Japan by Yukihiro Matsumoto, who is known in the Ruby community as Matz. It was first released publicly in 1995.1 On the web it is best known as the language of Ruby on Rails, a framework for building database-backed web applications.

Ruby is a general-purpose scripting language. A program is a plain text file that the Ruby interpreter reads and runs; there is no separate step that turns it into a machine-code file first. The language’s own site describes several features that shape how Ruby code looks:1

  • Everything is an object. Even a number is an object with methods of its own, so code such as 5.times asks the number 5 to repeat something five times.
  • Blocks. A block is a short piece of code handed to a method, which the method can run once or many times. Blocks are how Ruby code loops over lists, reads files and much more.
  • Mixins instead of multiple inheritance. A class inherits from one parent class only, but it can pull in shared methods from modules.
  • Few restrictions. Programmers can reopen and extend even Ruby’s built-in classes.

As of October 22, 2026, W3Techs finds Ruby on 7.1% of websites whose server-side programming language it can identify. That puts it behind PHP at 69.3% and JavaScript at 8.1%, and ahead of Java at 5.4% and Python at 1.1%.2 W3Techs notes that one website may use more than one server-side language.2 Its list of popular sites using Ruby includes Shopify.com and Vimeo.com, in each case on a subdomain.3

Among developers, in Stack Overflow’s 2026 survey, 5.8% of the 14,099 people who answered the question said they had done extensive work in Ruby during the past year, and 5.7% of 10,281 said the same of Ruby on Rails.4

Origins in Japan, 1993 to 2006

Matz wrote on the ruby-talk mailing list in June 1999 that Ruby was born on February 24, 1993. The official Ruby FAQ, which quotes that message, adds that he later corrected the birthday in another post, without restating the corrected date.5 The FAQ also explains the name: Matz named Ruby after a colleague’s birthstone, and he noted that ruby comes right after pearl twice: pearl is June’s birthstone and ruby July’s, and in font sizes pearl is 5 point and ruby 5.5 point.5

Matz has said he blended parts of his favorite languages, Perl, Smalltalk, Eiffel, Ada and Lisp, into a new one that balanced functional and imperative programming.1 Ruby’s site quotes his description of the goal:

“I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python.”1

In a 2003 interview he said Ruby inherited Perl’s philosophy of having more than one way to do the same thing. The interviewer, Bill Venners, contrasted this with the Python community’s preference for one way only.6 Venners also quoted Matz’s earlier statement that Ruby is designed to make programmers happy.6 That idea, programmer happiness, later became the first pillar of the Rails doctrine.7

The first public release came at the end of 1995. Matz, quoted in the FAQ, says he posted Ruby 0.95 to Japanese domestic newsgroups in December 1995. Mailing lists and web pages followed, and the Usenet newsgroup comp.lang.ruby was established in May 2000.5 Ruby’s site dates the language’s mass acceptance to 2006, when the ruby-talk mailing list averaged about 200 messages a day.1

Ruby is copyrighted free software by Matsumoto. Anyone may redistribute or modify it under either the two-clause BSD license or a separate set of conditions in Ruby’s own license.8 The main version, written in C, is called CRuby or MRI. Other implementations include JRuby, which runs on the Java virtual machine, TruffleRuby on GraalVM, and mruby, a small version for embedding in other programs that Matz leads.1 In April 2012, the language was published as an international standard, ISO/IEC 30170, which specifies Ruby’s syntax and meaning. ISO says the standard was last reviewed and confirmed in 2026.9

Ruby on Rails

Most people who build websites first meet Ruby through Rails. In July 2004, David Heinemeier Hansson announced Rails 0.5.0 on the ruby-talk list, describing it as an open-source web application framework for Ruby.10 He pointed to Basecamp, a web-based project management tool built with Rails, which he said was launched after two months of work by a single programmer.10 A framework is a ready-made set of code that handles the routine parts of an application so programmers can write only what is specific to theirs.

The announcement said Rails had an answer for every letter in MVC: Active Record for the model, and Action Pack for the controller and view.10 MVC, short for model, view, controller, divides an application into three layers, each with a specific job.11 In Rails:

  • The model holds the data and the business rules. Active Record maps Ruby objects to tables in a SQL database, so each row can be handled as an object.1011
  • The view builds what the visitor sees, usually HTML pages.
  • The controller handles each incoming web request, asks the model for what it needs and either renders a view or redirects to another action.1011

The Rails guide names two principles behind the framework. Don’t Repeat Yourself means each piece of knowledge should live in one place only. Convention over Configuration means Rails comes with opinions about how a web application should be laid out, such as how files and database tables are named, so programmers do not have to write settings for every choice.12 Hansson later set out nine pillars in The Rails Doctrine, the first two being to optimize for programmer happiness and to prefer convention over configuration, and he credits Matz with putting programmer happiness first.7

Rails 1.0 was released on December 13, 2005. Hansson’s announcement called it mostly a stabilization release, built from thousands of revisions and patches from hundreds of contributors.13 Rails is released under the MIT License.11

Rails grew alongside the Web 2.0 wave of web applications. Its own site lists Basecamp, GitHub, Shopify, Airbnb, Kickstarter, Zendesk and SoundCloud among the companies that use it.14 GitHub’s engineering blog says GitHub.com has been a single large Rails application, a monolith, from the start, with nearly two million lines of code and more than 1,000 engineers working on it each day, and that the team ships a Rails upgrade nearly every week.15 Not every company stayed on Rails for everything. In 2011, Twitter replaced the Rails front end of its search service with a Java server it called Blender, and reported that search latency fell by a factor of three.16

How Ruby runs a website

A Ruby website does not work like a folder of PHP files that the web server runs one request at a time. The Ruby application stays running as its own program, and requests reach it through a few layers.

  • Rack. Rack is a small interface between Ruby web servers and Ruby frameworks. It wraps each HTTP request and response “in the simplest way possible,” so any Rack server can run any Rack framework.17 Rails and Sinatra, a smaller Ruby framework, are among the frameworks that follow the Rack specification.17
  • The application server. Puma describes itself as a multi-threaded HTTP 1.1 server for Ruby and Rack applications, and it is the default server for Rails.18 Running bin/rails server on a new application starts Puma, which serves both static files and the Rails application.12 Phusion Passenger is another application server, installed into Nginx or the Apache HTTP Server.19
  • The front server. Many setups put a general web server such as Nginx in front of the application server. Rails 8 offers a different default: its generated Dockerfile adds Thruster, a proxy in front of Puma that handles asset caching and compression without Nginx.20

Ruby code is shared as gems. Each gem has a name, a version and a platform, and it contains code, documentation and a gemspec file that describes it.21 As of October 22, 2026, RubyGems.org, the main public library of gems, lists 197,873 gems and more than 272 billion downloads in total. The most downloaded gem is Bundler, at about 3.87 billion.22 Bundler tracks and installs the exact gems and versions a project needs. The project lists them in a file called Gemfile, and running bundle install produces a Gemfile.lock file that is saved to version control alongside it.23

On October 17, 2025, Matz announced that the Ruby core team would assume stewardship of the RubyGems and Bundler projects from Ruby Central, which had been their steward. Repository ownership moved to the core team, Ruby Central continued to manage them jointly with it, and both projects stayed open source under their existing licenses.24

Versions, speed and support

Ruby has a holiday release habit. Every x.y.0 release from 2.1.0 in 2013 to 4.0.0 in 2025 shipped on December 25, as did 1.9.0 in 2007. Ruby 2.0.0, released on February 24, 2013, was the exception.25

  • Ruby 3.0, December 25, 2020. It answered Matz’s earlier goal that “Ruby3 will be 3 times faster than Ruby2”: the release notes report three times the speed of Ruby 2.0 on the Optcarrot benchmark, while warning that results vary. It also added Ractor, an experimental tool for running code in parallel, and RBS, a language for describing the types in a Ruby program.26
  • Ruby 3.1, December 25, 2021. It merged YJIT, a just-in-time compiler developed by Shopify. A just-in-time compiler turns frequently used Ruby code into machine code while the program runs. YJIT was experimental and off by default.27
  • Ruby 3.2, December 25, 2022. YJIT was declared no longer experimental, with support for x86-64 and arm64 processors. The release also included an initial port that lets CRuby run as WebAssembly, in browsers and edge environments.28 Shopify reported in January 2023 that it had deployed YJIT across its storefront rendering servers and measured speedups of 5% to 10%.29
  • Ruby 4.0, December 25, 2025. It introduced Ruby Box, an experimental way to keep sets of definitions separate, and ZJIT, a new compiler described as the next generation of YJIT. The announcement said ZJIT was faster than the interpreter but not yet as fast as YJIT, and suggested holding off on production use.30

As of October 22, 2026, the newest release on Ruby’s releases page is 4.0.8, dated October 22, 2026.25 Ruby 4.1.0-preview1 followed on October 12, 2026, with garbage collection that runs separately in each Ractor and YJIT support on Windows.31 Ruby’s branch page lists 4.0 and 3.4 in normal maintenance and 3.3 in security maintenance until an expected March 31, 2027. Ruby 3.2 reached end of life on April 1, 2026.32

Rails has its own schedule. Under its maintenance policy, each minor release series gets bug fixes for one year and security fixes for two years after its first release.33 The main recent releases:

  • Rails 8.0, November 7, 2024. Its release post argued that developers should not need a platform-as-a-service (PaaS), a paid hosting layer, to deploy well, and Rails 8 came preconfigured with Kamal 2, a deployment tool. It added database-backed replacements for separate caching and job systems, a generator for basic sign-in code and production use of SQLite.20
  • Rails 8.1, October 22, 2025. It added jobs that can resume where they stopped, structured event reporting, a built-in way to run continuous integration checks locally and easier rendering of Markdown responses. The team said it was the work of more than 500 contributors across 2,500 commits.34

As of October 22, 2026, the newest Rails version is 8.1.4, released on September 24, 2026.14 Rails 7.2.4, released the same day, was the last of the 7.2 series, and only the 8.0 and 8.1 series still receive security and bug fixes.35

Ruby tools web designers meet

Ruby also reaches people who never write a Ruby program, through tools built with it.

  • Liquid. Liquid is an open-source template language created by Shopify and written in Ruby. It is the backbone of Shopify themes, where it fills store pages with live content, and Jekyll uses it too.36
  • Jekyll. Jekyll is a static site generator: it takes text written in a markup language such as Markdown, applies layouts and produces a static website.37 GitHub Pages has built-in support for it.38 Running Jekyll on your own computer requires Ruby 2.7.0 or newer and RubyGems, and it is installed with the command gem install jekyll bundler.37
  • Sass. Sass, a language for writing CSS style sheets, was born in the Ruby community. Natalie Weizenbaum began writing it in 2006. In April 2019, the Sass team announced that the original Ruby version was no longer supported and pointed users to Dart Sass instead.39

Timeline

  1. Ruby 4.0.8 is the newest release on Ruby's releases page25
  2. Ruby 4.1.0-preview1 adds per-Ractor garbage collection and YJIT on Windows31
  3. Rails 8.1.4 is released; Rails 7.2.4 ends the 7.2 series35
  4. Ruby 4.0.0 introduces Ruby Box and the ZJIT compiler30
  5. Rails 8.1 is released34
  6. The Ruby core team assumes stewardship of RubyGems and Bundler24
  7. Rails 8.0 is released with Kamal 2 and SQLite production support20
  8. Ruby 3.2 declares YJIT no longer experimental28
  9. Ruby 3.1 merges YJIT, developed by Shopify27
  10. Ruby 3.0 is released26
  11. Ruby is published as international standard ISO/IEC 301709
  12. Rails 1.0 is released13
  13. David Heinemeier Hansson announces Rails 0.5.0 on ruby-talk10
  14. Matz posts Ruby 0.95 to Japanese newsgroups5

What it means for your website

Most small business websites never run Ruby. If you use a hosted builder or self-hosted WordPress, which runs on PHP, Ruby is not part of your setup. The places it does show up:

  • Shopify themes. Shopify’s themes are written in Liquid, the Ruby-based template language Shopify created.36 Editing a theme file means editing Liquid, not Ruby itself. Our Shopify review covers what you can change.
  • A custom Rails application. If a developer proposes Rails for a booking system or customer portal, ask where it will run. A Rails app is a long-running program behind an application server such as Puma or Passenger, so the host must support Ruby applications, not only PHP.1819 Our guide to builders, WordPress or an agency helps you weigh a custom build against the alternatives.
  • Ask which versions it uses. As of October 22, 2026, Ruby 3.2 and older have reached end of life, and Rails 7.2 and older no longer get security fixes.3235 Rails publishes security releases, such as the July 29, 2026 fix for a flaw in its file-upload component that could let an attacker read files on the server and run code.40 Budget for upgrades, not only the first build.
  • Keep the Gemfile.lock. It lists the exact gems your application runs on.23 Make sure it is in the code repository you own, along with the rest of the source. Our page on who owns your website lists what else to collect.
  • Consider Jekyll for a simple site. A static site built with Jekyll can be published on GitHub Pages.38 It suits people comfortable with text files and a command line.

See also

References

  1. About Ruby. Ruby Community, ruby-lang.org. accessed October 22, 2026.
  2. Usage statistics of server-side programming languages for websites. W3Techs. 2026-10-22. accessed October 22, 2026.
  3. Usage statistics and market share of Ruby for websites. W3Techs. 2026-10. accessed October 22, 2026.
  4. 2026 Stack Overflow Developer Survey: Technology (full data). Stack Overflow. 2026. accessed October 22, 2026.
  5. Official Ruby FAQ: General questions. Ruby Community, ruby-lang.org. accessed October 22, 2026.
  6. The Philosophy of Ruby: A Conversation with Yukihiro Matsumoto, Part I. Bill Venners, Artima. 2003-09-29. accessed October 22, 2026.
  7. The Rails Doctrine. David Heinemeier Hansson, rubyonrails.org. accessed October 22, 2026.
  8. Ruby license (license.txt). Yukihiro Matsumoto, ruby-lang.org. accessed October 22, 2026.
  9. ISO/IEC 30170:2012 Information technology: Programming languages: Ruby. International Organization for Standardization. 2012-04. accessed October 22, 2026.
  10. [ANN] Rails 0.5.0: The end of vaporware. David Heinemeier Hansson, ruby-talk mailing list (ruby-talk:107370). 2004-07-25. accessed October 22, 2026.
  11. rails/rails: README and license. Ruby on Rails, GitHub. accessed October 22, 2026.
  12. Getting Started with Rails. Rails Guides. accessed October 22, 2026.
  13. Rails 1.0: Party like it's one oh oh. David Heinemeier Hansson, Ruby on Rails blog. 2005-12-13. accessed October 22, 2026.
  14. Ruby on Rails. rubyonrails.org. accessed October 22, 2026.
  15. Building GitHub with Ruby and Rails. Adam Hess, The GitHub Blog. 2023-04-06, updated 2024-06-21. accessed October 22, 2026.
  16. Twitter search is now 3x faster. Twitter Engineering Blog. 2011. accessed October 22, 2026.
  17. rack/rack: README. Rack, GitHub. accessed October 22, 2026.
  18. puma/puma: README. Puma, GitHub. accessed October 22, 2026.
  19. Phusion Passenger. Phusion. accessed October 22, 2026.
  20. Rails 8.0: No PaaS Required. David Heinemeier Hansson, Ruby on Rails blog. 2024-11-07. accessed October 22, 2026.
  21. What is a gem?. RubyGems Guides. accessed October 22, 2026.
  22. RubyGems.org stats. RubyGems.org. 2026-10-22. accessed October 22, 2026.
  23. Bundler. bundler.io. accessed October 22, 2026.
  24. The Transition of RubyGems Repository Ownership. Yukihiro Matsumoto, ruby-lang.org. 2025-10-17. accessed October 22, 2026.
  25. Ruby releases. ruby-lang.org. accessed October 22, 2026.
  26. Ruby 3.0.0 Released. ruby-lang.org. 2020-12-25. accessed October 22, 2026.
  27. Ruby 3.1.0 Released. ruby-lang.org. 2021-12-25. accessed October 22, 2026.
  28. Ruby 3.2.0 Released. ruby-lang.org. 2022-12-25. accessed October 22, 2026.
  29. Ruby 3.2's YJIT is Production-Ready. Maxime Chevalier-Boisvert, Shopify Engineering. 2023-01-17. accessed October 22, 2026.
  30. Ruby 4.0.0 Released. ruby-lang.org. 2025-12-25. accessed October 22, 2026.
  31. Ruby 4.1.0-preview1 Released. ruby-lang.org. 2026-10-12. accessed October 22, 2026.
  32. Ruby maintenance branches. ruby-lang.org. accessed October 22, 2026.
  33. Maintenance Policy for Ruby on Rails. Rails Guides. accessed October 22, 2026.
  34. Rails 8.1: Job continuations, structured events, local CI. Rafael Franca, Ruby on Rails blog. 2025-10-22. accessed October 22, 2026.
  35. Rails Version 7.2.4 has been released. Ruby on Rails blog. 2026-09-24. accessed October 22, 2026.
  36. Liquid template language. Shopify, GitHub Pages. accessed October 22, 2026.
  37. Jekyll documentation: Quickstart. jekyllrb.com. accessed October 22, 2026.
  38. About GitHub Pages and Jekyll. GitHub Docs. accessed October 22, 2026.
  39. Ruby Sass Has Reached End-Of-Life. Natalie Weizenbaum, Sass blog. 2019-04-03. accessed October 22, 2026.
  40. Rails Versions 7.2.3.2, 8.0.5.1, and 8.1.3.1 have been released. Ruby on Rails blog. 2026-07-29. accessed October 22, 2026.

Web Building Encyclopedia. First published October 22, 2026. Last reviewed October 22, 2026. Every fact on this page is linked to a source we opened. Spotted an error? Write to [email protected].