Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby in Japan vs the World

Ruby in Japan vs the World

Talk about Ruby for non-Rubyists.

Ruby is said to be very popular in Japan and many companies use it, but is it true? Let's see what things are happening and how the situation looks like.

Andrey Novikov

March 22, 2025
Tweet

More Decks by Andrey Novikov

Other Decks in Programming

Transcript

  1. Ruby in Japan vs the World Andrey Novikov, Evil Martians

    Osaka Web Designers and Developers Meetup 22 March 2025
  2. About me I’m Andrey @Envek on GitHub and everywhere Back-end

    engineer at Evil Martians Ruby, Go, PostgreSQL, Docker, k8s… Living in Suita, Osaka for 2 years Love to ride mopeds, motorcycles, and cars over Japan
  3. Ruby A programmer’s best friend # Output "I love Ruby"

    say = "I love Ruby" puts say # Output "I *LOVE* RUBY" say['love'] = "*love*" puts say.upcase # Output "I *love* Ruby" # five times 5.times { puts say } ruby-lang.org
  4. Ruby Ruby is a general-purpose programming language, interpreted and high-level

    You need an interpreter, you don’t have to understand how it works under the hood. Object-oriented yet functional, influenced by Perl and Smalltalk Everything is an object, even numbers and functions. No primitive types. Designed for programmer productivity and readability Care less about runtime performance, more about developer happiness. Highly dynamic: you can change almost everything at runtime It is called monkey patching: amend classes, redefine methods, reassign constants. Created by Yukihiro Matsumoto in 1995 So it was born in Japan! And still developed by mostly Japanese core team 🇯🇵
  5. Object-oriented Everything is an object, even numbers and functions. No

    primitive types. Example: numeric overloads for ActiveSupport::Duration See activesupport/lib/active_support/core_ext/numeric/time.rb in Ruby on Rails. 1.month + 5.minutes # => 1 month and 5 minutes (1.month + 5.minutes).class # => ActiveSupport::Duration Time.current + 1.month # => 2025-04-22 15:00:00 +0900 # Reopen Numeric class class Numeric # Define month method def month ActiveSupport::Duration.days(self) end end
  6. Functional Callable blocks (procs and lambdas) with closures More about

    this in Threads, callbacks, and execution context in Ruby # Define a lambda y, l = 1, ->(x) { x + y } # Call it l.call(2) # => 3 # Use it for collection transformation [1, 2, 3].map(&l). # => [2, 3, 4] reduce(&:+) # => 9 Threads, callbacks… talk
  7. Pros and cons Pros Easy and quick to start with

    Non-steep learning curve Readable and expressive Almost like English A lot of ready libraries “There is a gem for that” Nice and active community MINASWAN: Matz is nice and so we are nice Cons Slow runtime performance Not the best for CPU-bound tasks Poor parallelism due to GVL GVL: Global VM Lock restricts parallelism, but works well for I/O-bound tasks Memory footprint Debugging might be hard Monkey patching can make code hard to understand
  8. Early days of Ruby (1993-2005) 1993: Matz started working on

    Ruby 1995: Ruby 0.95 released 1996: Ruby 1.0 released 2002: First English book about Ruby published 2003: Ruby 1.8 released Ruby was mostly known in Japan and didn’t have much traction.
  9. Big bang: Ruby on Rails 2005: DHH released famous “Blog

    in 15 minutes” video 見る Ruby on Rails demo Ruby on Rails demo 共有 共有 Everyone: 🤯 Blog in 15 minutes
  10. Ruby on Rails Highly opinionated web framework made possible by

    Ruby dynamic nature Convention over configuration Introspection and metaprogramming to reduce boilerplate No explicit requires for application code Everything is autoloaded, filenames are derived from class names Active Record ORM that maps database tables to Ruby objects and introspects database schema That all allowed really rapid development of web applications!
  11. Boom of startups on Ruby on Rails Twitter (early days)

    Probably was fully rewritten to another tech stack after a few years. GitHub Still uses Ruby on Rails, backports a lot of features to Rails itself. Shopify Runs on Ruby on Rails, manages to serve million RPS on Black Friday. Airbnb Started with Ruby on Rails, but now uses a lot of other technologies. Heroku Ruby on Rails was the first supported language on Heroku.
  12. Great boost for Ruby itself Ruby 1.9 (2007) YARV: move

    from interpretation to bytecode compilation Native threads Sane character encoding support Syntax changes for hashes, lambdas
  13. Alternative Rubies MRI (Matz’s Ruby Interpreter) - The original Ruby

    implementation written on C. TruffleRuby - A high performance implementation built on the GraalVM. JRuby - The Ruby Programming Language on the JVM Java libraries can be called directly, but C-extensions are not supported. mruby - lightweight partial implementation for embedded usage. Artichoke - Bundle Ruby applications into a single WASM binary, Ruby implementation in Rust. and more: https://github.com/codicoscepticos/ruby-implementations Ruby implementations
  14. Great tools from Ruby community Level of user experience provided

    by Ruby itself inspired the community to create great tools, that inspired other communities. Bundler — dependency manager with lockfile Inspired Cargo, CocoaPods RSpec — testing framework Inspired Jest, Mocha RVM and Rbenv — Ruby version managers Inspired pyenv, nvm, asdf, and mise-en-place Capistrano — deployment tool for old server days Inspired many deploy tools like Ansistrano on top of Ansible
  15. Ruby outside of web development Homebrew – package manager for

    macOS (and Linux) Chef and Puppet – configuration management tools Vagrant – virtual machine management DragonRuby – game development
  16. Is Ruby dying? (2015-2020) No Made with ♥ by @jmcharnes.

    It felt stagnant, but it was not dying. isrubydead.com
  17. The pandemic: Ruby’s second wind Why lockdowns and Ruby are

    a perfect match? Ruby is great for prototyping Ruby is great for small teams Ruby is great for remote work
  18. Second rise of Ruby and Rails Ruby 3 (2020): Ractors:

    lightweight concurrency Fibers: cooperative multitasking Type definitions and checking with RBS Ruby 3x3: Ruby 3.0 is 3 times faster than Ruby 2.0 (thanks to JIT) Syntax changes: pattern matching, deconstructions, … …and many more changes: Ruby Evolution Rails 7 (2021) and 8 (2024): one-man-band framework for modern web development Hotwire: modern, HTML-over-the-wire approach Ruby Evolution
  19. Present day Ruby is still a great language for new

    startups: Startups on Rails in 2024
  20. Is Ruby popular in Japan? Yes… Every 10th Ruby developer

    is in Japan Biggest Ruby conferences are in Japan RubyKaigi: 1500+ attendees in 2024 Kaigi on Rails: 700+ attendees in 2024 And a lot of regional Ruby conferences and meetups but Ruby is behind Python, Java, and Go Ranked 8th in popularity (21th worldwide by TIOBE) And isn’t highest paid one too With salaries ranked 9th from ¥4.1M per year 1. https://www.jetbrains.com/lp/devecosystem-2023/ruby/ ↩︎ 2. https://www.tokhimo.com/post/popular-programming-languages-in-japan-2022-1 ↩︎ [1] [2]
  21. Ruby in Japanese companies Cookpad – recipe sharing platform SmartHR

    – HR platform Money Forward – personal finance management RIZAP – unmanned gyms chocoZAP ANDPAD – construction management platform Timee – scheduling platform for gig workers STORES – e-commerce platform Qiita - tech blogging platform KOMOJU – payment gateway for cross-border e-commerce RubyKaigi sponsors
  22. Ruby usage diversity in Japan Not only web development! mRuby

    for embedded systems From keyboards (KeebKaigi) to satellites Popular for educational purposes Often taught in schools and universities. Also SmalRuby – visual Ruby programming for kids. Collaborations with government E.g. Ruby City MATSUE
  23. Let’s go Ruby? Read books and docs: Ruby Quickstart on

    the official site and in-browser Ruby Playground Programming Ruby aka “Pickaxe book” Agile Web Development with Rails Practical Object-Oriented Design Ruby Layered design for RoR applications Martian book with recipes for growing apps Ruby under a microscope for in-depth understanding of how Ruby works Attend meetups and conferences: RubyKaigi Kaigi on Rails And local ones too! Kyobashi.rb meetup Kansai RubyKaigi #08 conference Naniwa.rb meetup Ruby Tuesday meetup (usually online) … (that list isn’t exhaustive!)
  24. Thank you! @Envek @Envek @[email protected] @envek.bsky.social github.com/Envek @evilmartians @evilmartians @[email protected]

    @evilmartians.com evilmartians.com Our awesome blog: evilmartians.com/chronicles! These slides are here: envek.github.io/owddm-ruby-in-japan-vs-world Powered by Slides are here