Knowledge (XXG)

Ruby (programming language)

Source 📝

2206: 177: 438: 8205: 5876: 5225: 4879: 732: 2220: 5866: 5197: 1303:(POLA) to the design of Ruby; in a May 2005 discussion on the newsgroup comp.lang.ruby, Matsumoto attempted to distance Ruby from POLA, explaining that because any design choice will be surprising to someone, he uses a personal standard in evaluating surprise. If that personal standard remains consistent, there would be few surprises for those familiar with the standard. 4891: 89: 32: 1800:; however, accessor methods can also be created in the traditional fashion of C++ and Java. As invocation of these methods does not require the use of parentheses, it is trivial to change an instance variable into a full function, without modifying a single line of calling code or having to do any refactoring achieving similar functionality to 2106:(Rails) framework, because it is complex to implement and uses many Ruby-specific features. The point when a particular implementation achieves this goal is called "the Rails singularity". The reference implementation, JRuby, and Rubinius are all able to run Rails unmodified in a production environment. 1340:
and methods are always called on an object. Methods defined at the top level scope become methods of the Object class. Since this class is an ancestor of every other class, such methods can be called on any object. They are also visible in all scopes, effectively serving as "global" procedures. Ruby
1294:
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
1811:
Python's property descriptors are similar, but come with a trade-off in the development process. If one begins in Python by using a publicly exposed instance variable, and later changes the implementation to use a private instance variable exposed through a property descriptor, code internal to the
1310:
Everyone has an individual background. Someone may come from Python, someone else may come from Perl, and they may be surprised by different aspects of the language. Then they come up to me and say, 'I was surprised by this feature of the language, so Ruby violates the principle of least surprise.'
1253:
attacks, and configurable timeouts for regular expression matching. Additional debugging and syntax features are also included in this release, which include syntax suggestion, as well as error highlighting. The MJIT compiler has been re-implemented as a standard library module, while the YJIT, a
1189:
Day in 2020. It is known as Ruby 3x3 which means that programs would run three times faster in Ruby 3.0 comparing to Ruby 2.0. and some had already implemented in intermediate releases on the road from 2 to 3. To achieve 3x3, Ruby 3 comes with MJIT, and later YJIT, Just-In-Time Compilers, to make
2548:
The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the
1289:
design. At a Google Tech Talk in 2008 he said, "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:
573:
then. But I didn't like it, because I didn't think it was a true object-oriented language – OO features appeared to be add-on to the language. As a language maniac and OO fan for 15 years, I really wanted a genuine object-oriented, easy-to-use scripting language. I looked for but
926:
Ruby 2.2.0 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
753:
Effective with Ruby 1.9.3, released October 31, 2011, Ruby switched from being dual-licensed under the Ruby License and the GPL to being dual-licensed under the Ruby License and the two-clause BSD license. Adoption of 1.9 was slowed by changes from 1.8 that required many popular third party
1265:
Ruby 3.3 was released on December 25, 2023. Ruby 3.3 introduces significant enhancements and performance improvements to the language. Key features include the introduction of the Prism parser for portable and maintainable parsing, the addition of the pure-Ruby JIT compiler RJIT, and major
1315:
surprise. And it means the principle of least surprise after you learn Ruby very well. For example, I was a C++ programmer before I started designing Ruby. I programmed in C++ exclusively for two or three years. And after two years of C++ programming, it still surprises me.
947:
Ruby 2.3.0 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. Other notable changes include:
1275: 1266:
performance boosts in the YJIT compiler. Additionally, improvements in memory usage, the introduction of an M:N thread scheduler, and updates to the standard library contribute to a more efficient and developer-friendly Ruby ecosystem.
887:
Ruby 2.0 was intended to be fully backward compatible with Ruby 1.9.3. As of the official 2.0.0 release on February 24, 2013, there were only five known (minor) incompatibilities. Ruby 2.0 added several new features, including:
7531: 1820:
methods. This is in keeping with the idea that in Ruby, one never directly accesses the internal members of a class from outside the class; rather, one passes a message to the class and receives a response.
711:
Ruby 1.8 was initially released August 2003, was stable for a long time, and was retired June 2013. Although deprecated, there is still code based on it. Ruby 1.8 is only partially compatible with Ruby 1.9.
589:
The name "Ruby" originated during an online chat session between Matsumoto and Keiju Ishitsuka on February 24, 1993, before any code had been written for the language. Initially two names were proposed:
943:
was improved. 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.
715:
Ruby 1.8 has been the subject of several industry standards. The language specifications for Ruby were developed by the Open Standards Promotion Center of the Information-Technology Promotion Agency (a
2134:. Modern Ruby versions and implementations are available on all major desktop, mobile and server-based operating systems. Ruby is also supported across a number of cloud hosting platforms like 1197:
and two more utilities Fibre Scheduler, and experimental Ractor facilitate the goal. Ractor is light-weight and thread-safe as it is achieved by exchanging messages rather than shared objects.
5369: 1812:
class may need to be adjusted to use the private variable rather than the public property. Ruby's design forces all instance variables to be private, but also provides a simple way to declare
1299:
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
1765:. Class and method definitions are signaled by keywords, whereas code blocks can be defined by either keywords or braces. In contrast to Perl, variables are not obligatorily prefixed with a 565:
I was talking with my colleague about the possibility of an object-oriented scripting language. I knew Perl (Perl4, not Perl5), but I didn't like it really, because it had the smell of a
5448: 1163:
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.
2194:
The Ruby Application Archive, which hosted applications, documentation, and libraries for Ruby programming, was maintained until 2013, when its function was transferred to RubyGems.
1372:: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or 2168:
is Ruby's package manager. A Ruby package is called a "gem" and can be installed via the command line. Most gems are libraries, though a few exist that are applications, such as
4188: 5667: 5289: 4270: 3661: 8284: 7043: 5506: 4473: 1780:
One of the differences from Python and Perl is that Ruby keeps all of its instance variables completely private to the class and only exposes them through accessor methods (
50: 5438: 8249: 7038: 3292: 3251: 3210: 3169: 1177:
A few notable changes in Ruby 2.7.0 include pattern Matching (experimental), REPL improvements, a compaction GC, and separation of positional and keyword arguments.
4929: 8279: 8274: 6543: 5921: 5458: 5344: 725: 2549:
experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.
8269: 5443: 5426: 3985: 2480: 695:
was printed, which was later freely released to the public, further widening the adoption of Ruby amongst English speakers. In early 2002, the English-language
686:(オブジェクト指向スクリプト言語 Ruby), which was published in Japan in October 1999. It would be followed in the early 2000s by around 20 books on Ruby published in Japanese. 8299: 5396: 5294: 672:
In 1997, the first article about Ruby was published on the Web. In the same year, Matsumoto was hired by netlab.jp to work on Ruby as a full-time developer.
3079: 6765: 5572: 5406: 5379: 5359: 3116: 8234: 5384: 5213: 2980: 1777:. Line breaks are significant and taken as the end of a statement; a semicolon may be equivalently used. Unlike Python, indentation is not significant. 682:
began, which signaled a growing interest in the language outside Japan. In this same year, Matsumoto and Keiju Ishitsuka wrote the first book on Ruby,
7840: 7760: 7551: 7546: 7392: 5334: 5304: 4614: 1441: 1342: 2632: 8304: 7558: 5481: 3374: 3099: 3001: 2712: 1947:
to compile to machine code at runtime. The bytecode compiler and most core classes are written in pure Ruby. Rubinius currently targets Ruby 2.3.1.
8294: 5912: 5218: 4466: 721: 3526: 2591: 8254: 8239: 8091: 3551: 3500: 3440: 3147: 2653: 2280: 1103:
Ruby 2.4.0 includes performance improvements to hash table, Array#max, Array#min, and instance variable access. Other notable changes include:
3920: 3892: 3404: 6453: 5453: 5411: 5354: 5208: 4412: 4348: 4264: 4182: 2794: 2768: 2392: 2315: 1576: 1295:
on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves.
649: 491: 3706: 2824: 8229: 8160: 7961: 7484: 6867: 6458: 6428: 5869: 5817: 5747: 5431: 4883: 3789: 2879: 2211: 464: 4038: 2850: 2337: 7805: 7135: 6932: 5391: 5284: 4949: 4922: 4490: 2233: 1369: 614:
on December 21, 1995. Subsequently, three more versions of Ruby were released in two days. The release coincided with the launch of the
287: 101: 4895: 4007: 3184: 2686: 6256: 5772: 5624: 4586: 4578: 4459: 4372: 4320: 4298: 4240: 4216: 4168: 4158: 3763: 2169: 4250: 728:(ISO). It was accepted as a Japanese Industrial Standard (JIS X 3017) in 2011 and an international standard (ISO/IEC 30170) in 2012. 7332: 6356: 5687: 5597: 5592: 4954: 3023: 598:". Matsumoto chose the latter in a later e-mail to Ishitsuka. Matsumoto later noted a factor in choosing the name "Ruby"–it was the 68: 4843: 3576: 2243: 4119: 7896: 7068: 6912: 5416: 5324: 4959: 3908:
In Ruby's syntax, statement is just a special case of an expression that cannot appear as an argument (e.g. multiple assignment).
2510: 1389: 1324:: every value is an object, including classes and instances of types that many other languages designate as primitives (such as 5682: 5514: 5421: 3845: 1845: 1300: 460: 2927: 1769:. When used, the sigil changes the semantics of scope of the variable. For practical purposes there is no distinction between 7991: 7986: 7693: 5261: 5228: 5160: 5033: 4915: 2248: 1878:("Yet Another Ruby VM"), and this implementation has superseded the slower virtual machine used in previous releases of MRI. 1801: 1626: 1476: 1194: 391: 2901: 3344: 3314: 1679: 1190:
programs faster, although they are described as experimental and remain disabled by default (enabled by flags at runtime).
8244: 7785: 7115: 7048: 6628: 6276: 5777: 5672: 5496: 5486: 5270: 5203: 5181: 5135: 5108: 5083: 5043: 2019: 1762: 1424: 1337: 1311:
Wait. Wait. The principle of least surprise is not for you only. The principle of least surprise means principle of least
892: 570: 519: 403: 399: 367: 351: 675:
In 1998, the Ruby Application Archive was launched by Matsumoto, along with a simple English-language homepage for Ruby.
8289: 8264: 5843: 5697: 5491: 5175: 5078: 5048: 3059: 2009: 1766: 1727: 1570: 1514: 1497: 427: 411: 407: 346: 7608: 5905: 5805: 5712: 5547: 5150: 5088: 5068: 4785: 4256: 4174: 3958: 3815: 3733: 2225: 1917: 1793: 1354: 1321: 1255: 1210:
Ruby 3.1 was released on December 25, 2021. It includes YJIT, a new, experimental, Just-In-Time Compiler developed by
625: 579: 535: 531: 503: 423: 419: 355: 168: 113: 3981: 3270: 2957: 2468: 2012:. It can be used for a large speedup over e.g. Ruby or JRuby implementations (may only be useful for numerical code). 1332:"). Because everything in Ruby is an object, everything in Ruby has certain built-in abilities called methods. Every 624:
Already present at this stage of development were many of the features familiar in later releases of Ruby, including
3647: 3625: 3229: 7790: 7698: 7648: 7407: 6740: 6735: 5702: 5587: 5364: 5093: 4989: 4972: 4682: 3871: 3603: 2411: 1977: 1506: 1381: 1325: 1218:
is also included. There are some syntax enhancements and other improvements in this release. Network libraries for
641: 523: 359: 342: 330: 2742: 8056: 8001: 7780: 7765: 7745: 7023: 6443: 5939: 5837: 5752: 5737: 5103: 5058: 3679: 3470: 3076: 2565: 2096: 1903: 1643: 1487: 1401: 468: 415: 3120: 8104: 8011: 7800: 7775: 6987: 6982: 5832: 5629: 5582: 5567: 5519: 5329: 5140: 5023: 4821: 4811: 2446: 1899: 1864: 1770: 1740: 1707: 1673: 1647: 1587: 1581: 1464: 1285:
Matsumoto has said that Ruby is designed for programmer productivity and fun, following the principles of good
1259: 963: 629: 495: 395: 233: 220: 2977: 2157:, facilitate installation and partitioning of multiple ruby versions, and multiple 'gemsets' on one machine. 7658: 7200: 7190: 7185: 6760: 6745: 6685: 6119: 6114: 6074: 4725: 2070: 1774: 1468: 1409: 1201: 5767: 4064: 8259: 8208: 7976: 7966: 7095: 6513: 6094: 5898: 5879: 5614: 5577: 5476: 5009: 4632: 3096: 2997: 2628: 2065: 1834: 1542: 1493: 1472: 1393: 1373: 1333: 507: 499: 117: 109: 105: 4378: 3366: 1019:
gem is now bundled by default and required on startup to automatically suggest similar name matches on a
467:. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an 7397: 7260: 6907: 6281: 6129: 6099: 5992: 5982: 5943: 5935: 5742: 5537: 5529: 5468: 5401: 4622: 4093: 2143: 1167: 689:
By 2000, Ruby was more popular than Python in Japan. In September 2000, the first English language book
583: 2654:"[FYI: historic] The decisive moment of the language name Ruby. (Re: [ANN] ruby 1.8.1)" 1874:
Starting with Ruby 1.9, and continuing with Ruby 2.x and above, the official Ruby interpreter has been
1678:
Interactive Ruby Shell, an interactive command-line interpreter that can be used to test code quickly (
1099:
which will match all negative examples of a given regular expression in addition to other new features.
2536: 655:
After the release of Ruby 0.95 in 1995, several stable versions of Ruby were released in these years:
8155: 8061: 7795: 7770: 7613: 7454: 6892: 6695: 6568: 6351: 5827: 5762: 5757: 5319: 4938: 4837: 4774: 4662: 4312: 4150: 3522: 2595: 2150: 1991: 1921: 1868: 1612: 1358: 1231: 758:
to be rewritten. Ruby 1.9 introduces many significant changes over the 1.8 series. Examples include:
456: 96: 3547: 3492: 3432: 3396: 2657: 2276: 1155:, support for branch coverage and method coverage measurement, and easier Hash transformations with 7996: 7735: 5707: 5309: 5014: 4816: 4740: 4697: 4290: 3924: 3896: 3143: 1967: 1669: 1362: 920: 766: 717: 472: 5865: 2798: 2772: 2720: 2015: 176: 7941: 7876: 6216: 5254: 4806: 4760: 4745: 4701: 4677: 2820: 2708: 2587: 2024: 1981: 1927: 1662: 1607: 1532: 1377: 1278: 1242: 866: 773: 645: 476: 264: 136: 129: 4709: 3785: 2875: 2001: 441: 2476: 2345: 6770: 5787: 5634: 5314: 4994: 4779: 4672: 4558: 4408: 4400: 4368: 4344: 4340: 4336: 4330: 4316: 4294: 4260: 4236: 4232: 4212: 4178: 4154: 4034: 3702: 3655: 3286: 3245: 3204: 3163: 3029: 2846: 2388: 2384: 2378: 2311: 1955: 1562: 1528: 615: 3188: 2678: 7504: 7245: 6573: 5552: 4404: 4394: 4011: 2184: 2131: 1548: 1388:; statements all have values, and functions return the last evaluation). It has support for 1346: 691: 437: 252: 240: 2154: 8114: 7835: 7740: 7494: 7422: 7417: 7412: 6897: 6860: 6855: 6850: 6845: 6840: 6835: 6830: 5822: 4642: 4442: 4364: 3755: 3103: 3083: 3063: 3035: 2984: 1963: 1853: 1797: 1618: 1554: 1501: 1483: 1437: 1397: 909: 547: 124: 956:
as frozen by default with a consequently large performance increase in string operations.
4115: 3572: 1237:
Ruby 3.2 was released on December 25, 2022. It brings support for being run inside of a
7402: 7150: 6962: 6825: 6815: 6810: 6805: 6800: 6795: 6790: 6785: 6780: 6149: 6139: 5619: 5542: 4637: 2310:. Beginning from Novice to Professional (2nd ed.). Berkeley: APress. p. 101. 2059: 1622: 1566: 1558: 1454: 1286: 953: 762: 582:
language at its core, with an object system like that of Smalltalk, blocks inspired by
487: 245: 209: 2502: 2102:
The maturity of Ruby implementations tends to be measured by their ability to run the
8223: 8190: 8165: 8150: 8086: 8081: 8076: 8071: 8066: 7911: 7856: 7825: 7815: 7678: 7668: 7638: 7633: 7583: 7563: 7541: 7526: 7479: 7444: 7387: 7382: 7372: 7250: 7195: 7170: 7165: 7145: 7018: 6558: 6134: 5997: 5967: 5850: 5811: 5717: 5374: 5299: 5247: 5113: 4735: 4667: 4594: 2253: 2103: 2078: 1735: 1536: 1524: 747: 743: 735: 213: 20: 3837: 8051: 8021: 7881: 7225: 7220: 7083: 7078: 7073: 6992: 6937: 6887: 6820: 6775: 6750: 6680: 6675: 6670: 6665: 6660: 6618: 6583: 6493: 6488: 6316: 6124: 5890: 5692: 5649: 5562: 5165: 5004: 4864: 4849: 4627: 3949:"remove/virtual_module: Born to make your Ruby Code more than 3x faster. Hopefully" 2931: 2092: 1600: 1385: 1329: 731: 566: 387: 257: 2399:
It draws primarily on features from Perl, Smalltalk, Python, Lisp, Dylan, and CLU.
1274: 2905: 2322:
To a lesser extent, Python, LISP, Eiffel, Ada, and C++ have also influenced Ruby.
1930:, a Java implementation using the Truffle language implementation framework with 1886:
As of 2018, there are a number of alternative implementations of Ruby, including
959:
Hash comparison to allow direct checking of key/value pairs instead of just keys.
750:
written in Ruby. Rails is frequently credited with increasing awareness of Ruby.
703:, demonstrating Ruby's increasing popularity in the non-Japanese speaking world. 8026: 7723: 7718: 7713: 7297: 7214: 6186: 5782: 5609: 5604: 5239: 3336: 3306: 2219: 2046: 1752: 1518: 1458: 1405: 1246: 1238: 205: 200: 1131:
Thread deadlock detection now shows threads with their backtrace and dependency
8016: 7921: 7628: 7603: 7367: 7322: 7058: 6715: 6528: 6421: 6416: 6411: 6371: 6346: 6221: 5977: 5073: 4599: 4577: 4524: 3597: 2238: 2201: 2088: 2050: 2028: 2005: 1976:, an implementation designed to be embedded into C code, in a similar vein to 1128:
A new method, Regexp#match?, which is a faster boolean version of Regexp#match
824: 599: 314: 3056: 8185: 8180: 8175: 8170: 8145: 8135: 8096: 8046: 8041: 8036: 8031: 7936: 7931: 7926: 7916: 7906: 7891: 7871: 7866: 7861: 7810: 7755: 7750: 7730: 7708: 7688: 7643: 7623: 7578: 7573: 7568: 7536: 7499: 7489: 7474: 7469: 7464: 7449: 7434: 7429: 7357: 7352: 7347: 7327: 7317: 7312: 7307: 7292: 7287: 7235: 7230: 7210: 7180: 7155: 7140: 7110: 7063: 7053: 7033: 7028: 7013: 7008: 6922: 6643: 6638: 6533: 6179: 6174: 6169: 6164: 6159: 6067: 6062: 6057: 6052: 5639: 5170: 4859: 4854: 4730: 4687: 4451: 2119: 1995: 1959: 1449: 1420: 1207:
There are some syntax enhancements and library changes in Ruby 3.0 as well.
1200:
Ruby 3.0 introduces RBS language to describe the types of Ruby programs for
1186: 919:
Starting with 2.1.0, Ruby's versioning policy changed to be more similar to
611: 515: 371: 4226: 3948: 3936:
statement can not be part of expression unless grouped within parentheses.
3811: 3729: 3265:
Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2014).
3224:
Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2014).
3183:
Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2015).
3142:
Gustavo Frederico Temple Pedrosa, Vitor de Lima, Leonardo Bianconi (2015).
1998:
series of software for game design and modification of the RPG Maker engine
1852:
or MRI. This implementation is written in C and uses its own Ruby-specific
569:(it still has). The object-oriented language seemed very promising. I knew 3463:"Ruby 3x3: Matz, Koichi, and Tenderlove on the future of Ruby Performance" 3266: 2953: 1788:, etc.). Unlike the "getter" and "setter" methods of other languages like 557:
Matsumoto has said that Ruby was conceived in 1993. In a 1999 post to the
7820: 7598: 7302: 7130: 6967: 6957: 6942: 6917: 6902: 6877: 6872: 6755: 6730: 6725: 6710: 6705: 6700: 6690: 6655: 6650: 6633: 6613: 6608: 6603: 6598: 6593: 6588: 6578: 6563: 6553: 6548: 6538: 6523: 6518: 6508: 6503: 6498: 6483: 6478: 6473: 6468: 6463: 6448: 6433: 6406: 6401: 6396: 6391: 6386: 6381: 6376: 6366: 6361: 6341: 6336: 6326: 6321: 6311: 6306: 6296: 6291: 6286: 6261: 6251: 6144: 6047: 6042: 6037: 6032: 6027: 6022: 6017: 6012: 6007: 5677: 5557: 4769: 4657: 4604: 4563: 4545: 4505: 3867: 3225: 2380:
Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java
2165: 2135: 2055: 1936: 1891: 1860: 1849: 1830: 1796:, accessor methods in Ruby can be created with a single line of code via 1686: 1510: 1215: 637: 610:
The first public release of Ruby 0.95 was announced on Japanese domestic
306: 294: 4907: 3621: 2415: 1214:, to enhance the performance of real world business applications. A new 8109: 7901: 7886: 7683: 7673: 7663: 7439: 7255: 7205: 7100: 7088: 6246: 6241: 6236: 6231: 6226: 6211: 6206: 6201: 6196: 6191: 6154: 6109: 6104: 6089: 6084: 6079: 5063: 5053: 4790: 4647: 4553: 4540: 2746: 2084: 2038: 1931: 1711: 1658: 1211: 932: 561:
mailing list, he describes some of his early ideas about the language:
383: 298: 3675: 3462: 2561: 1357:
rather than being defined on the class). Though Ruby does not support
88: 7971: 7956: 7951: 7946: 7618: 7593: 7521: 7377: 7362: 7342: 7337: 7282: 7275: 7270: 7265: 7160: 7125: 6972: 6623: 6438: 6002: 5130: 5098: 4982: 4750: 4446: 4208: 3953: 3756:"Language Workbenches: The Killer-App for Domain Specific Languages?" 3226:"Specifying non volatile registers for increase performance in ppc64" 2180: 2139: 1898:. Each takes a different approach, with JRuby and Rubinius providing 1805: 621:
mailing list, which was the first mailing list for the new language.
699:
mailing list was receiving more messages than the Japanese-language
7459: 5028: 1940: 1789: 338: 8006: 7981: 7703: 7588: 7240: 7105: 6977: 6952: 6947: 6927: 6301: 6271: 6266: 5987: 5972: 5962: 5957: 5644: 5038: 4999: 4977: 4714: 4652: 4519: 4514: 2127: 2123: 2042: 1973: 1913: 1895: 1887: 1445: 1350: 1273: 1250: 940: 928: 730: 633: 591: 527: 480: 334: 318: 310: 742:
Around 2005, interest in the Ruby language surged in tandem with
7653: 7516: 7509: 7175: 7120: 6720: 6331: 5120: 4720: 4509: 4430: 4287:
Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide
4060: 4035:"lang-ruby-general: Re: question about Ruby initial development" 1987: 1944: 1875: 1758: 1731: 1715: 1699: 1695: 1651: 1416: 1227: 1223: 595: 511: 363: 302: 278: 5894: 5243: 4911: 4455: 2902:"IPA 独立行政法人 情報処理推進機構:プレス発表 プログラム言語RubyのJIS規格(JIS X 3017)制定について" 1353:
and singleton methods (belonging to, and defined for, a single
8140: 7830: 6882: 5155: 5125: 4358: 2438: 2188: 2115: 1723: 1719: 1703: 1219: 578:
Matsumoto describes the design of Ruby as being like a simple
25: 4085: 4170:
Practical Object-Oriented Design: An Agile Primer Using Ruby
1166:
A few notable changes in Ruby 2.6.0 include an experimental
915:
A new convention of using #to_h to convert objects to Hashes
4437: 3676:"The Ruby Language FAQ: How Does Ruby Stack Up Against...?" 2656:(E-mail from Hiroshi Sugihara to ruby-talk). Archived from 2623: 2621: 2619: 2617: 2615: 2613: 2532: 4252:
The Ruby Way: Solutions and Techniques in Ruby Programming
927:
jemalloc. It also contains experimental support for using
4329:
Flanagan, David; Matsumoto, Yukihiro (January 25, 2008),
3650:. 4 July 2017. Archived from the original on 4 July 2017. 2795:"[ruby-list:124] TUTORIAL — ruby's features" 931:(2) with system() and spawn(), and added support for the 2987:. Devarticles.com (2007-03-22). Retrieved on 2013-07-17. 2173: 2130:. By 1999, Ruby was known to work across many different 1107:
Binding#irb: Start a REPL session similar to binding.pry
498:. It supports multiple programming paradigms, including 4285:
Thomas, Dave; Fowler, Chad; Hunt, Andy (July 7, 2013),
46: 3427: 3425: 3423: 3421: 4225:
Carlson, Lucas; Richardson, Leonard (April 3, 2015),
3893:"[ruby-talk:01120] Re: The value of while..." 2271: 2269: 1245:
also receives some improvements, including a faster,
1125:
String supports Unicode case mappings, not just ASCII
5290:
Comparison of open-source and closed-source software
4228:
Ruby Cookbook: Recipes for Object-Oriented Scripting
3267:"Specifying MACRO for increase performance in ppc64" 2077:, an implementation optimized to handle large-scale 1415:
According to the Ruby FAQ, the syntax is similar to
8123: 7849: 7001: 5950: 5796: 5730: 5658: 5528: 5505: 5467: 5343: 5277: 4830: 4799: 4759: 4696: 4613: 4585: 4533: 4498: 4489: 3921:"[ruby-talk:02460] Re: Precedence question" 3066:. slideshow.rubyforge.org. Retrieved on 2013-07-17. 3034:. ruby-lang.org. September 17, 2011. Archived from 2870: 2868: 2179:Many new and existing Ruby libraries are hosted on 1262:compiler now supports more architectures on Linux. 1038: 1037:to easily extract deeply nested values (e.g. given 970: 828: 777: 510:. According to the creator, Ruby was influenced by 377: 324: 285: 273: 263: 251: 239: 229: 219: 199: 167: 145: 135: 123: 95: 41:
may be too technical for most readers to understand
3982:"The Why, What, and How of Rubinius 1.0's Release" 1909:Ruby has three major alternative implementations: 4307:McAnally, Jeremy; Arkin, Assaf (March 28, 2009), 2928:"IPA 独立行政法人 情報処理推進機構:プレス発表 プログラム言語Ruby、国際規格として承認" 1757:The syntax of Ruby is broadly similar to that of 1423:, but the design philosophy differs greatly from 678:In 1999, the first English language mailing list 4008:"IBM developerWorks – Ruby: a new language" 3660:: CS1 maint: bot: original URL status unknown ( 2027:, a web-based interpreter that compiles Ruby to 936: 2769:"[ruby-talk:00382] Re: history of ruby" 2743:"More archeolinguistics: unearthing proto-Ruby" 1308: 1306:Matsumoto defined it this way in an interview: 1292: 755: 563: 3117:"Semantic Versioning starting with Ruby 2.1.0" 1694:Large standard library, including modules for 1249:matching algorithm to protect against certain 1204:. It is separated from general Ruby programs. 726:International Organization for Standardization 5906: 5255: 4923: 4467: 2172:. There are over 100,000 Ruby gems hosted on 2034:Other now defunct Ruby implementations were: 1234:are moved from default gems to bundled gems. 827:literal syntax using colons for symbol keys: 8: 5295:Comparison of source-code-hosting facilities 4145:Black, David; Leo, Joseph (March 15, 2019), 4086:"Stats RubyGems.org your community gem host" 3291:: CS1 maint: multiple names: authors list ( 3250:: CS1 maint: multiple names: authors list ( 3209:: CS1 maint: multiple names: authors list ( 3168:: CS1 maint: multiple names: authors list ( 1482:Succinct and flexible syntax that minimizes 1135:A few notable changes in Ruby 2.5.0 include 969:that can ease nil handling (e.g. instead of 81: 4205:Beginning Ruby: From Novice to Professional 3868:"Ruby 2.0.0 Standard Library Documentation" 2332: 2330: 2308:Beginning Ruby: From Novice to Professional 2114:Matsumoto originally developed Ruby on the 1143:statements automatically use a surrounding 905:A new literal to create an array of symbols 765:variables (variables that are local to the 684:The Object-oriented Scripting Language Ruby 586:, and practical utility like that of Perl. 574:couldn't find one. So I decided to make it. 8285:Programming languages with an ISO standard 5913: 5899: 5891: 5655: 5262: 5248: 5240: 5196: 4930: 4916: 4908: 4495: 4474: 4460: 4452: 4249:Fulton, Hal; Arko, André (March 2, 2015), 3786:"Ruby – Add class methods at runtime" 3307:"ruby/NEWS at v2_2_0 · ruby/ruby · GitHub" 175: 80: 3615: 3613: 3611: 3106:. Ruby-lang.org. Retrieved on 2013-07-17. 3086:. Ruby-lang.org. Retrieved on 2013-07-17. 2301: 2299: 2297: 1920:and Ruby implementation that runs on the 69:Learn how and when to remove this message 53:, without removing the technical details. 935:7.0 specification. Since version 2.2.1, 8250:Dynamically typed programming languages 3703:"An Interview with the Creator of Ruby" 2821:"An Interview with the Creator of Ruby" 2412:"Julia 1.0 Documentation: Introduction" 2265: 2049:runtime. Its iOS counterpart is called 1685:Centralized package management through 1193:Another goal of Ruby 3.0 is to improve 1091:profile.dig(:social, :wikipedia, :name) 722:Japanese Industrial Standards Committee 475:. It was developed in the mid-1990s by 4273:from the original on February 13, 2020 4191:from the original on February 13, 2020 3653: 3461:Scheffler, Jonan (November 10, 2016). 3284: 3273:from the original on 17 September 2016 3243: 3232:from the original on 17 September 2016 3202: 3161: 2372: 2370: 2368: 2366: 2364: 2362: 1859:The standardized and retired Ruby 1.8 8280:Programming languages created in 1995 8275:Object-oriented programming languages 4381:from the original on January 13, 2020 4096:from the original on 10 December 2021 3736:from the original on 5 September 2015 3503:from the original on 25 December 2021 3373:. dev.mensfeld.pl. 14 November 2015. 3004:from the original on January 14, 2013 2853:from the original on 25 December 2018 2483:from the original on 25 December 2018 1980:. It is currently being developed by 1924:. JRuby currently targets Ruby 3.1.x. 51:make it understandable to non-experts 7: 8270:Multi-paradigm programming languages 5818:Microsoft Open Specification Promise 4890: 4393:Fitzgerald, Michael (May 14, 2007), 3579:from the original on 18 January 2020 2212:Free and open-source software portal 2122:3.x, but later migrated his work to 2064:Cardinal, an implementation for the 1951:Other Ruby implementations include: 1419:'s and the semantics are similar to 465:general-purpose programming language 16:General-purpose programming language 8300:Text-oriented programming languages 5285:Alternative terms for free software 3377:from the original on 5 January 2016 3317:from the original on 1 January 2015 3119:. December 21, 2013. Archived from 3000:. ruby-lang.org. October 31, 2011. 2845:Yukihiro Matsumoto (October 2000). 2568:from the original on 9 October 2014 2234:Comparison of programming languages 2018:, a Ruby implementation written in 1994:implementation that is used by the 1990:, or Ruby Game Scripting System, a 1943:bytecode virtual machine that uses 1370:multi-paradigm programming language 5625:Python Software Foundation License 4360:Ruby by Example: Concepts and Code 4033:Yukihiro Matsumoto (August 2002). 3818:from the original on 18 April 2015 3701:Bruce Stewart (29 November 2001). 3337:"Ruby/NEWS at v.2_3_0 - ruby/ruby" 1691:Implemented on all major platforms 1631:Custom dispatch behavior (through 1241:environment via a WASI interface. 14: 8235:Class-based programming languages 5688:Definition of Free Cultural Works 5305:Free software project directories 4041:from the original on 3 March 2014 3961:from the original on 1 March 2017 3599:Google Tech Talks – Ruby 1.9 3473:from the original on May 10, 2019 3367:"Ruby 2.3.0 changes and features" 3347:from the original on 1 March 2017 2689:from the original on May 28, 2012 2503:"Influences - The Rust Reference" 1831:Ruby MRI § Operating systems 8204: 8203: 5875: 5874: 5864: 5325:Open-source software development 5224: 5223: 5195: 4889: 4878: 4877: 4576: 3730:"Dynamic Productivity with Ruby" 3628:from the original on 5 July 2019 3150:from the original on 16 May 2016 2882:from the original on 6 June 2015 2218: 2204: 1839: 436: 87: 30: 8305:Free compilers and interpreters 5683:Debian Free Software Guidelines 5515:Free Software Movement of India 4203:Cooper, Peter (July 12, 2016), 4167:Metz, Sandi (August 22, 2018), 4122:from the original on 2015-12-31 4067:from the original on 2015-04-03 3988:from the original on 2010-05-24 3874:from the original on 2013-11-13 3848:from the original on 2022-06-28 3792:from the original on 2007-09-22 3766:from the original on 2 May 2021 3709:from the original on 6 May 2015 3682:from the original on 8 May 2015 3648:"Welcome to RUBYWEEKLYNEWS.ORG" 3573:"The Ruby Programming Language" 3554:from the original on 2022-12-25 3529:from the original on 2021-12-26 3443:from the original on 2020-12-25 3407:from the original on 2017-02-17 2960:from the original on 2017-03-12 2827:from the original on 2008-02-08 2635:from the original on 2011-07-14 2539:from the original on 2018-12-25 2513:from the original on 2019-01-26 2449:from the original on 2018-12-25 2445:. Neon Design Technology, Inc. 2283:from the original on 2023-12-25 1553:Four levels of variable scope ( 1486:and serves as a foundation for 1301:principle of least astonishment 8295:Software using the BSD license 4844:why's (poignant) Guide to Ruby 2978:Web Development: Ruby on Rails 2719:(Mailing list). Archived from 2344:. Confreaks TV. Archived from 2249:Crystal (programming language) 2244:Why's (poignant) Guide to Ruby 1627:arbitrary-precision arithmetic 1151:blocks), method-chaining with 720:agency) for submission to the 1: 8255:Free software programmed in C 8240:Dynamic programming languages 5673:Contributor License Agreement 5487:Open-source-software movement 5271:Free and open-source software 4357:Baird, Kevin (June 8, 2007), 4332:The Ruby Programming Language 4116:"We retire raa.ruby-lang.org" 4006:Maya Stodte (February 2000). 3812:"Blocks and Closures in Ruby" 2531:Lattner, Chris (2014-06-03). 2467:Ring Team (3 December 2017). 1471:) and everything is executed 1368:Ruby has been described as a 5844:The Cathedral and the Bazaar 5698:The Free Software Definition 3095:Endoh, Yusuke. (2013-02-24) 3075:Endoh, Yusuke. (2013-02-24) 2383:. Berkeley: APress. p.  1962:implementation that runs on 39:This article's lead section 8230:Ruby (programming language) 5748:Mozilla software rebranding 5713:Permissive software license 4257:Addison-Wesley Professional 4175:Addison-Wesley Professional 3980:Peter Cooper (2010-05-18). 2998:"Ruby 1.9.3 p0 is released" 2847:"Programming Ruby: Forward" 2226:Computer programming portal 1882:Alternative implementations 1541:Embedding code in strings ( 1185:Ruby 3.0.0 was released on 1147:block (less need for extra 769:in which they are declared) 659:Ruby 1.0: December 25, 1996 151:; 29 years ago 8321: 5753:Proprietary device drivers 5703:The Open Source Definition 2679:"1.3 Why the name 'Ruby'?" 2592:"Re: Ruby's lisp features" 2533:"Chris Lattner's Homepage" 2469:"Ring and other languages" 2161:Repositories and libraries 1828: 1750: 1172:RubyVM::AbstractSyntaxTree 602:of one of his colleagues. 545: 225:Lexical, sometimes dynamic 141:Yukihiro Matsumoto, et al. 18: 8199: 5932: 5860: 5838:Source-available software 5738:Digital rights management 5191: 4968: 4945: 4873: 4574: 4483:Ruby programming language 4147:The Well-Grounded Rubyist 3437:Ruby Programming Language 3097:Ruby 2.0.0-p0 is released 3077:Ruby 2.0.0-p0 is released 2097:Ruby programming language 2058:an implementation on the 1904:ahead-of-time compilation 1902:and mruby also providing 1582:First-class continuations 1500:of objects to facilitate 1488:domain-specific languages 477:Yukihiro "Matz" Matsumoto 433: 382: 329: 293: 195: 163: 86: 5833:Shared Source Initiative 5630:Shared Source Initiative 5583:Free Software Foundation 5520:Free Software Foundation 5370:Configuration management 4812:David Heinemeier Hansson 3622:"The Philosophy of Ruby" 3057:Ruby 1.9: What to Expect 2183:, a service that offers 1900:just-in-time compilation 1848:is often referred to as 1741:Just-in-time compilation 1400:, and interpreter-based 1270:Semantics and philosophy 1089:can now be retrieved by 1010:if obj&.foo&.bar 964:safe navigation operator 952:The ability to mark all 668:Ruby 1.6: September 2000 496:just-in-time compilation 19:Not to be confused with 5768:SCO/Linux controversies 2713:"Re: the name of Ruby?" 2187:repository hosting for 2071:Ruby Enterprise Edition 2008:(partial) from Ruby to 1850:Matz's Ruby Interpreter 1840:Matz's Ruby interpreter 1410:parametric polymorphism 724:(JISC) and then to the 662:Ruby 1.2: December 1998 230:Implementation language 5668:Comparison of licenses 5477:Free software movement 4633:Interactive Ruby Shell 2876:"We retire Ruby 1.8.7" 2306:Cooper, Peter (2009). 2095:implementation of the 2066:Parrot virtual machine 2045:implementation on the 1835:List of Ruby compilers 1394:reflective programming 1374:functional programming 1318: 1297: 1282: 739: 584:higher-order functions 576: 508:functional programming 5743:License proliferation 4939:Programming languages 3548:"Ruby 3.2.0 Released" 3523:"Ruby 3.1.0 Released" 3493:"Ruby 3.1.0 Released" 3433:"Ruby 3.0.0 Released" 3397:"Ruby 2.4.0 Released" 3144:"Ruby 2.2.1 Released" 2683:The Ruby Language FAQ 2338:"Reasons behind Ruby" 2277:"Ruby 3.3.0 Released" 2144:Google Cloud Platform 2073:, often shortened to 1617:Built-in support for 1590:rules (everything is 1523:Literal notation for 1361:, classes can import 1281:, the creator of Ruby 1277: 1168:just-in-time compiler 734: 665:Ruby 1.4: August 1999 180:/ 3 September 2024 8245:Functional languages 5828:Open-source hardware 5763:Proprietary software 5758:Proprietary firmware 5459:Formerly open-source 5454:Formerly proprietary 5320:Open-source software 4782:(mod_rails/mod_rack) 4313:Manning Publications 4151:Manning Publications 3957:. 21 February 2020. 3123:on February 13, 2014 2954:"ISO/IEC 30170:2012" 2723:on December 25, 2018 2590:(13 February 2006). 2342:Ruby Conference 2008 2126:4.x, and finally to 1922:Java virtual machine 1869:interpreted language 1613:Operator overloading 1359:multiple inheritance 473:primitive data types 182:; 9 days ago 8290:Scripting languages 8265:Japanese inventions 5708:Open-source license 5310:Gratis versus libre 4817:why the lucky stiff 4291:Pragmatic Bookshelf 4289:(Fourth ed.), 4231:(Second ed.), 4173:(Second ed.), 3191:on 26 February 2017 3038:on November 6, 2015 2588:Matsumoto, Yukihiro 1867:, as a single-pass 1663:character encodings 1573:or the lack thereof 1533:regular expressions 1378:anonymous functions 1243:Regular expressions 1161:Hash#transform_keys 921:semantic versioning 902:, to extend a class 867:character encodings 718:Japanese government 265:Filename extensions 146:First appeared 83: 5926:by standard number 4807:Yukihiro Matsumoto 4438:Ruby documentation 4399:(First ed.), 4363:(First ed.), 4335:(First ed.), 4311:(First ed.), 4255:(Third ed.), 4207:(Third ed.), 4149:(Third ed.), 4061:"The Ruby Toolbox" 4014:on August 18, 2000 3705:. O'Reilly Media. 3185:"v2.2.1 ChangeLog" 3102:2016-01-17 at the 3082:2013-02-27 at the 3062:2016-03-04 at the 2983:2009-02-24 at the 2934:on 1 February 2015 2908:on 2 February 2015 2749:on 6 November 2015 2709:Yukihiro Matsumoto 2507:The Rust Reference 2377:Bini, Ola (2007). 1982:Yukihiro Matsumoto 1844:The original Ruby 1808:property members. 1650:(fibers are a 1.9/ 1608:Exception handling 1577:Garbage collection 1283: 1279:Yukihiro Matsumoto 740: 650:garbage collection 646:exception handling 632:with inheritance, 492:garbage collection 130:Yukihiro Matsumoto 8217: 8216: 5940:ISO romanizations 5888: 5887: 5788:Trusted Computing 5778:Software security 5726: 5725: 5407:Operating systems 5315:Long-term support 5237: 5236: 5219:Non-English-based 4905: 4904: 4780:Phusion Passenger 4572: 4571: 4414:978-0-596-52986-4 4350:978-0-596-51617-8 4266:978-0-321-71463-3 4184:978-0-13-445647-8 3842:Official Ruby FAQ 3401:www.ruby-lang.org 3371:Running with Ruby 3032:source repository 2711:(June 11, 1999). 2629:"History of Ruby" 2535:. Chris Lattner. 2418:on 16 August 2018 2394:978-1-59059-881-8 2317:978-1-4302-2363-4 2132:operating systems 1549:Default arguments 1463:Everything is an 1328:, booleans, and " 1073:'Foo Baz' 895:keyword arguments 857:"value" 839:"value" 616:Japanese-language 488:dynamically typed 450: 449: 201:Typing discipline 79: 78: 71: 8312: 8207: 8206: 5927: 5915: 5908: 5901: 5892: 5878: 5877: 5868: 5773:Software patents 5656: 5568:Creative Commons 5427:Web applications 5264: 5257: 5250: 5241: 5227: 5226: 5199: 5198: 4932: 4925: 4918: 4909: 4893: 4892: 4881: 4880: 4580: 4496: 4476: 4469: 4462: 4453: 4434: 4433: 4431:Official website 4417: 4389: 4388: 4386: 4353: 4325: 4309:Ruby in Practice 4303: 4281: 4280: 4278: 4245: 4221: 4199: 4198: 4196: 4163: 4131: 4130: 4128: 4127: 4112: 4106: 4105: 4103: 4101: 4082: 4076: 4075: 4073: 4072: 4057: 4051: 4050: 4048: 4046: 4030: 4024: 4023: 4021: 4019: 4010:. Archived from 4003: 3997: 3996: 3994: 3993: 3977: 3971: 3970: 3968: 3966: 3945: 3939: 3938: 3933: 3932: 3923:. Archived from 3917: 3911: 3910: 3905: 3904: 3889: 3883: 3882: 3880: 3879: 3863: 3857: 3856: 3854: 3853: 3834: 3828: 3827: 3825: 3823: 3807: 3801: 3800: 3798: 3797: 3782: 3776: 3775: 3773: 3771: 3760:martinfowler.com 3752: 3746: 3745: 3743: 3741: 3725: 3719: 3718: 3716: 3714: 3698: 3692: 3691: 3689: 3687: 3672: 3666: 3665: 3659: 3651: 3644: 3638: 3637: 3635: 3633: 3617: 3606: 3600: 3595: 3589: 3588: 3586: 3584: 3569: 3563: 3562: 3560: 3559: 3544: 3538: 3537: 3535: 3534: 3519: 3513: 3512: 3510: 3508: 3489: 3483: 3482: 3480: 3478: 3458: 3452: 3451: 3449: 3448: 3429: 3416: 3415: 3413: 3412: 3393: 3387: 3386: 3384: 3382: 3363: 3357: 3356: 3354: 3352: 3333: 3327: 3326: 3324: 3322: 3303: 3297: 3296: 3290: 3282: 3280: 3278: 3262: 3256: 3255: 3249: 3241: 3239: 3237: 3221: 3215: 3214: 3208: 3200: 3198: 3196: 3187:. Archived from 3180: 3174: 3173: 3167: 3159: 3157: 3155: 3139: 3133: 3132: 3130: 3128: 3113: 3107: 3093: 3087: 3073: 3067: 3054: 3048: 3047: 3045: 3043: 3020: 3014: 3013: 3011: 3009: 2994: 2988: 2975: 2969: 2968: 2966: 2965: 2950: 2944: 2943: 2941: 2939: 2930:. Archived from 2924: 2918: 2917: 2915: 2913: 2904:. Archived from 2898: 2892: 2891: 2889: 2887: 2872: 2863: 2862: 2860: 2858: 2842: 2836: 2835: 2833: 2832: 2817: 2811: 2810: 2808: 2806: 2797:. Archived from 2791: 2785: 2784: 2782: 2780: 2771:. Archived from 2765: 2759: 2758: 2756: 2754: 2745:. Archived from 2739: 2733: 2732: 2730: 2728: 2705: 2699: 2698: 2696: 2694: 2685:. Ruby-Doc.org. 2675: 2669: 2668: 2666: 2665: 2650: 2644: 2643: 2641: 2640: 2625: 2608: 2607: 2605: 2603: 2594:. Archived from 2584: 2578: 2577: 2575: 2573: 2558: 2552: 2551: 2545: 2544: 2528: 2522: 2521: 2519: 2518: 2499: 2493: 2492: 2490: 2488: 2464: 2458: 2457: 2455: 2454: 2434: 2428: 2427: 2425: 2423: 2414:. Archived from 2408: 2402: 2401: 2374: 2357: 2356: 2354: 2353: 2334: 2325: 2324: 2303: 2292: 2291: 2289: 2288: 2273: 2228: 2223: 2222: 2214: 2209: 2208: 2207: 2110:Platform support 1819: 1815: 1787: 1783: 1646:and cooperative 1638: 1634: 1619:rational numbers 1603: 1597: 1507:Lexical closures 1404:. Ruby features 1347:dynamic dispatch 1174:(experimental). 1098: 1092: 1084: 1083: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1011: 1007: 1006: 1003: 1000: 997: 994: 991: 988: 985: 982: 979: 976: 973: 968: 901: 877: 876:require_relative 862: 861: 858: 855: 852: 849: 846: 843: 840: 837: 834: 831: 820: 819: 816: 813: 810: 807: 804: 801: 798: 795: 792: 789: 786: 783: 780: 707:Ruby 1.8 and 1.9 692:Programming Ruby 442:Ruby Programming 440: 281: 190: 188: 187:3 September 2024 183: 179: 159: 157: 152: 125:Designed by 91: 84: 74: 67: 63: 60: 54: 34: 33: 26: 8320: 8319: 8315: 8314: 8313: 8311: 8310: 8309: 8220: 8219: 8218: 8213: 8195: 8119: 7845: 6997: 5946: 5928: 5925: 5919: 5889: 5884: 5856: 5823:Open-core model 5798: 5792: 5722: 5660: 5654: 5524: 5501: 5463: 5346: 5339: 5273: 5268: 5238: 5233: 5187: 4964: 4941: 4936: 4906: 4901: 4869: 4838:Document format 4826: 4795: 4755: 4692: 4609: 4581: 4568: 4529: 4491:Implementations 4485: 4480: 4429: 4428: 4425: 4420: 4415: 4392: 4384: 4382: 4375: 4367:, p. 326, 4365:No Starch Press 4356: 4351: 4328: 4323: 4315:, p. 360, 4306: 4301: 4293:, p. 888, 4284: 4276: 4274: 4267: 4259:, p. 816, 4248: 4243: 4235:, p. 963, 4224: 4219: 4211:, p. 492, 4202: 4194: 4192: 4185: 4177:, p. 288, 4166: 4161: 4153:, p. 584, 4144: 4140: 4138:Further reading 4135: 4134: 4125: 4123: 4114: 4113: 4109: 4099: 4097: 4084: 4083: 4079: 4070: 4068: 4059: 4058: 4054: 4044: 4042: 4032: 4031: 4027: 4017: 4015: 4005: 4004: 4000: 3991: 3989: 3979: 3978: 3974: 3964: 3962: 3947: 3946: 3942: 3930: 3928: 3919: 3918: 3914: 3902: 3900: 3891: 3890: 3886: 3877: 3875: 3865: 3864: 3860: 3851: 3849: 3836: 3835: 3831: 3821: 3819: 3809: 3808: 3804: 3795: 3793: 3784: 3783: 3779: 3769: 3767: 3754: 3753: 3749: 3739: 3737: 3727: 3726: 3722: 3712: 3710: 3700: 3699: 3695: 3685: 3683: 3674: 3673: 3669: 3652: 3646: 3645: 3641: 3631: 3629: 3619: 3618: 3609: 3598: 3596: 3592: 3582: 3580: 3571: 3570: 3566: 3557: 3555: 3546: 3545: 3541: 3532: 3530: 3521: 3520: 3516: 3506: 3504: 3491: 3490: 3486: 3476: 3474: 3460: 3459: 3455: 3446: 3444: 3431: 3430: 3419: 3410: 3408: 3395: 3394: 3390: 3380: 3378: 3365: 3364: 3360: 3350: 3348: 3335: 3334: 3330: 3320: 3318: 3305: 3304: 3300: 3283: 3276: 3274: 3264: 3263: 3259: 3242: 3235: 3233: 3223: 3222: 3218: 3201: 3194: 3192: 3182: 3181: 3177: 3160: 3153: 3151: 3141: 3140: 3136: 3126: 3124: 3115: 3114: 3110: 3104:Wayback Machine 3094: 3090: 3084:Wayback Machine 3074: 3070: 3064:Wayback Machine 3055: 3051: 3041: 3039: 3024:"v1_9_3_0/NEWS" 3022: 3021: 3017: 3007: 3005: 2996: 2995: 2991: 2985:Wayback Machine 2976: 2972: 2963: 2961: 2952: 2951: 2947: 2937: 2935: 2926: 2925: 2921: 2911: 2909: 2900: 2899: 2895: 2885: 2883: 2874: 2873: 2866: 2856: 2854: 2844: 2843: 2839: 2830: 2828: 2819: 2818: 2814: 2804: 2802: 2793: 2792: 2788: 2778: 2776: 2775:on 16 July 2011 2767: 2766: 2762: 2752: 2750: 2741: 2740: 2736: 2726: 2724: 2707: 2706: 2702: 2692: 2690: 2677: 2676: 2672: 2663: 2661: 2652: 2651: 2647: 2638: 2636: 2627: 2626: 2611: 2601: 2599: 2586: 2585: 2581: 2571: 2569: 2560: 2559: 2555: 2542: 2540: 2530: 2529: 2525: 2516: 2514: 2501: 2500: 2496: 2486: 2484: 2466: 2465: 2461: 2452: 2450: 2443:Programming Nu™ 2436: 2435: 2431: 2421: 2419: 2410: 2409: 2405: 2395: 2376: 2375: 2360: 2351: 2349: 2336: 2335: 2328: 2318: 2305: 2304: 2295: 2286: 2284: 2275: 2274: 2267: 2262: 2224: 2217: 2210: 2205: 2203: 2200: 2185:version control 2163: 2112: 1964:GemTalk Systems 1884: 1863:was written in 1854:virtual machine 1842: 1837: 1827: 1825:Implementations 1817: 1813: 1798:metaprogramming 1785: 1781: 1755: 1749: 1636: 1632: 1623:complex numbers 1599: 1595: 1586:Strict boolean 1502:metaprogramming 1484:syntactic noise 1438:object-oriented 1433: 1408:, and supports 1398:metaprogramming 1322:object-oriented 1272: 1202:static analysis 1183: 1097:.grep_v(regexp) 1096: 1090: 1081: 1078: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1048: 1045: 1042: 1039: 1009: 1004: 1001: 998: 995: 992: 989: 986: 983: 980: 977: 974: 971: 966: 954:string literals 939:performance on 910:lazy evaluation 899: 885: 878:import security 875: 872:new socket API 859: 856: 853: 850: 847: 844: 841: 838: 835: 832: 829: 817: 814: 811: 808: 805: 802: 799: 796: 793: 790: 787: 784: 781: 778: 709: 626:object-oriented 608: 555: 550: 548:History of Ruby 544: 504:object-oriented 350: 288:implementations 277: 191: 186: 184: 181: 155: 153: 150: 114:object-oriented 75: 64: 58: 55: 47:help improve it 44: 35: 31: 24: 17: 12: 11: 5: 8318: 8316: 8308: 8307: 8302: 8297: 8292: 8287: 8282: 8277: 8272: 8267: 8262: 8257: 8252: 8247: 8242: 8237: 8232: 8222: 8221: 8215: 8214: 8212: 8211: 8200: 8197: 8196: 8194: 8193: 8188: 8183: 8178: 8173: 8168: 8163: 8158: 8153: 8148: 8143: 8138: 8133: 8127: 8125: 8121: 8120: 8118: 8117: 8112: 8107: 8102: 8099: 8094: 8089: 8084: 8079: 8074: 8069: 8064: 8059: 8054: 8049: 8044: 8039: 8034: 8029: 8024: 8019: 8014: 8009: 8004: 7999: 7994: 7989: 7984: 7979: 7974: 7969: 7964: 7959: 7954: 7949: 7944: 7939: 7934: 7929: 7924: 7919: 7914: 7909: 7904: 7899: 7894: 7889: 7884: 7879: 7874: 7869: 7864: 7859: 7853: 7851: 7847: 7846: 7844: 7843: 7838: 7833: 7828: 7823: 7818: 7813: 7808: 7803: 7798: 7793: 7788: 7783: 7778: 7773: 7768: 7763: 7758: 7753: 7748: 7743: 7738: 7733: 7728: 7727: 7726: 7721: 7711: 7706: 7701: 7696: 7691: 7686: 7681: 7676: 7671: 7666: 7661: 7656: 7651: 7646: 7641: 7636: 7631: 7626: 7621: 7616: 7611: 7606: 7601: 7596: 7591: 7586: 7581: 7576: 7571: 7566: 7561: 7556: 7555: 7554: 7544: 7539: 7534: 7529: 7524: 7519: 7514: 7513: 7512: 7507: 7497: 7492: 7487: 7482: 7477: 7472: 7467: 7462: 7457: 7452: 7447: 7442: 7437: 7432: 7427: 7426: 7425: 7420: 7415: 7410: 7405: 7400: 7395: 7390: 7385: 7375: 7370: 7365: 7360: 7355: 7350: 7345: 7340: 7335: 7330: 7325: 7320: 7315: 7310: 7305: 7300: 7295: 7290: 7285: 7280: 7279: 7278: 7273: 7263: 7258: 7253: 7248: 7243: 7238: 7233: 7228: 7223: 7218: 7208: 7203: 7198: 7193: 7188: 7183: 7178: 7173: 7168: 7163: 7158: 7153: 7148: 7143: 7138: 7133: 7128: 7123: 7118: 7113: 7108: 7103: 7098: 7093: 7092: 7091: 7086: 7081: 7076: 7071: 7061: 7056: 7051: 7046: 7041: 7036: 7031: 7026: 7021: 7016: 7011: 7005: 7003: 6999: 6998: 6996: 6995: 6990: 6985: 6980: 6975: 6970: 6965: 6960: 6955: 6950: 6945: 6940: 6935: 6930: 6925: 6920: 6915: 6910: 6905: 6900: 6895: 6890: 6885: 6880: 6875: 6870: 6865: 6864: 6863: 6858: 6853: 6848: 6843: 6838: 6833: 6828: 6823: 6818: 6813: 6808: 6803: 6798: 6793: 6788: 6783: 6773: 6768: 6763: 6758: 6753: 6748: 6743: 6738: 6733: 6728: 6723: 6718: 6713: 6708: 6703: 6698: 6693: 6688: 6683: 6678: 6673: 6668: 6663: 6658: 6653: 6648: 6647: 6646: 6636: 6631: 6626: 6621: 6616: 6611: 6606: 6601: 6596: 6591: 6586: 6581: 6576: 6571: 6566: 6561: 6556: 6551: 6546: 6541: 6536: 6531: 6526: 6521: 6516: 6511: 6506: 6501: 6496: 6491: 6486: 6481: 6476: 6471: 6466: 6461: 6456: 6451: 6446: 6441: 6436: 6431: 6426: 6425: 6424: 6419: 6414: 6404: 6399: 6394: 6389: 6384: 6379: 6374: 6369: 6364: 6359: 6354: 6349: 6344: 6339: 6334: 6329: 6324: 6319: 6314: 6309: 6304: 6299: 6294: 6289: 6284: 6279: 6274: 6269: 6264: 6259: 6254: 6249: 6244: 6239: 6234: 6229: 6224: 6219: 6214: 6209: 6204: 6199: 6194: 6189: 6184: 6183: 6182: 6177: 6172: 6167: 6162: 6152: 6147: 6142: 6137: 6132: 6127: 6122: 6117: 6112: 6107: 6102: 6097: 6092: 6087: 6082: 6077: 6072: 6071: 6070: 6065: 6060: 6055: 6050: 6045: 6040: 6035: 6030: 6025: 6020: 6015: 6010: 6000: 5995: 5990: 5985: 5980: 5975: 5970: 5965: 5960: 5954: 5952: 5948: 5947: 5933: 5930: 5929: 5920: 5918: 5917: 5910: 5903: 5895: 5886: 5885: 5883: 5882: 5872: 5861: 5858: 5857: 5855: 5854: 5847: 5840: 5835: 5830: 5825: 5820: 5815: 5808: 5802: 5800: 5794: 5793: 5791: 5790: 5785: 5780: 5775: 5770: 5765: 5760: 5755: 5750: 5745: 5740: 5734: 5732: 5728: 5727: 5724: 5723: 5721: 5720: 5715: 5710: 5705: 5700: 5695: 5690: 5685: 5680: 5675: 5670: 5664: 5662: 5653: 5652: 5647: 5642: 5637: 5632: 5627: 5622: 5617: 5612: 5607: 5602: 5601: 5600: 5595: 5590: 5580: 5575: 5570: 5565: 5560: 5555: 5550: 5545: 5540: 5534: 5532: 5526: 5525: 5523: 5522: 5517: 5511: 5509: 5503: 5502: 5500: 5499: 5494: 5489: 5484: 5479: 5473: 5471: 5465: 5464: 5462: 5461: 5456: 5451: 5446: 5441: 5436: 5435: 5434: 5424: 5419: 5414: 5409: 5404: 5399: 5394: 5389: 5388: 5387: 5382: 5372: 5367: 5362: 5360:Bioinformatics 5357: 5351: 5349: 5341: 5340: 5338: 5337: 5332: 5327: 5322: 5317: 5312: 5307: 5302: 5297: 5292: 5287: 5281: 5279: 5275: 5274: 5269: 5267: 5266: 5259: 5252: 5244: 5235: 5234: 5232: 5231: 5221: 5216: 5211: 5206: 5192: 5189: 5188: 5186: 5185: 5178: 5173: 5168: 5163: 5158: 5153: 5148: 5143: 5138: 5133: 5128: 5123: 5118: 5117: 5116: 5106: 5101: 5096: 5091: 5086: 5081: 5076: 5071: 5066: 5061: 5056: 5051: 5046: 5041: 5036: 5031: 5026: 5021: 5020: 5019: 5018: 5017: 5012: 4997: 4992: 4987: 4986: 4985: 4975: 4969: 4966: 4965: 4963: 4962: 4957: 4952: 4946: 4943: 4942: 4937: 4935: 4934: 4927: 4920: 4912: 4903: 4902: 4900: 4899: 4887: 4874: 4871: 4870: 4868: 4867: 4862: 4857: 4852: 4847: 4840: 4834: 4832: 4828: 4827: 4825: 4824: 4819: 4814: 4809: 4803: 4801: 4797: 4796: 4794: 4793: 4788: 4783: 4777: 4772: 4766: 4764: 4757: 4756: 4754: 4753: 4748: 4743: 4738: 4733: 4728: 4723: 4718: 4712: 4706: 4704: 4694: 4693: 4691: 4690: 4685: 4680: 4675: 4670: 4665: 4660: 4655: 4650: 4645: 4640: 4635: 4630: 4625: 4619: 4617: 4611: 4610: 4608: 4607: 4602: 4597: 4591: 4589: 4583: 4582: 4575: 4573: 4570: 4569: 4567: 4566: 4561: 4556: 4551: 4548: 4543: 4537: 4535: 4531: 4530: 4528: 4527: 4522: 4517: 4512: 4502: 4500: 4493: 4487: 4486: 4481: 4479: 4478: 4471: 4464: 4456: 4450: 4449: 4440: 4435: 4424: 4423:External links 4421: 4419: 4418: 4413: 4401:O'Reilly Media 4390: 4374:978-1593271480 4373: 4354: 4349: 4337:O'Reilly Media 4326: 4322:978-1933988474 4321: 4304: 4300:978-1937785499 4299: 4282: 4265: 4246: 4242:978-1449373719 4241: 4233:O'Reilly Media 4222: 4218:978-1484212790 4217: 4200: 4183: 4164: 4160:978-1617295218 4159: 4141: 4139: 4136: 4133: 4132: 4118:. 2013-08-08. 4107: 4077: 4052: 4025: 3998: 3972: 3940: 3912: 3895:Archived from 3884: 3866:Britt, James. 3858: 3829: 3810:Bill Venners. 3802: 3777: 3747: 3728:Bill Venners. 3720: 3693: 3667: 3639: 3620:Bill Venners. 3607: 3590: 3564: 3539: 3514: 3484: 3453: 3439:. 2020-12-25. 3417: 3388: 3358: 3328: 3298: 3257: 3216: 3175: 3134: 3108: 3088: 3068: 3049: 3015: 2989: 2970: 2945: 2919: 2893: 2864: 2837: 2812: 2801:on 24 May 2003 2786: 2760: 2734: 2700: 2670: 2645: 2609: 2579: 2553: 2523: 2494: 2459: 2429: 2403: 2393: 2358: 2326: 2316: 2293: 2264: 2263: 2261: 2258: 2257: 2256: 2251: 2246: 2241: 2236: 2230: 2229: 2215: 2199: 2196: 2162: 2159: 2149:Tools such as 2111: 2108: 2100: 2099: 2082: 2068: 2062: 2060:.NET Framework 2053: 2032: 2031: 2022: 2013: 1999: 1985: 1971: 1949: 1948: 1934: 1925: 1883: 1880: 1861:implementation 1841: 1838: 1826: 1823: 1751:Main article: 1748: 1745: 1744: 1743: 1738: 1692: 1689: 1683: 1676: 1666: 1655: 1640: 1633:method_missing 1629: 1615: 1610: 1605: 1584: 1579: 1574: 1551: 1546: 1539: 1521: 1504: 1490: 1480: 1461: 1455:Dynamic typing 1452: 1432: 1429: 1406:dynamic typing 1287:user interface 1271: 1268: 1182: 1179: 1133: 1132: 1129: 1126: 1123: 1108: 1101: 1100: 1094: 1028: 1013: 960: 957: 917: 916: 913: 912:of Enumerables 906: 903: 900:Module#prepend 898:A new method, 896: 884: 881: 880: 879: 873: 870: 863: 823:an additional 821: 772:an additional 770: 708: 705: 670: 669: 666: 663: 660: 607: 606:Early releases 604: 554: 551: 546:Main article: 543: 540: 448: 447: 446: 445: 431: 430: 380: 379: 375: 374: 327: 326: 322: 321: 291: 290: 283: 282: 275: 271: 270: 267: 261: 260: 255: 249: 248: 246:Cross-platform 243: 237: 236: 231: 227: 226: 223: 217: 216: 203: 197: 196: 193: 192: 173: 171: 169:Stable release 165: 164: 161: 160: 147: 143: 142: 139: 133: 132: 127: 121: 120: 102:Multi-paradigm 99: 93: 92: 77: 76: 38: 36: 29: 15: 13: 10: 9: 6: 4: 3: 2: 8317: 8306: 8303: 8301: 8298: 8296: 8293: 8291: 8288: 8286: 8283: 8281: 8278: 8276: 8273: 8271: 8268: 8266: 8263: 8261: 8260:ISO standards 8258: 8256: 8253: 8251: 8248: 8246: 8243: 8241: 8238: 8236: 8233: 8231: 8228: 8227: 8225: 8210: 8202: 8201: 8198: 8192: 8189: 8187: 8184: 8182: 8179: 8177: 8174: 8172: 8169: 8167: 8164: 8162: 8159: 8157: 8154: 8152: 8149: 8147: 8144: 8142: 8139: 8137: 8134: 8132: 8129: 8128: 8126: 8122: 8116: 8113: 8111: 8108: 8106: 8103: 8100: 8098: 8095: 8093: 8090: 8088: 8085: 8083: 8080: 8078: 8075: 8073: 8070: 8068: 8065: 8063: 8060: 8058: 8055: 8053: 8050: 8048: 8045: 8043: 8040: 8038: 8035: 8033: 8030: 8028: 8025: 8023: 8020: 8018: 8015: 8013: 8010: 8008: 8005: 8003: 8000: 7998: 7995: 7993: 7990: 7988: 7985: 7983: 7980: 7978: 7975: 7973: 7970: 7968: 7965: 7963: 7960: 7958: 7955: 7953: 7950: 7948: 7945: 7943: 7940: 7938: 7935: 7933: 7930: 7928: 7925: 7923: 7920: 7918: 7915: 7913: 7910: 7908: 7905: 7903: 7900: 7898: 7895: 7893: 7890: 7888: 7885: 7883: 7880: 7878: 7875: 7873: 7870: 7868: 7865: 7863: 7860: 7858: 7855: 7854: 7852: 7848: 7842: 7839: 7837: 7834: 7832: 7829: 7827: 7824: 7822: 7819: 7817: 7814: 7812: 7809: 7807: 7804: 7802: 7799: 7797: 7794: 7792: 7789: 7787: 7784: 7782: 7779: 7777: 7774: 7772: 7769: 7767: 7764: 7762: 7759: 7757: 7754: 7752: 7749: 7747: 7744: 7742: 7739: 7737: 7734: 7732: 7729: 7725: 7722: 7720: 7717: 7716: 7715: 7712: 7710: 7707: 7705: 7702: 7700: 7697: 7695: 7692: 7690: 7687: 7685: 7682: 7680: 7677: 7675: 7672: 7670: 7667: 7665: 7662: 7660: 7657: 7655: 7652: 7650: 7647: 7645: 7642: 7640: 7637: 7635: 7632: 7630: 7627: 7625: 7622: 7620: 7617: 7615: 7612: 7610: 7607: 7605: 7602: 7600: 7597: 7595: 7592: 7590: 7587: 7585: 7582: 7580: 7577: 7575: 7572: 7570: 7567: 7565: 7562: 7560: 7557: 7553: 7550: 7549: 7548: 7545: 7543: 7540: 7538: 7535: 7533: 7530: 7528: 7525: 7523: 7520: 7518: 7515: 7511: 7508: 7506: 7503: 7502: 7501: 7498: 7496: 7493: 7491: 7488: 7486: 7483: 7481: 7478: 7476: 7473: 7471: 7468: 7466: 7463: 7461: 7458: 7456: 7453: 7451: 7448: 7446: 7443: 7441: 7438: 7436: 7433: 7431: 7428: 7424: 7421: 7419: 7416: 7414: 7411: 7409: 7406: 7404: 7401: 7399: 7396: 7394: 7391: 7389: 7386: 7384: 7381: 7380: 7379: 7376: 7374: 7371: 7369: 7366: 7364: 7361: 7359: 7356: 7354: 7351: 7349: 7346: 7344: 7341: 7339: 7336: 7334: 7331: 7329: 7326: 7324: 7321: 7319: 7316: 7314: 7311: 7309: 7306: 7304: 7301: 7299: 7296: 7294: 7291: 7289: 7286: 7284: 7281: 7277: 7274: 7272: 7269: 7268: 7267: 7264: 7262: 7259: 7257: 7254: 7252: 7249: 7247: 7244: 7242: 7239: 7237: 7234: 7232: 7229: 7227: 7224: 7222: 7219: 7216: 7212: 7209: 7207: 7204: 7202: 7199: 7197: 7194: 7192: 7189: 7187: 7184: 7182: 7179: 7177: 7174: 7172: 7169: 7167: 7164: 7162: 7159: 7157: 7154: 7152: 7149: 7147: 7144: 7142: 7139: 7137: 7134: 7132: 7129: 7127: 7124: 7122: 7119: 7117: 7114: 7112: 7109: 7107: 7104: 7102: 7099: 7097: 7094: 7090: 7087: 7085: 7082: 7080: 7077: 7075: 7072: 7070: 7067: 7066: 7065: 7062: 7060: 7057: 7055: 7052: 7050: 7047: 7045: 7042: 7040: 7037: 7035: 7032: 7030: 7027: 7025: 7022: 7020: 7017: 7015: 7012: 7010: 7007: 7006: 7004: 7000: 6994: 6991: 6989: 6986: 6984: 6981: 6979: 6976: 6974: 6971: 6969: 6966: 6964: 6961: 6959: 6956: 6954: 6951: 6949: 6946: 6944: 6941: 6939: 6936: 6934: 6931: 6929: 6926: 6924: 6921: 6919: 6916: 6914: 6911: 6909: 6906: 6904: 6901: 6899: 6896: 6894: 6891: 6889: 6886: 6884: 6881: 6879: 6876: 6874: 6871: 6869: 6866: 6862: 6859: 6857: 6854: 6852: 6849: 6847: 6844: 6842: 6839: 6837: 6834: 6832: 6829: 6827: 6824: 6822: 6819: 6817: 6814: 6812: 6809: 6807: 6804: 6802: 6799: 6797: 6794: 6792: 6789: 6787: 6784: 6782: 6779: 6778: 6777: 6774: 6772: 6769: 6767: 6764: 6762: 6759: 6757: 6754: 6752: 6749: 6747: 6744: 6742: 6739: 6737: 6734: 6732: 6729: 6727: 6724: 6722: 6719: 6717: 6714: 6712: 6709: 6707: 6704: 6702: 6699: 6697: 6694: 6692: 6689: 6687: 6684: 6682: 6679: 6677: 6674: 6672: 6669: 6667: 6664: 6662: 6659: 6657: 6654: 6652: 6649: 6645: 6642: 6641: 6640: 6637: 6635: 6632: 6630: 6627: 6625: 6622: 6620: 6617: 6615: 6612: 6610: 6607: 6605: 6602: 6600: 6597: 6595: 6592: 6590: 6587: 6585: 6582: 6580: 6577: 6575: 6572: 6570: 6567: 6565: 6562: 6560: 6557: 6555: 6552: 6550: 6547: 6545: 6542: 6540: 6537: 6535: 6532: 6530: 6527: 6525: 6522: 6520: 6517: 6515: 6512: 6510: 6507: 6505: 6502: 6500: 6497: 6495: 6492: 6490: 6487: 6485: 6482: 6480: 6477: 6475: 6472: 6470: 6467: 6465: 6462: 6460: 6457: 6455: 6452: 6450: 6447: 6445: 6442: 6440: 6437: 6435: 6432: 6430: 6427: 6423: 6420: 6418: 6415: 6413: 6410: 6409: 6408: 6405: 6403: 6400: 6398: 6395: 6393: 6390: 6388: 6385: 6383: 6380: 6378: 6375: 6373: 6370: 6368: 6365: 6363: 6360: 6358: 6355: 6353: 6350: 6348: 6345: 6343: 6340: 6338: 6335: 6333: 6330: 6328: 6325: 6323: 6320: 6318: 6315: 6313: 6310: 6308: 6305: 6303: 6300: 6298: 6295: 6293: 6290: 6288: 6285: 6283: 6280: 6278: 6275: 6273: 6270: 6268: 6265: 6263: 6260: 6258: 6255: 6253: 6250: 6248: 6245: 6243: 6240: 6238: 6235: 6233: 6230: 6228: 6225: 6223: 6220: 6218: 6215: 6213: 6210: 6208: 6205: 6203: 6200: 6198: 6195: 6193: 6190: 6188: 6185: 6181: 6178: 6176: 6173: 6171: 6168: 6166: 6163: 6161: 6158: 6157: 6156: 6153: 6151: 6148: 6146: 6143: 6141: 6138: 6136: 6133: 6131: 6128: 6126: 6123: 6121: 6118: 6116: 6113: 6111: 6108: 6106: 6103: 6101: 6098: 6096: 6093: 6091: 6088: 6086: 6083: 6081: 6078: 6076: 6073: 6069: 6066: 6064: 6061: 6059: 6056: 6054: 6051: 6049: 6046: 6044: 6041: 6039: 6036: 6034: 6031: 6029: 6026: 6024: 6021: 6019: 6016: 6014: 6011: 6009: 6006: 6005: 6004: 6001: 5999: 5996: 5994: 5991: 5989: 5986: 5984: 5981: 5979: 5976: 5974: 5971: 5969: 5966: 5964: 5961: 5959: 5956: 5955: 5953: 5949: 5945: 5944:IEC standards 5941: 5937: 5936:ISO standards 5931: 5923: 5916: 5911: 5909: 5904: 5902: 5897: 5896: 5893: 5881: 5873: 5871: 5867: 5863: 5862: 5859: 5853: 5852: 5851:Revolution OS 5848: 5846: 5845: 5841: 5839: 5836: 5834: 5831: 5829: 5826: 5824: 5821: 5819: 5816: 5814: 5813: 5812:GNU Manifesto 5809: 5807: 5804: 5803: 5801: 5795: 5789: 5786: 5784: 5781: 5779: 5776: 5774: 5771: 5769: 5766: 5764: 5761: 5759: 5756: 5754: 5751: 5749: 5746: 5744: 5741: 5739: 5736: 5735: 5733: 5729: 5719: 5718:Public domain 5716: 5714: 5711: 5709: 5706: 5704: 5701: 5699: 5696: 5694: 5691: 5689: 5686: 5684: 5681: 5679: 5676: 5674: 5671: 5669: 5666: 5665: 5663: 5657: 5651: 5648: 5646: 5643: 5641: 5638: 5636: 5633: 5631: 5628: 5626: 5623: 5621: 5618: 5616: 5613: 5611: 5608: 5606: 5603: 5599: 5596: 5594: 5591: 5589: 5586: 5585: 5584: 5581: 5579: 5576: 5574: 5571: 5569: 5566: 5564: 5561: 5559: 5556: 5554: 5551: 5549: 5546: 5544: 5541: 5539: 5536: 5535: 5533: 5531: 5527: 5521: 5518: 5516: 5513: 5512: 5510: 5508: 5507:Organisations 5504: 5498: 5495: 5493: 5490: 5488: 5485: 5483: 5480: 5478: 5475: 5474: 5472: 5470: 5466: 5460: 5457: 5455: 5452: 5450: 5447: 5445: 5442: 5440: 5437: 5433: 5430: 5429: 5428: 5425: 5423: 5420: 5418: 5415: 5413: 5410: 5408: 5405: 5403: 5402:Office suites 5400: 5398: 5395: 5393: 5390: 5386: 5383: 5381: 5378: 5377: 5376: 5373: 5371: 5368: 5366: 5363: 5361: 5358: 5356: 5353: 5352: 5350: 5348: 5342: 5336: 5333: 5331: 5328: 5326: 5323: 5321: 5318: 5316: 5313: 5311: 5308: 5306: 5303: 5301: 5300:Free software 5298: 5296: 5293: 5291: 5288: 5286: 5283: 5282: 5280: 5276: 5272: 5265: 5260: 5258: 5253: 5251: 5246: 5245: 5242: 5230: 5222: 5220: 5217: 5215: 5212: 5210: 5207: 5205: 5202: 5194: 5193: 5190: 5184: 5183: 5179: 5177: 5174: 5172: 5169: 5167: 5164: 5162: 5159: 5157: 5154: 5152: 5149: 5147: 5144: 5142: 5139: 5137: 5134: 5132: 5129: 5127: 5124: 5122: 5119: 5115: 5114:Object Pascal 5112: 5111: 5110: 5107: 5105: 5102: 5100: 5097: 5095: 5092: 5090: 5087: 5085: 5082: 5080: 5077: 5075: 5072: 5070: 5067: 5065: 5062: 5060: 5057: 5055: 5052: 5050: 5047: 5045: 5042: 5040: 5037: 5035: 5032: 5030: 5027: 5025: 5022: 5016: 5013: 5011: 5008: 5007: 5006: 5003: 5002: 5001: 4998: 4996: 4993: 4991: 4988: 4984: 4981: 4980: 4979: 4976: 4974: 4971: 4970: 4967: 4961: 4958: 4956: 4953: 4951: 4948: 4947: 4944: 4940: 4933: 4928: 4926: 4921: 4919: 4914: 4913: 4910: 4898: 4897: 4888: 4886: 4885: 4876: 4875: 4872: 4866: 4863: 4861: 4858: 4856: 4853: 4851: 4848: 4846: 4845: 4841: 4839: 4836: 4835: 4833: 4829: 4823: 4820: 4818: 4815: 4813: 4810: 4808: 4805: 4804: 4802: 4798: 4792: 4789: 4787: 4784: 4781: 4778: 4776: 4773: 4771: 4768: 4767: 4765: 4762: 4758: 4752: 4749: 4747: 4744: 4742: 4739: 4737: 4736:Ruby on Rails 4734: 4732: 4729: 4727: 4724: 4722: 4719: 4716: 4713: 4711: 4708: 4707: 4705: 4703: 4699: 4695: 4689: 4686: 4684: 4681: 4679: 4676: 4674: 4671: 4669: 4666: 4664: 4661: 4659: 4656: 4654: 4651: 4649: 4646: 4644: 4641: 4639: 4636: 4634: 4631: 4629: 4626: 4624: 4621: 4620: 4618: 4616: 4612: 4606: 4603: 4601: 4598: 4596: 4595:Aptana Studio 4593: 4592: 4590: 4588: 4584: 4579: 4565: 4562: 4560: 4557: 4555: 4552: 4549: 4547: 4544: 4542: 4539: 4538: 4536: 4532: 4526: 4523: 4521: 4518: 4516: 4513: 4511: 4507: 4504: 4503: 4501: 4497: 4494: 4492: 4488: 4484: 4477: 4472: 4470: 4465: 4463: 4458: 4457: 4454: 4448: 4444: 4441: 4439: 4436: 4432: 4427: 4426: 4422: 4416: 4410: 4406: 4402: 4398: 4397: 4396:Learning Ruby 4391: 4380: 4376: 4370: 4366: 4362: 4361: 4355: 4352: 4346: 4342: 4338: 4334: 4333: 4327: 4324: 4318: 4314: 4310: 4305: 4302: 4296: 4292: 4288: 4283: 4272: 4268: 4262: 4258: 4254: 4253: 4247: 4244: 4238: 4234: 4230: 4229: 4223: 4220: 4214: 4210: 4206: 4201: 4190: 4186: 4180: 4176: 4172: 4171: 4165: 4162: 4156: 4152: 4148: 4143: 4142: 4137: 4121: 4117: 4111: 4108: 4095: 4091: 4087: 4081: 4078: 4066: 4062: 4056: 4053: 4040: 4036: 4029: 4026: 4013: 4009: 4002: 3999: 3987: 3983: 3976: 3973: 3960: 3956: 3955: 3950: 3944: 3941: 3937: 3927:on 2004-07-22 3926: 3922: 3916: 3913: 3909: 3899:on 2011-07-17 3898: 3894: 3888: 3885: 3873: 3869: 3862: 3859: 3847: 3843: 3839: 3833: 3830: 3817: 3813: 3806: 3803: 3791: 3787: 3781: 3778: 3765: 3761: 3757: 3751: 3748: 3735: 3731: 3724: 3721: 3708: 3704: 3697: 3694: 3681: 3677: 3671: 3668: 3663: 3657: 3649: 3643: 3640: 3627: 3623: 3616: 3614: 3612: 3608: 3605: 3601: 3594: 3591: 3578: 3574: 3568: 3565: 3553: 3549: 3543: 3540: 3528: 3524: 3518: 3515: 3502: 3498: 3497:ruby-lang.org 3494: 3488: 3485: 3472: 3468: 3464: 3457: 3454: 3442: 3438: 3434: 3428: 3426: 3424: 3422: 3418: 3406: 3402: 3398: 3392: 3389: 3376: 3372: 3368: 3362: 3359: 3346: 3342: 3338: 3332: 3329: 3316: 3312: 3308: 3302: 3299: 3294: 3288: 3272: 3268: 3261: 3258: 3253: 3247: 3231: 3227: 3220: 3217: 3212: 3206: 3190: 3186: 3179: 3176: 3171: 3165: 3149: 3145: 3138: 3135: 3122: 3118: 3112: 3109: 3105: 3101: 3098: 3092: 3089: 3085: 3081: 3078: 3072: 3069: 3065: 3061: 3058: 3053: 3050: 3037: 3033: 3031: 3025: 3019: 3016: 3003: 2999: 2993: 2990: 2986: 2982: 2979: 2974: 2971: 2959: 2955: 2949: 2946: 2933: 2929: 2923: 2920: 2907: 2903: 2897: 2894: 2881: 2877: 2871: 2869: 2865: 2852: 2848: 2841: 2838: 2826: 2822: 2816: 2813: 2800: 2796: 2790: 2787: 2774: 2770: 2764: 2761: 2748: 2744: 2738: 2735: 2722: 2718: 2714: 2710: 2704: 2701: 2688: 2684: 2680: 2674: 2671: 2660:on 2011-07-17 2659: 2655: 2649: 2646: 2634: 2630: 2624: 2622: 2620: 2618: 2616: 2614: 2610: 2598:on 2018-10-27 2597: 2593: 2589: 2583: 2580: 2567: 2563: 2557: 2554: 2550: 2538: 2534: 2527: 2524: 2512: 2508: 2504: 2498: 2495: 2482: 2478: 2474: 2473:ring-lang.net 2470: 2463: 2460: 2448: 2444: 2440: 2433: 2430: 2417: 2413: 2407: 2404: 2400: 2396: 2390: 2386: 2382: 2381: 2373: 2371: 2369: 2367: 2365: 2363: 2359: 2348:on 2020-01-15 2347: 2343: 2339: 2333: 2331: 2327: 2323: 2319: 2313: 2309: 2302: 2300: 2298: 2294: 2282: 2278: 2272: 2270: 2266: 2259: 2255: 2254:Ruby on Rails 2252: 2250: 2247: 2245: 2242: 2240: 2237: 2235: 2232: 2231: 2227: 2221: 2216: 2213: 2202: 2197: 2195: 2192: 2190: 2186: 2182: 2177: 2175: 2171: 2167: 2160: 2158: 2156: 2152: 2147: 2145: 2141: 2137: 2133: 2129: 2125: 2121: 2117: 2109: 2107: 2105: 2104:Ruby on Rails 2098: 2094: 2090: 2086: 2083: 2080: 2079:Ruby on Rails 2076: 2072: 2069: 2067: 2063: 2061: 2057: 2054: 2052: 2048: 2044: 2040: 2037: 2036: 2035: 2030: 2026: 2023: 2021: 2017: 2014: 2011: 2007: 2003: 2000: 1997: 1993: 1989: 1986: 1983: 1979: 1975: 1972: 1969: 1965: 1961: 1957: 1954: 1953: 1952: 1946: 1942: 1938: 1935: 1933: 1929: 1926: 1923: 1919: 1915: 1912: 1911: 1910: 1907: 1905: 1901: 1897: 1893: 1889: 1881: 1879: 1877: 1872: 1870: 1866: 1862: 1857: 1855: 1851: 1847: 1836: 1832: 1824: 1822: 1809: 1807: 1803: 1799: 1795: 1791: 1778: 1776: 1772: 1768: 1764: 1760: 1754: 1746: 1742: 1739: 1737: 1733: 1729: 1725: 1721: 1717: 1713: 1709: 1705: 1701: 1697: 1693: 1690: 1688: 1684: 1681: 1677: 1675: 1671: 1667: 1664: 1661:and multiple 1660: 1656: 1653: 1649: 1645: 1641: 1637:const_missing 1630: 1628: 1624: 1620: 1616: 1614: 1611: 1609: 1606: 1602: 1593: 1589: 1585: 1583: 1580: 1578: 1575: 1572: 1569:) denoted by 1568: 1564: 1560: 1556: 1552: 1550: 1547: 1544: 1543:interpolation 1540: 1538: 1534: 1530: 1526: 1522: 1520: 1516: 1512: 1508: 1505: 1503: 1499: 1495: 1491: 1489: 1485: 1481: 1478: 1474: 1470: 1466: 1462: 1460: 1456: 1453: 1451: 1447: 1443: 1439: 1435: 1434: 1430: 1428: 1426: 1422: 1418: 1413: 1411: 1407: 1403: 1399: 1395: 1391: 1390:introspection 1387: 1386:continuations 1383: 1379: 1375: 1371: 1366: 1364: 1360: 1356: 1352: 1348: 1344: 1339: 1335: 1331: 1327: 1323: 1317: 1314: 1307: 1304: 1302: 1296: 1291: 1288: 1280: 1276: 1269: 1267: 1263: 1261: 1257: 1252: 1248: 1244: 1240: 1235: 1233: 1229: 1225: 1221: 1217: 1213: 1208: 1205: 1203: 1198: 1196: 1191: 1188: 1180: 1178: 1175: 1173: 1169: 1164: 1162: 1158: 1154: 1150: 1146: 1142: 1138: 1130: 1127: 1124: 1121: 1117: 1113: 1109: 1106: 1105: 1104: 1095: 1088: 1036: 1032: 1029: 1026: 1025:NoMethodError 1022: 1018: 1014: 1008:, we can use 965: 961: 958: 955: 951: 950: 949: 945: 942: 938: 934: 930: 924: 922: 914: 911: 907: 904: 897: 894: 891: 890: 889: 882: 874: 871: 869:are supported 868: 864: 826: 822: 775: 771: 768: 764: 761: 760: 759: 757: 751: 749: 748:web framework 745: 744:Ruby on Rails 737: 736:Ruby on Rails 733: 729: 727: 723: 719: 713: 706: 704: 702: 698: 694: 693: 687: 685: 681: 676: 673: 667: 664: 661: 658: 657: 656: 653: 651: 647: 643: 639: 635: 631: 627: 622: 620: 617: 613: 605: 603: 601: 597: 593: 587: 585: 581: 575: 572: 568: 562: 560: 553:Early concept 552: 549: 541: 539: 537: 533: 529: 525: 521: 517: 513: 509: 505: 501: 497: 493: 489: 484: 482: 478: 474: 470: 466: 462: 458: 454: 443: 439: 435: 434: 432: 429: 425: 421: 417: 413: 409: 405: 401: 397: 393: 389: 385: 381: 376: 373: 369: 365: 361: 357: 353: 348: 344: 340: 336: 332: 328: 325:Influenced by 323: 320: 316: 312: 308: 304: 300: 296: 292: 289: 284: 280: 279:ruby-lang.org 276: 272: 268: 266: 262: 259: 256: 254: 250: 247: 244: 242: 238: 235: 232: 228: 224: 222: 218: 215: 211: 207: 204: 202: 198: 194: 178: 172: 170: 166: 162: 148: 144: 140: 138: 134: 131: 128: 126: 122: 119: 115: 111: 107: 103: 100: 98: 94: 90: 85: 73: 70: 62: 52: 48: 42: 37: 28: 27: 22: 21:Ruby on Rails 8130: 8062:27000 series 5849: 5842: 5810: 5693:Free license 5439:Android apps 5214:Generational 5204:Alphabetical 5200: 5180: 5145: 5005:Visual Basic 4894: 4882: 4865:Ruby License 4850:Ruby Central 4842: 4628:Hackety Hack 4615:Applications 4534:Discontinued 4482: 4395: 4385:February 13, 4383:, retrieved 4359: 4331: 4308: 4286: 4277:February 13, 4275:, retrieved 4251: 4227: 4204: 4195:February 13, 4193:, retrieved 4169: 4146: 4124:. Retrieved 4110: 4098:. Retrieved 4090:rubygems.org 4089: 4080: 4069:. Retrieved 4055: 4043:. Retrieved 4028: 4016:. Retrieved 4012:the original 4001: 3990:. Retrieved 3975: 3963:. Retrieved 3952: 3943: 3935: 3929:. Retrieved 3925:the original 3915: 3907: 3901:. Retrieved 3897:the original 3887: 3876:. Retrieved 3861: 3850:. Retrieved 3841: 3832: 3820:. Retrieved 3805: 3794:. Retrieved 3780: 3768:. Retrieved 3759: 3750: 3738:. Retrieved 3723: 3711:. Retrieved 3696: 3684:. Retrieved 3670: 3642: 3630:. Retrieved 3593: 3581:. Retrieved 3567: 3556:. Retrieved 3542: 3531:. Retrieved 3517: 3505:. Retrieved 3496: 3487: 3475:. Retrieved 3466: 3456: 3445:. Retrieved 3436: 3409:. Retrieved 3400: 3391: 3379:. Retrieved 3370: 3361: 3349:. Retrieved 3340: 3331: 3319:. Retrieved 3310: 3301: 3275:. Retrieved 3260: 3234:. Retrieved 3219: 3193:. Retrieved 3189:the original 3178: 3152:. Retrieved 3137: 3127:December 27, 3125:. Retrieved 3121:the original 3111: 3091: 3071: 3052: 3042:February 20, 3040:. Retrieved 3036:the original 3027: 3018: 3008:February 20, 3006:. Retrieved 2992: 2973: 2962:. Retrieved 2948: 2936:. Retrieved 2932:the original 2922: 2910:. Retrieved 2906:the original 2896: 2884:. Retrieved 2855:. Retrieved 2840: 2829:. Retrieved 2815: 2803:. Retrieved 2799:the original 2789: 2777:. Retrieved 2773:the original 2763: 2751:. Retrieved 2747:the original 2737: 2725:. Retrieved 2721:the original 2716: 2703: 2691:. Retrieved 2682: 2673: 2662:. Retrieved 2658:the original 2648: 2637:. Retrieved 2600:. Retrieved 2596:the original 2582: 2570:. Retrieved 2562:"About Ruby" 2556: 2547: 2541:. Retrieved 2526: 2515:. Retrieved 2506: 2497: 2485:. Retrieved 2472: 2462: 2451:. Retrieved 2442: 2437:Burks, Tim. 2432: 2420:. Retrieved 2416:the original 2406: 2398: 2379: 2350:. Retrieved 2346:the original 2341: 2321: 2307: 2285:. Retrieved 2193: 2178: 2174:RubyGems.org 2164: 2148: 2146:and others. 2120:Sony NEWS-OS 2113: 2101: 2093:ActionScript 2074: 2033: 1950: 1908: 1885: 1873: 1858: 1843: 1810: 1779: 1756: 1657:Support for 1591: 1519:block syntax 1477:declarations 1473:imperatively 1414: 1367: 1319: 1312: 1309: 1305: 1298: 1293: 1284: 1264: 1236: 1209: 1206: 1199: 1192: 1184: 1176: 1171: 1165: 1160: 1156: 1152: 1148: 1144: 1140: 1136: 1134: 1119: 1115: 1111: 1102: 1086: 1085:, the value 1034: 1030: 1024: 1020: 1017:did_you_mean 1016: 946: 925: 918: 908:New API for 886: 752: 741: 714: 710: 700: 696: 690: 688: 683: 679: 677: 674: 671: 654: 623: 618: 609: 588: 577: 567:toy language 564: 558: 556: 485: 471:, including 452: 451: 444:at Wikibooks 388:CoffeeScript 258:Ruby License 65: 56: 40: 7850:20000–29999 7002:10000–19999 5783:Tivoization 5422:Video games 5397:Mathematics 5209:Categorical 4822:Dave Thomas 4100:10 December 3381:27 December 3351:25 December 2602:15 February 2572:15 February 2439:"About Nu™" 2047:Objective-C 1992:proprietary 1928:TruffleRuby 1846:interpreter 1786:attr_reader 1782:attr_writer 1771:expressions 1753:Ruby syntax 1459:duck typing 1450:metaclasses 1442:inheritance 1436:Thoroughly 1421:Smalltalk's 1365:as mixins. 1343:inheritance 1239:WebAssembly 1195:concurrency 1170:(JIT), and 865:per-string 851::symbol_key 763:block local 457:interpreted 299:TruffleRuby 174:3.3.5  8224:Categories 7629:16949 (TS) 7226:11941 (TR) 5924:standards 5731:Challenges 5449:Commercial 5432:E-commerce 5417:Television 5074:JavaScript 4950:Comparison 4710:Adhearsion 4702:frameworks 4623:Capistrano 4600:Komodo IDE 4525:RubyMotion 4403:, p.  4339:, p.  4126:2016-01-03 4071:2015-04-04 3992:2010-05-23 3931:2008-12-06 3903:2008-12-06 3878:2013-12-09 3852:2021-06-20 3796:2007-11-01 3558:2022-12-25 3533:2021-12-26 3447:2020-12-25 3411:2016-12-30 3030:Subversion 2964:2017-03-10 2831:2007-07-11 2664:2008-08-14 2639:2008-08-14 2543:2014-06-03 2517:2023-04-18 2487:3 December 2453:2011-07-21 2352:2019-06-25 2287:2023-12-25 2260:References 2239:Metasploit 2089:JavaScript 2051:RubyMotion 2029:JavaScript 2006:transpiler 2002:julializer 1984:and others 1968:GemStone/S 1916:, a mixed 1829:See also: 1775:statements 1515:generators 1498:alteration 1494:reflection 1469:statements 1465:expression 1157:Hash#slice 1153:yield_self 990:&& 978:&& 833:symbol_key 612:newsgroups 600:birthstone 500:procedural 461:high-level 378:Influenced 315:RubyMotion 118:reflective 110:imperative 106:functional 7584:15926 WIP 6948:9592/9593 6873:9000/9001 6761:8805/8806 5661:standards 5659:Types and 5640:Unlicense 5635:Sleepycat 5469:Community 5171:Smalltalk 4860:RubyForge 4855:RubyKaigi 4731:RubyCocoa 4698:Libraries 4688:CocoaPods 3965:29 August 3838:"Methods" 2727:April 10, 2717:Ruby-Talk 2693:April 10, 2477:ring-lang 2422:6 October 1996:RPG Maker 1960:Smalltalk 1517:, with a 1511:iterators 1341:supports 1187:Christmas 1149:begin-end 1058:wikipedia 1035:Array#dig 1021:NameError 941:PowerPC64 701:ruby-list 697:ruby-talk 680:ruby-talk 638:iterators 619:ruby-list 559:ruby-talk 516:Smalltalk 490:and uses 372:Smalltalk 137:Developer 59:June 2022 8209:Category 5934:List of 5880:Category 5797:Related 5678:Copyleft 5598:GNU LGPL 5593:GNU AGPL 5558:Beerware 5553:Artistic 5530:Licenses 5497:Advocacy 5444:iOS apps 5385:Wireless 5380:Graphics 5347:packages 5345:Software 5335:Timeline 5229:Category 4995:Assembly 4955:Timeline 4884:Category 4770:mod_ruby 4763:software 4683:Homebrew 4658:RubyGems 4605:RubyMine 4564:Rubinius 4546:IronRuby 4506:Ruby MRI 4379:archived 4271:archived 4189:archived 4120:Archived 4094:Archived 4065:Archived 4039:Archived 3986:Archived 3959:Archived 3872:Archived 3846:Archived 3816:Archived 3790:Archived 3764:Archived 3734:Archived 3707:Archived 3680:Archived 3656:cite web 3626:Archived 3577:Archived 3552:Archived 3527:Archived 3501:Archived 3471:Archived 3441:Archived 3405:Archived 3375:Archived 3345:Archived 3315:Archived 3287:cite web 3271:Archived 3246:cite web 3230:Archived 3205:cite web 3164:cite web 3148:Archived 3100:Archived 3080:Archived 3060:Archived 3002:Archived 2981:Archived 2958:Archived 2880:Archived 2851:Archived 2825:Archived 2687:Archived 2633:Archived 2566:Archived 2537:Archived 2511:Archived 2481:Archived 2447:Archived 2281:Archived 2198:See also 2166:RubyGems 2136:Jelastic 2081:projects 2056:IronRuby 2043:Mac OS X 1937:Rubinius 1892:Rubinius 1687:RubyGems 1654:feature) 1588:coercion 1563:instance 1492:Dynamic 1431:Features 1382:closures 1376:(it has 1355:instance 1334:function 1326:integers 1320:Ruby is 1247:memoized 1216:debugger 1031:Hash#dig 937:Ruby MRI 776:syntax: 642:closures 628:design, 486:Ruby is 307:Rubinius 295:Ruby MRI 269:.rb, .ru 97:Paradigm 8110:29199-2 7982:23094-2 7977:23094-1 7967:23090-3 7836:19794-5 7831:19775-1 7619:16612-2 7609:16355-1 7298:13406-2 7256:12234-2 7024:10118-3 5806:Forking 5588:GNU GPL 5482:History 5412:Routing 5375:Drivers 5330:Outline 5278:General 5182:more... 5161:Scratch 5064:Haskell 5054:Fortran 5010:classic 4960:History 4896:Commons 4791:WEBrick 4775:Mongrel 4746:Sinatra 4726:Padrino 4717:(RHTML) 4678:Vagrant 4648:Redmine 4554:HotRuby 4541:MacRuby 4045:3 March 4018:3 March 3604:YouTube 3477:May 18, 3277:12 July 3236:12 July 3195:12 July 3154:12 July 2857:5 March 2118:-based 2085:HotRuby 2039:MacRuby 1932:GraalVM 1712:OpenSSL 1672:API in 1670:plug-in 1668:Native 1659:Unicode 1644:threads 1642:Native 1594:except 1537:symbols 1402:threads 1363:modules 1258:-based 1212:Shopify 1120:Integer 1087:Foo Baz 1040:profile 933:Unicode 630:classes 594:" and " 542:History 392:Crystal 384:Clojure 274:Website 253:License 210:dynamic 185: ( 154: ( 45:Please 8124:30000+ 6963:9797-1 6771:8820-5 6716:8501-1 6272:1073-2 6267:1073-1 5951:1–9999 5870:Portal 5799:topics 5620:Python 5543:Apache 5492:Events 5392:Health 5365:Codecs 5201:Lists: 5136:Python 5131:Prolog 5109:Pascal 5099:MATLAB 5084:Kotlin 5044:Erlang 4983:Simula 4800:People 4761:Server 4751:QtRuby 4673:Puppet 4559:MagLev 4499:Active 4447:Curlie 4411:  4371:  4347:  4319:  4297:  4263:  4239:  4215:  4209:Apress 4181:  4157:  3954:GitHub 3507:25 Dec 3341:GitHub 3311:GitHub 2391:  2314:  2181:GitHub 2140:Heroku 2116:4.3BSD 2020:Python 1956:MagLev 1894:, and 1833:, and 1806:VB.NET 1763:Python 1747:Syntax 1728:curses 1648:fibers 1571:sigils 1565:, and 1555:global 1529:hashes 1525:arrays 1475:(even 1467:(even 1446:mixins 1425:Python 1384:, and 1351:mixins 1338:method 1230:, and 1181:Ruby 3 1145:do-end 1141:ensure 1137:rescue 1116:Bignum 1112:Fixnum 1110:Unify 1049:social 967:&. 962:A new 893:Method 883:Ruby 2 774:lambda 634:mixins 571:Python 534:, and 520:Eiffel 506:, and 469:object 455:is an 404:Groovy 400:Elixir 368:Python 352:Eiffel 286:Major 214:strong 8191:80000 8186:56000 8181:55000 8176:50001 8171:45001 8166:42010 8161:40500 8156:39075 8151:38500 8146:37001 8141:32000 8136:31000 8131:30170 8115:29500 8105:29148 8101:29110 8097:28000 8092:27729 8087:27006 8082:27005 8077:27002 8072:27001 8067:27000 8057:26324 8052:26300 8047:26262 8042:26000 8037:25964 8032:25178 8027:24728 8022:24707 8017:24617 8012:24613 8007:24517 8002:23941 7997:23360 7992:23271 7987:23270 7972:23092 7962:23009 7957:23008 7952:23003 7947:23000 7942:22537 7937:22395 7932:22301 7927:22300 7922:22275 7917:22000 7912:21827 7907:21500 7902:21122 7897:21047 7892:21001 7887:21000 7882:20830 7877:20802 7872:20400 7867:20121 7862:20022 7857:20000 7841:19831 7826:19770 7821:19757 7816:19752 7811:19600 7806:19510 7801:19509 7796:19508 7791:19507 7786:19506 7781:19505 7776:19503 7771:19502 7766:19501 7761:19500 7756:19439 7751:19407 7746:19136 7741:19125 7736:19115 7731:19114 7714:19092 7709:19011 7704:19005 7699:18916 7694:18629 7689:18245 7684:18181 7679:18014 7674:18004 7669:17799 7664:17506 7659:17442 7654:17369 7649:17203 7644:17100 7639:17025 7634:17024 7624:16750 7614:16485 7604:16262 7599:16023 7594:15938 7589:15930 7579:15926 7574:15924 7569:15919 7564:15897 7559:15707 7547:15706 7542:15693 7537:15686 7532:15511 7527:15504 7522:15438 7517:15445 7500:15444 7495:15408 7490:15398 7485:15291 7480:15288 7475:15189 7470:15022 7465:14971 7460:14882 7455:14764 7450:14698 7445:14651 7440:14649 7435:14644 7430:14617 7378:14496 7373:14443 7368:14396 7363:14289 7358:14224 7353:14031 7348:14000 7343:13818 7338:13816 7333:13616 7328:13584 7323:13568 7318:13567 7313:13490 7308:13485 7303:13450 7293:13399 7288:13250 7283:13216 7266:13211 7261:12620 7251:12207 7246:12182 7241:12052 7236:12006 7231:11992 7221:11941 7211:11940 7206:11898 7201:11889 7196:11801 7191:11785 7186:11784 7181:11783 7176:11544 7171:11404 7166:11179 7161:11172 7156:11170 7151:11073 7146:10967 7141:10962 7136:10957 7131:10861 7126:10746 7121:10664 7116:10646 7111:10628 7106:10589 7101:10585 7096:10383 7064:10303 7059:10279 7054:10218 7049:10206 7044:10179 7039:10165 7034:10161 7029:10160 7019:10116 7014:10007 7009:10006 5645:WTFPL 5355:Audio 5176:Swift 5166:Shell 5079:Julia 5049:Forth 5039:COBOL 5000:BASIC 4978:ALGOL 4831:Other 4741:Shoes 4715:eRuby 4653:RSpec 4550:XRuby 4520:JRuby 4515:mruby 3822:2 May 3770:2 May 3740:2 May 3713:2 May 3686:2 May 3632:2 May 3583:2 May 3321:2 May 3028:Ruby 2938:2 May 2912:2 May 2886:2 May 2805:2 May 2779:2 May 2753:2 May 2155:RBEnv 2128:Linux 2124:SunOS 2016:Topaz 2010:Julia 1974:mruby 1914:JRuby 1896:mruby 1888:JRuby 1767:sigil 1596:false 1567:local 1559:class 1440:with 1345:with 1336:is a 1251:ReDoS 1122:class 1118:into 929:vfork 854:=> 785:-> 767:block 592:Coral 528:BASIC 481:Japan 428:Swift 412:Mirah 408:Julia 347:Dylan 335:Basic 319:mruby 311:JRuby 221:Scope 7089:-238 6993:9995 6988:9985 6983:9984 6978:9945 6973:9899 6968:9897 6958:9660 6953:9594 6943:9564 6938:9529 6933:9506 6928:9496 6923:9407 6918:9362 6913:9314 6908:9293 6903:9241 6898:9227 6893:9141 6888:9126 6883:9075 6878:9036 6868:8879 6821:-8-I 6776:8859 6766:8807 6756:8691 6751:8652 6746:8651 6741:8632 6736:8613 6731:8601 6726:8583 6721:8571 6711:8373 6706:8217 6701:8178 6696:8093 6691:8000 6686:7942 6681:7816 6676:7813 6671:7812 6666:7811 6661:7810 6656:7736 6651:7637 6639:7498 6634:7200 6629:7185 6624:7098 6619:7064 6614:7027 6609:7010 6604:7002 6599:7001 6594:6943 6589:6709 6584:6523 6579:6438 6574:6429 6569:6425 6564:6385 6559:6373 6554:6346 6549:6344 6544:6166 6539:5964 6534:5807 6529:5800 6524:5776 6519:5775 6514:5725 6509:5428 6504:5427 6499:5426 6494:5218 6489:4909 6484:4217 6479:4165 6474:4157 6469:4031 6464:3977 6459:3950 6454:3901 6449:3864 6444:3602 6439:3601 6434:3307 6429:3297 6407:3166 6402:3103 6397:3029 6392:2921 6387:2852 6382:2848 6377:2788 6372:2720 6367:2711 6362:2709 6357:2533 6352:2281 6347:2240 6342:2146 6337:2145 6332:2108 6327:2047 6322:2033 6317:2022 6312:2015 6307:2014 6302:1989 6297:1745 6292:1629 6287:1538 6282:1413 6277:1155 6262:1007 6257:1004 6252:1000 6075:68-1 5650:zlib 5573:CDDL 5548:APSL 5151:Rust 5146:Ruby 5121:Perl 5089:Lisp 5069:Java 5015:.NET 4786:Rack 4721:Merb 4700:and 4668:Chef 4643:Rake 4510:YARV 4443:Ruby 4409:ISBN 4387:2020 4369:ISBN 4345:ISBN 4317:ISBN 4295:ISBN 4279:2020 4261:ISBN 4237:ISBN 4213:ISBN 4197:2020 4179:ISBN 4155:ISBN 4102:2021 4047:2014 4020:2014 3967:2016 3824:2015 3772:2015 3742:2015 3715:2015 3688:2015 3662:link 3634:2015 3585:2015 3509:2021 3479:2019 3467:Ruby 3383:2015 3353:2015 3323:2015 3293:link 3279:2016 3252:link 3238:2016 3211:link 3197:2016 3170:link 3156:2016 3129:2013 3044:2013 3010:2013 2940:2015 2914:2015 2888:2015 2859:2014 2807:2015 2781:2015 2755:2015 2729:2012 2695:2012 2604:2020 2574:2020 2489:2017 2424:2018 2389:ISBN 2312:ISBN 2170:IDEs 2153:and 2091:and 2087:, a 2041:, a 2025:Opal 2004:, a 1988:RGSS 1958:, a 1945:LLVM 1939:, a 1918:Java 1876:YARV 1816:and 1804:and 1794:Java 1773:and 1761:and 1759:Perl 1734:and 1732:zlib 1716:HTTP 1700:JSON 1696:YAML 1680:REPL 1652:YARV 1635:and 1625:and 1598:and 1592:true 1535:and 1513:and 1496:and 1457:and 1448:and 1427:'s. 1417:Perl 1330:null 1256:Rust 1228:IMAP 1224:SMTP 1159:and 1139:and 1114:and 1067:name 1033:and 1015:The 825:Hash 806:puts 756:gems 746:, a 738:logo 648:and 596:Ruby 580:Lisp 536:Lisp 532:Java 512:Perl 494:and 453:Ruby 424:Rust 420:Ring 364:Perl 356:Lisp 303:YARV 206:Duck 156:1995 149:1995 82:Ruby 7423:-20 7418:-17 7413:-14 7408:-12 7403:-11 7398:-10 7084:-28 7079:-22 7074:-21 7069:-11 6861:-16 6856:-15 6851:-14 6846:-13 6841:-12 6836:-11 6831:-10 6247:999 6242:965 6237:898 6232:860 6227:843 6222:838 6217:764 6212:732 6207:704 6202:690 6197:668 6192:657 6187:646 6155:639 6150:519 6145:518 6140:500 6135:361 6130:306 6125:302 6120:262 6115:261 6110:259 6105:233 6100:228 6095:226 6090:217 6085:216 6080:128 6068:-13 6063:-12 6058:-11 6053:-10 5922:ISO 5615:MPL 5610:MIT 5605:ISC 5578:EPL 5563:BSD 5538:AFL 5156:SQL 5126:PHP 5094:Lua 5029:C++ 4990:APL 4973:Ada 4663:RVM 4638:Pry 4587:IDE 4445:at 4405:255 4341:446 3602:on 2189:Git 2151:RVM 2075:ree 1978:Lua 1941:C++ 1818:get 1814:set 1792:or 1790:C++ 1724:RSS 1720:FTP 1708:CGI 1704:XML 1601:nil 1260:JIT 1232:POP 1220:FTP 1023:or 1005:bar 999:foo 993:obj 987:foo 981:obj 975:obj 524:Ada 479:in 360:Lua 343:CLU 339:C++ 331:Ada 49:to 8226:: 7724:-2 7719:-1 7552:-2 7510:-9 7505:-3 7393:-6 7388:-3 7383:-2 7276:-2 7271:-1 7215:-2 6826:-9 6816:-8 6811:-7 6806:-6 6801:-5 6796:-4 6791:-3 6786:-2 6781:-1 6644:-1 6422:-3 6417:-2 6412:-1 6180:-6 6175:-5 6170:-3 6165:-2 6160:-1 6048:-9 6043:-8 6038:-7 6033:-6 6028:-5 6023:-4 6018:-3 6013:-1 6008:-0 6003:31 5998:17 5993:16 5942:– 5938:– 5104:ML 5059:Go 5034:C# 4508:; 4407:, 4377:, 4343:, 4269:, 4187:, 4092:. 4088:. 4063:. 4037:. 3984:. 3951:. 3934:. 3906:. 3870:. 3844:. 3840:. 3814:. 3788:. 3762:. 3758:. 3732:. 3678:. 3658:}} 3654:{{ 3624:. 3610:^ 3575:. 3550:. 3525:. 3499:. 3495:. 3469:. 3465:. 3435:. 3420:^ 3403:. 3399:. 3369:. 3343:. 3339:. 3313:. 3309:. 3289:}} 3285:{{ 3269:. 3248:}} 3244:{{ 3228:. 3207:}} 3203:{{ 3166:}} 3162:{{ 3146:. 3026:. 2956:. 2878:. 2867:^ 2849:. 2823:. 2715:. 2681:. 2631:. 2612:^ 2564:. 2546:. 2509:. 2505:. 2479:. 2475:. 2471:. 2441:. 2397:. 2387:. 2361:^ 2340:. 2329:^ 2320:. 2296:^ 2279:. 2268:^ 2191:. 2176:. 2142:, 2138:, 1970:VM 1966:' 1906:. 1890:, 1871:. 1856:. 1802:C# 1784:, 1736:Tk 1730:, 1726:, 1722:, 1718:, 1714:, 1710:, 1706:, 1702:, 1698:, 1621:, 1561:, 1557:, 1531:, 1527:, 1509:, 1444:, 1412:. 1396:, 1392:, 1380:, 1349:, 1313:my 1226:, 1222:, 1093:). 1012:). 972:if 923:. 845:== 652:. 644:, 640:, 636:, 538:. 530:, 526:, 522:, 518:, 514:, 502:, 483:. 463:, 459:, 426:, 422:, 418:, 416:Nu 414:, 410:, 406:, 402:, 398:, 394:, 390:, 386:, 370:, 366:, 362:, 358:, 354:, 345:, 341:, 337:, 333:, 317:, 313:, 309:, 305:, 301:, 297:, 241:OS 212:, 208:, 116:, 112:, 108:, 104:: 7217:) 7213:( 5988:9 5983:7 5978:6 5973:4 5968:3 5963:2 5958:1 5914:e 5907:t 5900:v 5263:e 5256:t 5249:v 5141:R 5024:C 4931:e 4924:t 4917:v 4475:e 4468:t 4461:v 4129:. 4104:. 4074:. 4049:. 4022:. 3995:. 3969:. 3881:. 3855:. 3826:. 3799:. 3774:. 3744:. 3717:. 3690:. 3664:) 3636:. 3587:. 3561:. 3536:. 3511:. 3481:. 3450:. 3414:. 3385:. 3355:. 3325:. 3295:) 3281:. 3254:) 3240:. 3213:) 3199:. 3172:) 3158:. 3131:. 3046:. 3012:. 2967:. 2942:. 2916:. 2890:. 2861:. 2834:. 2809:. 2783:. 2757:. 2731:. 2697:. 2667:. 2642:. 2606:. 2576:. 2520:. 2491:. 2456:. 2426:. 2385:3 2355:. 2290:. 1865:C 1682:) 1674:C 1665:. 1639:) 1604:) 1545:) 1479:) 1082:} 1079:} 1076:} 1070:: 1064:{ 1061:: 1055:{ 1052:: 1046:{ 1043:= 1027:. 1002:. 996:. 984:. 860:} 848:{ 842:} 836:: 830:{ 818:} 815:b 812:+ 809:a 803:{ 800:) 797:b 794:, 791:a 788:( 782:= 779:f 590:" 396:D 349:, 234:C 189:) 158:) 72:) 66:( 61:) 57:( 43:. 23:.

Index

Ruby on Rails
help improve it
make it understandable to non-experts
Learn how and when to remove this message

Paradigm
Multi-paradigm
functional
imperative
object-oriented
reflective
Designed by
Yukihiro Matsumoto
Developer
Stable release
Edit this on Wikidata
Typing discipline
Duck
dynamic
strong
Scope
C
OS
Cross-platform
License
Ruby License
Filename extensions
ruby-lang.org
implementations
Ruby MRI

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.