davideisinger.com

My personal website
Log | Files | Refs | README

www-sitepoint-com-6vwmef.txt (13300B)


      1 [1]
      2 
      3   • [3][                    ]
      4   • [4]Blog
      5      6       □ [5]Free Tech Books →
      7       □ [6]AI →
      8       □ [7]JavaScript
      9       □ [8]Computing
     10       □ [9]Design & UX
     11       □ [10]HTML & CSS
     12       □ [11]Entrepreneur
     13       □ [12]Web
     14       □ [13]PHP
     15       □ [14]WordPress
     16       □ [15]Mobile
     17       □ [16]Programming
     18       □ [17]Python →
     19   • [18]Forum
     20   • [19]Library
     21   • [20]Login
     22   • [21]Join Premium
     23 
     24 [22]Join Premium
     25 [23][                    ]
     26 
     27   • [26]Free Tech Books
     28   • [27]AI
     29   • [28]JavaScript
     30   • [29]Computing
     31   • [30]Design & UX
     32   • [31]HTML & CSS
     33   • [32]Entrepreneur
     34   • [33]Web
     35   • [34]PHP
     36   • [35]WordPress
     37   • [36]Mobile
     38   • [37]Programming
     39   • [38]Python
     40 
     41 [41]Ruby
     42 
     43 The History of Ruby
     44 
     45 [42][1433174717]
     46 
     47 [43]Jesse Herrick
     48 July 26, 2014
     49 Share
     50 
     51 rubygrows
     52 
     53 The Ruby language is 21 years old. Its strong community and adoption by the
     54 open source community has kept this language steady and improving. Ruby has
     55 changed drastically over the years. It has grown from a young child to the
     56 strong adult that it is today. But it didn’t get that way overnight. Let’s take
     57 a look at the life of the Ruby programming language.
     58 
     59 Note: This article is packed with metaphors (language to human), so be
     60 prepared.
     61 
     62 Birth (1993)
     63 
     64 Ruby was born in 1993, conceieved in a discussion between Yukihiro Matsumoto
     65 (“Matz”) and a colleague. They were discussing the possibility of an
     66 object-oriented scripting-language. Matz stated in [49]ruby-talk:00382 that he
     67 knew Perl, but did not like it very much; that it had the smell of a “toy”
     68 language. He also discussed that he knew Python, but didn’t like it because it
     69 wasn’t a true object-oriented programming language.
     70 
     71 Matz wanted a language perfect for his needs:
     72 
     73   • Syntactically Simple
     74   • Truly Object-Oriented
     75   • Having Iterators and Closures
     76   • Exception Handling
     77   • Garbage Collection
     78   • Portable
     79 
     80 Having looked around and not found a language suited for him, Yukihiro
     81 Matsumoto decided to create his own. After spending several months writing an
     82 interpreter, Matz finally published the first public version of Ruby (0.95) to
     83 various Japanese domestic newsgroups in December, 1995. You can still download
     84 the infant version of Ruby [50]here at your own risk.
     85 
     86 Toddler Years
     87 
     88 Ruby became a toddler (n.: a young child who is just beginning to walk) when
     89 Ruby 1.0 was released in December, 1996. Ruby 1.1 shortly followed in August of
     90 1997, and the first stable version of Ruby (1.2) was released in December of
     91 1998.
     92 
     93 At this point in time, Ruby was localized to Japan only, but it would soon
     94 spread to other parts of the world…
     95 
     96 Primary School Years
     97 
     98 In 1998, Matz created a simple English homepage for Ruby. However, Ruby was
     99 still very localized to Japan. In trying to further this expansion, the first
    100 English language Ruby mailing list, [51]Ruby-Talk, was created. Ruby was
    101 beginning to spread beyond Japan.
    102 
    103 Ruby-Talk is still very active today, and you can subscribe to it [52]here.
    104 
    105 In October of 1999, Yukihiro Matsumoto and Keiju Ishitsuka wrote the first book
    106 on the Ruby programming language: The Object-oriented Scripting Language Ruby.
    107 Ruby was beginning to get very popular in Japan, and spreading rapidly to
    108 English-speaking countries.
    109 
    110 In 2001, the first English book on Ruby, Programming Ruby (“The Pickaxe”), was
    111 published in 2001. With this new information on Ruby, many more people were
    112 able to learn the language.
    113 
    114 Ruby 1.8 was released in 2003. This release made large amounts of changes to
    115 the agile 10-year-old language. Including:
    116 
    117   • Duck Typing (looks like a duck, swims like a duck, quacks like a duck: it’s
    118     a duck)
    119   • Fully Qualified Names (Foo::Bar)
    120   • Native YAML Support
    121   • WEBrick
    122   • StringIO
    123   • open-uri
    124   • PP (Pretty Printer for Hash#inspect)
    125   • ruby -run (UNIX commands for all! ruby -run -e mkdir foo)
    126   • And many other minor features
    127 
    128 In 2004, RubyGems was released to the public. Good things started happening
    129 next…
    130 
    131 The Rebellious Teenager
    132 
    133 In 2005, Ruby use took off. The reason: Ruby on Rails. This new framework
    134 changed the history of rapid web development. Ruby had been used in the past to
    135 write CGI scripts, but Ruby on Rails took this a step further. Rails has a
    136 Model-View-Controller structure that focuses on “convention over
    137 configuration”, which is great for developing web applications.
    138 
    139 People loved it. So much so that, the Ruby community was almost taken over by
    140 the Rails framework. Ruby in turn became very popular.
    141 
    142 In March of 2007, Ruby 1.8.6 was released, with 1.8.7 following in May of 2008.
    143 At this point, Ruby was at its peak. Mac OS X even began shipping with it in
    144 2007. At this point, Ruby was 15 years old.
    145 
    146 Ruby 1.9 (development version) was released in December, 2007, then stabilized
    147 4 years later (2011) as Ruby 1.9.3. Ruby 1.9.3 was the production version of
    148 1.9.2. These versions brought new changes to the language, such as:
    149 
    150   • Significant speed improvements
    151   • New methods
    152   • New hash syntax ({ foo: 'bar' })
    153   • RubyGems included
    154   • New Socket API (IPv6 support)
    155   • Several random number generators
    156   • Regular Expression improvements
    157   • File loading performance improvements
    158   • Test::Unit Improvements
    159   • New encoding support
    160   • More string formatting tweaks
    161   • And so much more
    162 
    163 Ruby was making the transition from a rebellious teenager to a strong adult as
    164 it turned 18 with Ruby 1.9.3.
    165 
    166 Strong Adult
    167 
    168 Ruby 2.0.0 was released in February 2013 and brought many stabilizing changes
    169 to the language. Among them are:
    170 
    171   • More speed improvements
    172   • Refinements (safe monkey patching)
    173   • Keyword arguments
    174   • UTF-8 by default
    175   • New regular expressions engine
    176   • Optimized garbage collection
    177   • The addition of built-in syntax documentation (ri ruby:syntax)
    178 
    179 Unlike 1.9.x, which broke numerous gems with its changes, 2.0.0 was almost
    180 completely backwards compatible with 1.9.3. In addition, Heroku, one of the
    181 leading Ruby/Rails hosts upgraded to 2.0.0 quickly, causing earlier than usual
    182 adoption by new and existing projects. The Ruby language was (and is) in its
    183 golden age.
    184 
    185 Ruby 2.1.0 was released on Christmas day of 2013. It brought several minor
    186 changes to the language. But the biggest news of 2.1.0 was [53]semantic
    187 versioning, a way to properly version a project without breaking dependencies
    188 by accident.
    189 
    190 Ruby 2.1.1 was released on Ruby’s 21st birthday (February 24, 2014). Ruby is
    191 now legally allowed to drink in the US (not that we’d want it to). This version
    192 was mainly speed improvements and bugfixes. Shortly after 2.1.1, Ruby 2.1.2 was
    193 released in May of 2014. 2.1.2 consists of more bugfixes and is the current
    194 stable version of Ruby.
    195 
    196 The Future
    197 
    198 Ruby is a great language. Matz wanted a programming language that suited his
    199 needs, so he built one. This is an inspiring story of software development: if
    200 you can’t find something that you like, program it yourself. From 0.95 to
    201 2.1.2, Ruby has struck the awe of those who wished to program the way they
    202 wanted, not the way the machine wanted.
    203 
    204 We can’t know the future of the Ruby language, but we can predict it based on
    205 the past. I believe that the Ruby language, and its fantastic community will
    206 continue furthering the language above and beyond what others think is
    207 possible, and projects built using it will do the same.
    208 
    209 Share This Article
    210 
    211 
    212 [59]Jesse Herrick
    213 [60]Jesse Herrick
    214 
    215 Jesse Herrick is an avid Ruby developer who specializes in web development. He
    216 is a back-end developer at [61]Littlelines and loves programming. You can read
    217 his personal blog at: [62]https://jesse.codes.
    218 
    219     [63][64]
    220 
    221 
    222 GlennGhistoryruby
    223 
    224 Up Next
    225 
    226 [65]How to Build an Interactive History Map with WRLD
    227 [66]How to Build an Interactive History Map with WRLD[67]Adrian Try
    228 [68]Digital Fonts: A Condensed History
    229 [69]Digital Fonts: A Condensed History[70]Alex Bigman
    230 [71]A History of CSS Image Replacement
    231 [72]A History of CSS Image Replacement[73]Baljeet Rathi
    232 [74]Making Alternative ’80s Film History Come to Life with Photoshop
    233 [75]Making Alternative ’80s Film History Come to Life with Photoshop[76]
    234 Gabrielle Gosha
    235 [77]10 Years of Mobile Industry History in 10 Minutes
    236 [78]10 Years of Mobile Industry History in 10 Minutes[79]Dirk Reagle
    237 [80]How to Modify the Browser History in Complex HTML5 and JavaScript
    238 Applications
    239 [81]How to Modify the Browser History in Complex HTML5 and JavaScript
    240 Applications[82]Craig Buckler
    241 
    242   • Stuff we do
    243 
    244   • [83]Premium
    245   • [84]Newsletters
    246   • [85]Forums
    247 
    248   • About
    249 
    250   • [86]Our story
    251   • [87]Terms of use
    252   • [88]Privacy policy
    253   • [89]Corporate memberships
    254 
    255   • Contact
    256 
    257   • [90]Contact us
    258   • [91]FAQ
    259   • [92]Publish your book with us
    260   • [93]Write an article for us
    261   • [94]Advertise
    262 
    263   • Connect
    264 
    265   • [95][96][97]
    266 
    267 © 2000 – 2024 SitePoint Pty. Ltd.
    268 
    269 This site is protected by reCAPTCHA and the Google[98] Privacy Policy and[99]
    270 Terms of Service apply.
    271 
    272 <img height="1" width="1" style="display:none" src="https://www.facebook.com/
    273 tr?id=721455246308784&ev=PageView&noscript=1"} />
    274 
    275 References:
    276 
    277 [1] https://www.sitepoint.com/
    278 [4] https://www.sitepoint.com/blog/
    279 [5] https://www.sitepoint.com/premium/library/free/?ref_source=blog_nav
    280 [6] https://www.sitepoint.com/ai/
    281 [7] https://www.sitepoint.com/javascript/
    282 [8] https://www.sitepoint.com/computing/
    283 [9] https://www.sitepoint.com/design-ux/
    284 [10] https://www.sitepoint.com/html-css/
    285 [11] https://www.sitepoint.com/entrepreneur/
    286 [12] https://www.sitepoint.com/web/
    287 [13] https://www.sitepoint.com/php/
    288 [14] https://www.sitepoint.com/wordpress/
    289 [15] https://www.sitepoint.com/mobile/
    290 [16] https://www.sitepoint.com/programming/
    291 [17] https://www.sitepoint.com/python/
    292 [18] https://www.sitepoint.com/community/
    293 [19] https://www.sitepoint.com/premium/library/
    294 [20] https://www.sitepoint.com/premium/sign-in/
    295 [21] https://www.sitepoint.com/premium/pricing/?ref_source=sitepoint&ref_medium=topnav
    296 [22] https://www.sitepoint.com/premium/pricing/?ref_source=sitepoint&ref_medium=topnav
    297 [26] https://www.sitepoint.com/premium/library/free/?ref_source=blog_nav
    298 [27] https://www.sitepoint.com/ai/
    299 [28] https://www.sitepoint.com/javascript/
    300 [29] https://www.sitepoint.com/computing/
    301 [30] https://www.sitepoint.com/design-ux/
    302 [31] https://www.sitepoint.com/html-css/
    303 [32] https://www.sitepoint.com/entrepreneur/
    304 [33] https://www.sitepoint.com/web/
    305 [34] https://www.sitepoint.com/php/
    306 [35] https://www.sitepoint.com/wordpress/
    307 [36] https://www.sitepoint.com/mobile/
    308 [37] https://www.sitepoint.com/programming/
    309 [38] https://www.sitepoint.com/python/
    310 [41] https://www.sitepoint.com/ruby/
    311 [42] https://www.sitepoint.com/author/jherrick/
    312 [43] https://www.sitepoint.com/author/jherrick/
    313 [49] http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/382
    314 [50] https://ftp.ruby-lang.org/pub/ruby/1.0/
    315 [51] http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml
    316 [52] https://www.ruby-lang.org/en/community/mailing-lists/
    317 [53] http://semver.org/
    318 [59] https://www.sitepoint.com/author/jherrick/
    319 [60] https://www.sitepoint.com/author/jherrick/
    320 [61] http://www.littlelines.com/
    321 [62] https://jesse.codes/
    322 [63] https://github.com/JesseHerrick
    323 [64] https://twitter.com/JesseHerrick
    324 [65] https://www.sitepoint.com/how-to-build-an-interactive-history-map-with-wrld/
    325 [66] https://www.sitepoint.com/how-to-build-an-interactive-history-map-with-wrld/
    326 [67] https://www.sitepoint.com/author/atry/
    327 [68] https://www.sitepoint.com/digital-fonts-condensed-history/
    328 [69] https://www.sitepoint.com/digital-fonts-condensed-history/
    329 [70] https://www.sitepoint.com/author/alex-bigman/
    330 [71] https://www.sitepoint.com/css-image-replacement-text-indent-negative-margins-and-more/
    331 [72] https://www.sitepoint.com/css-image-replacement-text-indent-negative-margins-and-more/
    332 [73] https://www.sitepoint.com/author/brathi/
    333 [74] https://www.sitepoint.com/making-alternative-80s-film-history-come-life-photoshop/
    334 [75] https://www.sitepoint.com/making-alternative-80s-film-history-come-life-photoshop/
    335 [76] https://www.sitepoint.com/author/ggosha/
    336 [77] https://www.sitepoint.com/the-advancements-in-mobile-design-and-how-it-has-developed-into-a-strong-industry/
    337 [78] https://www.sitepoint.com/the-advancements-in-mobile-design-and-how-it-has-developed-into-a-strong-industry/
    338 [79] https://www.sitepoint.com/author/dreagle/
    339 [80] https://www.sitepoint.com/javascript-history-pushstate/
    340 [81] https://www.sitepoint.com/javascript-history-pushstate/
    341 [82] https://www.sitepoint.com/author/craig-buckler/
    342 [83] https://www.sitepoint.com/premium/library/
    343 [84] https://www.sitepoint.com/newsletters/
    344 [85] https://www.sitepoint.com/community/
    345 [86] https://www.sitepoint.com/about-us/
    346 [87] https://www.sitepoint.com/legals/
    347 [88] https://www.sitepoint.com/privacy-policy/
    348 [89] https://www.sitepoint.com/premium-for-teams/
    349 [90] https://www.sitepoint.com/contact-us/
    350 [91] https://support.sitepoint.com/hc/en-us
    351 [92] https://sitepoint.typeform.com/to/HtAXVN
    352 [93] https://www.sitepoint.com/write-for-us/
    353 [94] https://www.sitepoint.com/partnerships/
    354 [95] https://www.facebook.com/sitepoint
    355 [96] https://twitter.com/sitepointdotcom
    356 [97] https://www.sitepoint.com/sitepoint.rss
    357 [98] https://policies.google.com/privacy
    358 [99] https://policies.google.com/terms