The 2.4 branch also includes performance improvements to hash table, Array#max, Array#min, and instance variable access.  Ruby's popularity has been declining since 2014,  a slip that may be permanent in the face of increasing competition.  Ruby 2.5 [ edit ] Ruby 2.5.0 was released on Christmas Day in 2017.  A few notable changes include: rescue and ensure statements automatically use a surrounding do-end block (less need for extra begin-end blocks) Method-chaining with yield_self Support branch coverage and method coverage measurement Easier Hash transformations with Hash#slice and Hash#transform_keys 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.
Table of versions [ edit ] Version Latest teeny version Initial release date End of support phase End of security maintenance phase 1.0 NA 1996-12-25  NA NA 1.8 1.8.7-p375  2003-08-04  2012-06  2014-07-01  1.9 1.9.3-p551  2007-12-25  2014-02-23  2015-02-23  2.0 2.0.0-p648  2013-02-24  2015-02-24  2016-02-24  2.1 2.1.10  2013-12-25  2016-03-30   2017-03-31   2.2 2.2.10  2014-12-25  2017-03-28  2018-03-31  2.3 2.3.8  2015-12-25  2018-06-20  2019-03-31  2.4 2.4.5  2016-12-25  TBA TBA 2.5 2.5.3  2017-12-25  TBA TBA 2.6 2018-12-25  TBA TBA 3.0 2020   TBA TBA Legend: Old version Older version, still supported
Latest version Future release Philosophy [ edit ] Yukihiro Matsumoto , the creator of Ruby Matsumoto has said that Ruby is designed for programmer productivity and fun, following the principles of good user interface design.  At a Google Tech Talk in 2008 Matsumoto further stated, "I hope to see Ruby help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."  He stresses that systems design needs to emphasize human, rather than computer, needs:  Often people, especially computer engineers, focus on the machines. They think, "By doing this, the machine will run fast. By doing this, the machine will run more effectively. By doing this, the machine will something something something." They are focusing on machines. But in fact we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves. Ruby is said to follow the principle of least astonishment (POLA), meaning that the language should behave in such a way as to minimize confusion for experienced users. Matsumoto has said his primary design goal was to make a language that he himself enjoyed using, by minimizing programmer work and possible confusion. He has said that he had not applied the principle of least astonishment to the design of Ruby,  but nevertheless the phrase
has come to be closely associated with the Ruby programming language. The phrase has itself been a source of surprise, as novice users may take it to mean that Ruby's behaviors try to closely match behaviors familiar from other languages. In a May 2005 discussion on the newsgroup comp.lang.ruby, Matsumoto attempted to distance Ruby from POLA, explaining that because
- Fall '12