Generated by GPT-5-mini| Ruby (programming language) | |
|---|---|
![]() | |
| Name | Ruby |
| Designer | Yukihiro Matsumoto |
| Developer | Yukihiro Matsumoto, Ruby core team |
| Typing | Dynamic, duck typing |
| Influenced by | Perl, Smalltalk, Eiffel, Ada, Lisp, Python |
| Influenced | Crystal, Elixir, JRuby, Rubinius |
| First appeared | 1995 |
| License | BSD, others |
Ruby (programming language) Ruby is a dynamic, open-source, object-oriented programming language created to emphasize programmer productivity and code readability. Designed by Yukihiro Matsumoto, it blends ideas from Perl, Smalltalk, Eiffel, Ada and Lisp to provide a concise syntax and expressive features favored by developers at companies such as Shopify, GitHub, Airbnb and organizations like Basecamp. Its ecosystem is shaped by projects and events including Ruby on Rails, RubyGems, RailsConf and the RubyKaigi conference.
Development began in 1993 under the lead of Yukihiro Matsumoto while he worked with colleagues influenced by Matz's philosophy and language designers such as Yukihiro Matsumoto's admiration for Perl and Smalltalk. Ruby's public release in 1995 coincided with growing interest from communities around Japan, United States, Europe, and conferences such as RubyConf and JapanRubyKaigi. The language's global adoption accelerated after the release of Ruby on Rails in 2004, which linked Ruby to web development movements involving DHH and companies like 37signals and Basecamp. Implementation milestones include the creation of alternative runtimes such as JRuby, Rubinius, and TruffleRuby, and package management advances via RubyGems. Key versions and standards involved contributions from organizations and attendees of meetings where core developers worked alongside engineers from Google, Heroku, Engine Yard, and academic collaborators.
Ruby's design prioritizes programmer happiness, influenced by ideas from Perl, Smalltalk, Eiffel, Lisp, and Python. It treats nearly everything as an object, following object models similar to Smalltalk and metaprogramming capabilities akin to Lisp macros though implemented differently. Features include dynamic typing, garbage collection, first-class functions, mixins via modules inspired by Eiffel, and exception handling patterns familiar to users of Ada and Python. Concurrency and parallelism capabilities are explored across implementations with work by contributors from Oracle Corporation, Red Hat, IBM, and research groups at institutions such as MIT and University of Tokyo.
Ruby's syntax draws heavily from Perl, Smalltalk, Python, and Ada to offer readable block structures, iterators, and closures similar to constructs in Lisp and Scheme. Semantically, method lookup, class inheritance, and module mixins align with concepts studied in programming language research at universities like Stanford University, University of California, Berkeley, and University of Cambridge. The language supports metaprogramming patterns used by developers associated with projects like Rails, RSpec, and Sinatra, with syntax enabling domain-specific language construction used in systems from Chef to Vagrant.
The reference interpreter, produced by the core team led by Matsumoto, remains central while alternative implementations address different runtime goals. JRuby integrates Ruby with the Java Virtual Machine and benefits from work by contributors affiliated with Oracle Corporation and Red Hat. Rubinius focuses on VM research with roots connected to developers formerly at Engine Yard and academic collaborators. TruffleRuby is developed in conjunction with the GraalVM project and contributors from Oracle Labs. Other implementations and toolchains have emerged in organizations like Shopify, GitHub, and academic labs at ETH Zurich and University of Tokyo, exploring JIT compilation, garbage collection, and interoperability with languages such as Java, C#, and JavaScript.
Ruby's standard library includes modules for network protocols, data serialization, and threading shaped by contributions from companies like Net::HTTP maintainers and integrations with services such as AWS SDKs used at Heroku and Engine Yard. Package management is centralized through RubyGems, influenced by package ecosystems like CPAN and PyPI, while build and dependency tools such as Bundler and test frameworks like RSpec and MiniTest are staples used by teams at GitHub, Shopify, Basecamp and in open source communities hosted on GitLab and Bitbucket. IDE and editor support spans JetBrains, Visual Studio Code, Sublime Text, and Emacs extensions developed by contributors across companies and academic groups.
Ruby's adoption grew with Ruby on Rails and endorsements from startups and enterprises including GitHub, Shopify, Airbnb, SoundCloud, and Hulu. Community governance and development occur via core team meetings, conferences such as RailsConf, RubyConf, RubyKaigi, and collaborative platforms like GitHub and GitLab. Educational resources and advocacy are provided by authors and educators associated with O'Reilly Media, Pragmatic Programmers, and university courses at institutions including MIT, Stanford University, and University of Tokyo. Foundations and user groups in cities like San Francisco, New York City, London, Tokyo, and Berlin support meetups and hackathons.
Critiques of the language include performance comparisons where implementations face challenges relative to Java, C#, Go, and Rust in raw throughput and latency-sensitive systems; companies like Google, Facebook, and Amazon often favor languages with different performance trade-offs. Concurrency semantics and global interpreter lock concerns in the reference implementation have prompted alternative runtimes and academic research at MIT and University of Tokyo. Critics from systems engineering teams at Netflix and Facebook have highlighted scaling and typing limitations compared with statically typed ecosystems used at LinkedIn and Twitter. Security audits and vulnerability management are addressed by contributors from OWASP and commercial vendors such as Snyk and GitHub's security teams.