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