{"id":15878,"date":"2024-11-11T06:22:32","date_gmt":"2024-11-11T06:22:32","guid":{"rendered":"http:\/\/TheNextWeb=1411240"},"modified":"2024-11-11T06:22:32","modified_gmt":"2024-11-11T06:22:32","slug":"at-30-years-old-is-ruby-in-a-mid-life-crisis-or-a-renaissance","status":"publish","type":"post","link":"https:\/\/www.londonchiropracter.com\/?p=15878","title":{"rendered":"At 30 years old, is Ruby in a mid-life crisis or a renaissance?"},"content":{"rendered":"\n<p>Ruby\u2019s creator, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Yukihiro_Matsumoto\" target=\"_blank\" rel=\"nofollow noopener\">Yukihiro Matsumoto<\/a> (Matz), <a href=\"https:\/\/www.ruby-lang.org\/en\/about\/\" target=\"_blank\" rel=\"nofollow noopener\">released the first public version of the programming language in December 1995<\/a>, making Ruby just shy of its 30th birthday. It spread across Japanese-language Usenet newsgroups, a popular way of exchanging conversation and media before the World Wide Web, and then reached broader communities throughout the late 1990s.<\/p>\n<p>This was thanks to Ruby\u2019s friendly community and, in no small part, thanks to Matz. (The community has a motto, \u201cMatz is nice, and so we are nice.\u201d) At this year\u2019s annual European Ruby Konferenze \u2014 EuRoKu \u2014 in Sarajevo, Matz said he created Ruby because he was \u201clazy and full of hubris.\u201d<\/p>\n<p>That doesn\u2019t sound like a justification for creating and maintaining a <a href=\"https:\/\/thenextweb.com\/topic\/programming-language\" target=\"_blank\" rel=\"noopener\">programming language<\/a> for 30 years, but it\u2019s a sign of his derisive humbleness that feeds Ruby and has kept it a generally welcoming community over the decades.<\/p>\n<h2>30 years of Ruby history<\/h2>\n<p>The programming language emerged when the rapid growth of web-related technologies embraced lightweight, easier-to-learn, and easier-to-run languages such as PHP and Python. While all three languages have myriad other uses, timing and external factors often propelled them into broader popularity. For Ruby, this was the <a href=\"https:\/\/rubyonrails.org\/\" target=\"_blank\" rel=\"nofollow noopener\">Rails<\/a> framework in 2004 and two books \u2014 Dave Thomas\u2019s <a href=\"https:\/\/pragprog.com\/titles\/tpp20\/the-pragmatic-programmer-20th-anniversary-edition\/\" target=\"_blank\" rel=\"nofollow noopener\">Pragmatic Programmer<\/a> in 1999 and <a href=\"https:\/\/poignant.guide\/\" target=\"_blank\" rel=\"nofollow noopener\">WHY\u2019S (poignant) Guide to Ruby<\/a> in 2005*.<\/p>\n<div class=\"inarticle-wrapper latest channel-cta hs-embed-tnw\">\n<div id=\"hs-embed-tnw\" class=\"channel-cta-wrapper\" readability=\"8.5\">\n<div class=\"channel-cta-img\"><img decoding=\"async\" class=\"js-lazy\" src=\"https:\/\/s3.eu-west-1.amazonaws.com\/tnw.events\/hardfork-2018\/uploads\/visuals\/tnw-newsletter.png\"><\/div>\n<p><noscript><img decoding=\"async\" src=\"https:\/\/s3.eu-west-1.amazonaws.com\/tnw.events\/hardfork-2018\/uploads\/visuals\/tnw-newsletter.png\"><\/noscript><\/p>\n<div class=\"channel-cta-input\" readability=\"12\">\n<p class=\"channel-cta-title\">The ???? of EU tech<\/p>\n<p class=\"channel-cta-tagline\">The latest rumblings from the EU tech scene, a story from our wise ol&#8217; founder Boris, and some questionable AI art. It&#8217;s free, every week, in your inbox. Sign up now!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>While Thomas\u2019s book didn\u2019t cover Ruby in detail, it mentions it, and the author continued to promote the language for many years after publishing it. The book, in general, has been a long-term success, and contributed to increasing interest in Ruby in its early life.<\/p>\n<p>Sometimes, Ruby on Rails feels like a blessing and a curse for Ruby itself. To many developers, they are one and the same thing. Rails events typically have more attendees. Many of the recent features and changes in Ruby came upstream from Rails.<\/p>\n<p>Finally, Rails\u2019 creator and founder of 37Signals, <a href=\"https:\/\/dhh.dk\/\" target=\"_blank\" rel=\"nofollow noopener\">David Heinemeier Hansson<\/a> (DHH), is a far more recognised name in the wider programming and tech community and is a vocal presence online. One attendee at EuRoKu I spoke to stated that as much as the community doesn\u2019t want to admit it, the two projects are highly connected.<\/p>\n<p>Many Web 2.0 sites that emerged in the early 2000s ran on Rails, and many still do (at least in part), including Airbnb, GitHub, Twitter (now X), Netflix, and Shopify (another major Ruby contributor and sponsor). Rails introduced many features that any older developer (like myself) will remember how groundbreaking they were, and many younger developers will now take it for granted. As a Drupal PHP developer at the time, I remember looking at features such as database table creation, management, and migration with envy.<\/p>\n<p>While interest and search term tracking for Rails shows at a quarter of what it once was, actual usage remains reasonably close to its peak. This shows that many developers using it are at a senior level and largely know what they\u2019re doing.<\/p>\n<p>The 2024 Planet Argon survey confirms this: <a href=\"https:\/\/railsdeveloper.com\/survey\/2024\/#how-many-years-have-you-been-developing-with-rails\" target=\"_blank\" rel=\"nofollow noopener\">nearly 70% of respondents had more than seven years experience<\/a> and have run their applications for about <a href=\"https:\/\/railsdeveloper.com\/survey\/2024\/#how-long-has-your-ruby-on-rails-application-been-in-development\" target=\"_blank\" rel=\"nofollow noopener\">the same length of time<\/a>. I don\u2019t know how many <em>new<\/em> projects choose Rails, but there are enough pre-existing ones to maintain a healthy interest for a 20-year-old project.<\/p>\n<p>If you remove the several-year peak of Ruby\u2019s interest after Rails\u2019 release, then Ruby is as popular as it was 30 years ago. <a href=\"https:\/\/www.tiobe.com\/tiobe-index\/ruby\/\" target=\"_blank\" rel=\"nofollow noopener\">According to Tiobe statistics<\/a>, it\u2019s slightly more popular. <a href=\"https:\/\/survey.stackoverflow.co\/2023\/#most-popular-technologies-language-prof\" target=\"_blank\" rel=\"nofollow noopener\">The 2023 Stack Overflow survey<\/a> puts Ruby\u2019s popularity at 16 out of 50 languages, and <a href=\"https:\/\/spectrum.ieee.org\/top-programming-languages-2024\" target=\"_blank\" rel=\"nofollow noopener\">an IEEE survey from 2024<\/a> and <a href=\"https:\/\/pypl.github.io\/PYPL.html\" target=\"_blank\" rel=\"nofollow noopener\">PYPL<\/a> reports about the same.<\/p>\n<p>It\u2019s easy to draw negative or inaccurate statistical comparisons to an unprecedented blip, but abstract them out over time, and you see a different story.<\/p>\n<p>Every language with a few decades under its belt has a degree of technical or community baggage, and I felt this same impression with Ruby in general and at the EuRuKo event. The community was friendly and welcoming but full of references and name drops that meant nothing to me. Granted, all communities do this to a degree, and maybe other events support newcomers, but there were few beginner-level talks.<\/p>\n<h2>The next 30 years<\/h2>\n<p>But enough of the distant past. What has Ruby recently added, or changed, or planned to keep the current developers interested and maybe attract new ones?<\/p>\n<p>Ruby is an interpreted language, meaning it\u2019s converted from human-readable to machine-runnable code when run, often in a virtual machine that runs on a physical machine. One modern criticism of Ruby, and all interpreted languages, is that they are too slow for the scale of modern applications.<\/p>\n<p>Ruby has a default interpreter, CRuby (formerly \u201cMatz\u2019s Ruby Interpreter\u201d), that translates the code into instructions run by the Ruby virtual machine. But Ruby and the community have added alternative and more performant interpreters, especially in the past few years, including multiple \u201cjust in time\u201d (JIT) compiler options, which is a popular technique for bringing compiled code speed to interpreted languages.<\/p>\n<p>Other programming languages, such as C, C++, and Rust, are compiled languages, turning human-readable code into machine-readable code before it\u2019s run. While not primarily designed for running as a compiled language, other options make it possible with Ruby.<\/p>\n<p>However, compiling languages is nothing new, and as I mentioned in <a href=\"https:\/\/thenextweb.com\/news\/the-future-of-cloud-native-kubernetes\" target=\"_blank\" rel=\"noopener\">my KubeCon EU wrap-up<\/a>, WebAssembly (WASM) is the present for some and the future for many. Principally, WASM lets you run supported languages in the browser (but also now offers much more, maybe that\u2019s a future post), bringing complex and powerful applications to the browser. Since 2022, Ruby has been able to compile to WASM. If you\u2019ve used Mastodon in the browser, it\u2019s a Ruby on Rails application running as WASM.<\/p>\n<p>When Ruby began life, monoliths were the common application architecture pattern \u2014 one large codebase written in one language that handles all functionality and services. In recent years, microservices has become the more popular architectural design, at least in an ideal world.<\/p>\n<p>Instead of one large, multifunctional, monolingual codebase, an application is broken up into a diverse array of code bases and languages that communicate with each other. Ruby was never really designed with this architecture in mind, and you can track its decline along parallel lines with the increase in microservices.<\/p>\n<p>In recent years, Ruby has added features to keep up with changes that may surprise or tempt non-Ruby developers. These include asynchronous and threaded code, allowing applications to communicate simultaneously with other applications and services.<\/p>\n<p>Many modern languages support these features, but Ruby\u2019s syntax is simpler than JavaScript. Developers at EuRuKo were excited by some of the other forthcoming features, all of which continue to add creative options for <a href=\"https:\/\/thenextweb.com\/topic\/coding\" target=\"_blank\" rel=\"noopener\">coding<\/a> with the language.<\/p>\n<p>While many developers may now dismiss Ruby as an option to start with, it has also inspired many other languages directly and indirectly that may suit the contemporary microservices-fuelled developer.<\/p>\n<p><a href=\"https:\/\/elixir-lang.org\/\" target=\"_blank\" rel=\"nofollow noopener\">Elixir<\/a>, first appearing 12 years ago, drew inspiration from Ruby, and its creator, Jos\u00e9 Valim, came from the Ruby community. Elixir is more optimised for high concurrency and low latency, making it well-suited for finance and telecommunications industries.<\/p>\n<p><a href=\"https:\/\/crystal-lang.org\/\" target=\"_blank\" rel=\"nofollow noopener\">Crystal<\/a>, created ten years ago, also has members of the Ruby community as maintainers. Its syntax is more inspired by Ruby but adds features that make the language more stable and reliable, including running as compiled instead of interpreted.<\/p>\n<h2>Community motivated<\/h2>\n<p>Why do long-term Ruby developers still use it despite the plethora of new and shiny options they can choose from? Dave Thomas told me about how he discovered Ruby amongst dozens of other languages he played with on Usenet forums back in the 1990s. \u201cI was blown away. I played with Ruby for a day. I played with it the next day. And I kept playing with it after that, and it became my programming language of choice when I had a choice.\u201d<\/p>\n<p>And why does Thomas continue to use Ruby 30 years later? \u201cRuby lets you find ways to express yourself without dictating too much. Like when you write prose and are trying to find the right phrasing and structure for your words, Ruby lets you do the same thing with code. You can experiment with nice ways to express things, not just one way.\u201d<\/p>\n<p>I am not likely to switch any of my current projects to Ruby, and I am unsure how many developers established using other languages would either. However, one attitude I heard over and over again when speaking with the Ruby community was \u201cfreedom of creative choice.\u201d<\/p>\n<p>Many other programming language communities are full of advice on \u201cthe right way\u201d to do things, which is, of course, different, depending on who you speak to. The Ruby community follows a different approach, providing gently opinionated tools to let you find your own way.<\/p>\n<p>The technical world is full of trends that come and go and people who tell you that you\u2019re wrong for your decisions. If the Ruby community is one of the few that doesn\u2019t judge, then no matter its trend or usage percentages, long may it last.<\/p>\n<p>_______<\/p>\n<p>* If you haven\u2019t read WHY\u2019s guide, it\u2019s available for free and is in equal parts programming book, comic, and surreal journey of self-realisation. Because of this strange combination, it\u2019s divisive. Some say it was the only book they ever learned programming from. Others find it an utterly confounding and confusing mess. Still, its unique style and mysterious author also increased interest in the language during its nascent days.<\/p>\n<p> <a href=\"https:\/\/thenextweb.com\/news\/at-30-years-old-is-ruby-in-a-mid-life-crisis-or-a-renaissance\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ruby\u2019s creator, Yukihiro Matsumoto (Matz), released the first public version of the programming language in December 1995, making Ruby just shy of its 30th birthday. It spread across Japanese-language Usenet newsgroups, a&#8230;<\/p>\n","protected":false},"author":1,"featured_media":15879,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts\/15878"}],"collection":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15878"}],"version-history":[{"count":0,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/posts\/15878\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=\/wp\/v2\/media\/15879"}],"wp:attachment":[{"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.londonchiropracter.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}