Ruby

Ruby

Open Source

A programmer's best friend.

Programming Languages

Published 29 May 2026 · Last updated 27 September 2026

Scores

Popularity2/5

Declining language; still present in Rails-heavy shops but shrinking new project adoption.

Learning Curve2/5

Expressive, readable syntax; REPL-friendly for exploration; very beginner-accessible.

Flexibility5/5

Dynamic, meta-programming-friendly language; DSL construction is a recognized core strength.

Performance2/5

Interpreted language; YJIT improves throughput but Ruby remains slow for CPU-intensive work.

Portability4/5

Ruby skills transfer within the Ruby ecosystem; concepts transfer to Python and other scripting languages.

About Ruby

Ruby is a dynamic, object-oriented language created by Yukihiro "Matz" Matsumoto and first released in 1995, designed around developer happiness and the Principle of Least Surprise: code should behave the way programmers intuitively expect. Everything in Ruby is an object, including integers, booleans, and nil, which makes the language unusually consistent.

Its syntax reads close to natural English, making it approachable for beginners while supporting sophisticated metaprogramming. Classes can be reopened and modified at runtime, including built-in types, which is a cornerstone of how frameworks like Rails achieve their "magic".

Blocks and closures are first-class. Attaching a block to any method call enables expressive iterators, callbacks, and DSLs, and modules (mixins) give Ruby composition without the pitfalls of multiple inheritance.

RubyGems and the Bundler dependency manager give Ruby one of the most mature packaging stories among scripting languages, with gems for everything from HTTP clients and ORMs to PDF generation and payments.

Ruby ships a new version every December. The 3.x series brought large performance gains, including the YJIT just-in-time compiler (opt-in, and turned on by default in new Rails apps) and Ractors for parallel execution. Ruby 4.0 (2025) added ZJIT, an experimental successor to YJIT, Ruby Box for isolating definitions, and a reworked Ractor API.

Ruby's mindshare has declined relative to Python and JavaScript, but it keeps a strong niche in web development through Rails and a welcoming community known by the motto MINASWAN (Matz Is Nice And So We Are Nice).

Key Features

  • Everything is an object, including integers, booleans, and nil
  • Blocks and closures for expressive iterators and DSLs
  • Mixins via modules instead of multiple inheritance
  • Metaprogramming with open classes and method_missing
  • RubyGems ecosystem managed with Bundler
  • YJIT just-in-time compiler, plus experimental ZJIT in Ruby 4.0
  • Multiple implementations: CRuby (MRI), JRuby, TruffleRuby, mruby
  • Optional type signatures via RBS, Sorbet, and Steep

Pros

  • Readable, English-like syntax that is fast to write and easy to onboard
  • High developer productivity, especially with Rails
  • Expressive and flexible; the language stays out of the developer's way
  • Mature gem ecosystem and tooling (Bundler, RubyGems, RDoc)
  • Welcoming community with extensive documentation and conferences

Cons

  • Slower than Go, Java, or compiled languages for CPU-bound work
  • The Global VM Lock in CRuby prevents parallel threads; Ractors are still maturing
  • Ruby and Rails apps often have large memory footprints
  • Heavy metaprogramming makes codebases hard to trace and statically analyse
  • Declining mindshare makes hiring harder than for Python or JavaScript

Ruby Pricing

Open Source

Tech Stacks with Ruby

HTMX + Rails

Project

Ruby on Rails with HTMX for partial-page updates. Rails already excels at server-rendered HTML, and HTMX adds AJAX-driven DOM swaps without Turbolinks complexity. A natural fit for the Rails philosophy of server-driven development.

Database:
Deploy on:
Authentication add-on:
CI/CD add-on:
Containerization add-on:
Observability add-on:
Email add-on:
Payments add-on:
Styling add-on:
Interactivity add-on:
Analytics add-on:

Ruby on Rails Starter

Project

Classic Rails web application with PostgreSQL (or MySQL and MariaDB), a convention-over-configuration full-stack.

Database:
Deploy on:
Authentication add-on:
CI/CD add-on:
Containerization add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Tools Related to Ruby

Alternatives to Ruby(5)

Both web-focused languages; PHP has a larger web footprint (WordPress/Drupal), Ruby is known for Rails and developer productivity.

Ruby is dynamic and developer-friendly; Rust is compiled and memory-safe — very different trade-offs.

Go is compiled and high-performance; Ruby is dynamic and prioritizes developer happiness — different trade-offs.

Java is compiled and enterprise-dominant; Ruby is dynamic and prioritizes developer happiness — rarely direct alternatives.

Ruby is a dynamic scripting language; TypeScript is typed JavaScript — different primary ecosystems.

Tags

RubyOpen SourceWeb

Details

Maintained
Yes
Type system
Dynamic
Execution
Interpreted
Paradigms
Object-oriented, Functional, Imperative, Reflective
Version
4.0.2
GitHub stars
23.8k
Stars updated
2026-09-23