This article or section is in a state of significant expansion or restructuring. You are welcome to assist in its construction by editing it as well. This template was placed by Gracen (talk · contribs). If this article or section has not been edited in several days , please remove this template. If you are the editor who added this template and you are actively editing, please be sure to replace this template with {{ in use }} during the active editing session. Click on the link for template parameters to use. This article was last edited by Gracen (talk | contribs) 3 seconds ago. (Update timer) |
Contributor note: Merging into Ruby (programming language) and deleting all duplicate content from this page. Expect incomplete information as the merge progresses. |
This article was nominated for deletion. The discussion was closed on 28 March 2025 with a consensus to merge the content into the article Ruby (programming language) . If you find that such action has not been taken promptly, please consider assisting in the merger instead of re-nominating the article for deletion. To discuss the merger, please use the destination article's talk page.(March 2025) |
The history of the Ruby programming language began when Yukihiro Matsumoto first conceived of the language in 1993, then released it in 1995. Annual releases of the language often take place on Christmas Day. Interest in the language surged around 2005 because of the Ruby on Rails framework.
It was released exactly 20 years after Ruby was first conceived. [1]
Ruby 2.2.0 was released on Christmas Day in 2014. [2] The release includes speed-ups, bugfixes, and library updates and removes some deprecated APIs. Most notably, Ruby 2.2.0 introduces changes to memory handling – an incremental garbage collector, support for garbage collection of symbols and the option to compile directly against jemalloc. It also contains experimental support for using vfork(2) with system() and spawn(), and added support for the Unicode 7.0 specification.
Features that were made obsolete or removed include callcc, the DL library, Digest::HMAC, lib/rational.rb, lib/complex.rb, GServer, Logger::Application as well as various C API functions. [3]
Ruby 2.3.0 was released on Christmas Day in 2015. A few notable changes include:
&. that can ease nil handling (e.g. instead of ifobj&&obj.foo&&obj.foo.bar, we can use if obj&.foo&.bar).profile={social:{wikipedia:{name:'Foo Baz'}}}, the value Foo Baz can now be retrieved by profile.dig(:social, :wikipedia, :name))..grep_v(regexp) which will match all negative examples of a given regular expression in addition to other new features.The 2.3 branch also includes many performance improvements, updates, and bugfixes including changes to Proc#call, Socket and IO use of exception keywords, Thread#name handling, default passive Net::FTP connections, and Rake being removed from stdlib. [9]
Ruby 2.4.0 was released on Christmas Day in 2016. A few notable changes include:
The 2.4 branch also includes performance improvements to hash table, Array#max, Array#min, and instance variable access. [10]
Ruby 2.5.0 was released on Christmas Day in 2017. [11] A few notable changes include:
On top of that come a lot of performance improvements like faster block passing (3 times faster), faster Mutexes, faster ERB templates and improvements on some concatenation methods.
Ruby 2.6.0 was released on Christmas Day in 2018. [12] A few notable changes include:
Ruby 2.7.0 was released on Christmas Day in 2019. [13] A few notable changes include:
Ruby 3.0.0 was released on Christmas Day in 2020. [14] It is known as Ruby 3x3. One of its main aims was to switch the interpreter to a Just-In-Time Compiler, to make programs faster.
Version 3.1.0 was released on Christmas of 2021. It included an autocomplete feature. [15]
Ruby 3.2.0 was released on Christmas Day of 2022. It includes support for WebAssembly. [16]
Ruby 3.3.0 was released on 25 December 2023. It adds a new parser named Prism, uses Lrama as a parser generator, adds a new pure-Ruby JIT compiler named RJIT, and many performance improvements especially YJIT. [17]
{{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link){{cite web}}: CS1 maint: multiple names: authors list (link)