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

Why (Still) Ruby?

Akira Matsuda
September 24, 2016

Why (Still) Ruby?

Slides for my final keynote "Why (Still) Ruby" at RubyConf Brasil 2016 (the final RubyConf Brasil 😢) http://www.rubyconf.com.br/en/schedule#7eb62dc8b9508ea70bfd1be5f71773d4 #rubyconfbr

Akira Matsuda

September 24, 2016
Tweet

More Decks by Akira Matsuda

Other Decks in Programming

Transcript

  1. I Don't Think So ⚽ Ruby has many new topics

    that you should know ⚽ People are still interested in these stories
  2. Brasil? ⚽ I came all the way from Japan for

    this conference! ⚽ It's your turn to come visit our conference in Japan ⚽ Why don't you?
  3. RubyKaigi.has_many Ruby.committers ⚽ Because most of Ruby core developers live

    in Japan ⚽ We had about 30 Ruby committers at this year's event
  4. "Ruby Committers vs The World" ⚽ 1 hour live discussion

    and Q&A ⚽ Only possible in RubyKaigi because no other conference in the world has this many Ruby committers
  5. Ruby Is Pretty Mature ⚽ 23 years old. Not a

    kid anymore ⚽ Conquered the web world
  6. No!

  7. Slides Are Linked from the Official Site ⚽ http://rubykaigi.org/2016/schedule/ ⚽

    Please check them out if you want to know more details
  8. Slides and Video Are Linked from the Official Site ⚽

    http://rubykaigi.org/2016/schedule/ ⚽ Please check them out if you want to know more details
  9. "You will see the future of the type system in

    Ruby3." ⚽ http://rubykaigi.org/2016/ presentations/yukihiro_matz.html
  10. "Guild" ⚽ Wraps Ruby Thread manipulation ⚽ Influenced by recent

    languages, libraries with strong concurrency system ⚽ His answer to them
  11. Slides and Video Are Linked from the Official Site ⚽

    http://rubykaigi.org/2016/schedule/ ⚽ Please check them out if you want to know more details
  12. Companies That've Been Supporting Ruby Development ⚽ NaCl (supporting Matz:

    since 1997) ⚽ Heroku (Matz, ko1, nobu: since 2011-2012) ⚽ MoneyForward (shyouhei: since 2015)
  13. The Deoptimization Patch ⚽ This patch is his first output

    from MoneyForward ⚽ Will hopefully be merged to 2.4 (?)
  14. Slides Are Linked from the Official Site ⚽ http://rubykaigi.org/2016/schedule/ ⚽

    Please check them out if you want to know more details
  15. Did You Know that Matz is No Longer a Release

    Manager? ⚽ <= 1.8.5 matz ⚽ 1.8.5, 1.8.6, 1.8.7 shyouhei ⚽ 1.9 yugui ⚽ 1.9.3 yugui, mame ⚽ 2.0 mame ⚽ 2.1, 2.2, 2.3, 2.4 naruse
  16. naruse as a Release Manager ⚽ 2.1, 2.2, 2.3, 2.4

    ⚽ Released, and going to release all these Rubies since we decided to release Ruby once per year
  17. Dive into CRuby (naruse) ⚽ He showed us how he

    hacks the C code in ruby core ⚽ He showed us there're so much rooms for improvement
  18. Also, He Stated That ⚽ We can improve not only

    the language core such as VM, but also stdlibs
  19. Ingredients of the Ruby Repo ⚽ The language core ⚽

    stdlibs as C extensions ⚽ stdlibs in Ruby
  20. Stdlibs Tend to Easily Become Unmaintained ⚽ OpenSSL: No maintainer

    until rhe joined ruby-core this year ⚽ WEBRick: Nobody actively maintains
  21. Stdlibs Maintainers ⚽ https://bugs.ruby-lang.org/projects/ ruby/wiki/MaintainersStdlib ⚽ You'll see so many

    "unmaintained" libraries ⚽ And this list is also "unmaintained" indeed
  22. Number of Stdlibs ⚽ Very roughly counted by
 
 %

    cat <(ls lib) <(ls ext) | sed 's/\.rb$//' | sort -u | wc -l
  23. Number of Stdlibs ⚽ 1.6: 79 ⚽ 1.8: 121 ⤴⤴⤴

    ⚽ 1.9: 113 ⤵ ⚽ 2.0: 111 ⤵ ⚽ 2.1: 111 ⚽ 2.2: 107 ⤵ ⚽ 2.3: 105 ⤵ ⚽ 2.4: 102 ⤵
  24. Gemifying Stdlibs ⚽ Recent trend is to "gemify" stdlibs ⚽

    And extract each individual repo under https://github.com/ruby/
  25. Ruby/Tk ⚽ The oldest GUI library in Ruby (since the

    last century!) ⚽ Cross Platform ⚽ Initially created by Matz ⚽ Being maintained by nagai
  26. Pros ⚽ Tarball size ⤵ ⚽ Build time ⤵ ⚽

    No need to add a build option `RUBY_CONFIGURE_OPTS="--with-out-ext=tk,tk/*"` anymore ⚽ Easier to patch, contribute, and release
  27. We're Extracting Stdlibs to Gems ⚽ So everyone can easily

    contribute ⚽ IMO this is the main purpose
  28. Infra as a Code ⚽ Chef / Puppet / Itamae

    ⚽ Serverspec ⚽ Hashicorp products ⚽ winebarrel wares
  29. What is mruby? ⚽ Matz's new toy ⚽ Yet another

    Ruby implementation ⚽ Lightweight ⚽ m is for "Embedded" ⚽ https://github.com/mruby/mruby
  30. making robot with mruby (@yuri_at_earth, 2015) ⚽ http://rubykaigi.org/2015/presentations/ yurie ⚽

    RTOS + LEGO Mindstorms EV3 + Raspberry Pi + mruby ⚽ With a demo
  31. Charming Robots (@juliancheal, 2015) ⚽ http://rubykaigi.org/2015/presentations/ juliancheal ⚽ How to

    control physical devices with Ruby (not mruby) ⚽ With tons of demos
  32. Writing A Gameboy Emulator in Ruby (0xColby) ⚽ http://rubykaigi.org/2016/presentations/ 0xColby.html

    ⚽ Nintendo Gameboy emulator in Ruby ⚽ Was nice that we had this for RubyKaigi 2016 ⚽ Because Nintendo was a RubyKaigi sponsor!
  33. NES Emulator Written in Ruby ⚽ Optcarrot ⚽ Created by

    mame ⚽ https://github.com/mame/optcarrot ⚽ He created this for benchmarking ruby implementations
  34. We Didn't Have a Talk About This at RubyKaigi ⚽

    But he made a talk about this at
 a "regional RubyKaigi" called
 Kawasaki RubyKaigi 01
  35. The Benchmark Shows That ⚽ Optcarrot runs at 20 fps

    in Ruby 2.0 ⚽ The original NES requires 60 fps ⚽ If Ruby became 3x faster, then we can comfortably play NES games with ruby!
  36. mame ⚽ Ruby committer ⚽ Ruby 2.0 release manager ⚽

    Very well known by his another mind- blowing masterpiece
  37. 100 Programming Languages Quine ⚽ https://github.com/mame/quine-relay ⚽ A Ruby code

    that prints a Scala code that prints a Scheme code that prints a ............. Ruby code that prints a Scala code that .............
  38. TRICK ⚽ "Transcendental Ruby Imbroglio Contest for rubyKaigi" ⚽ Weirdest

    Ruby code contest ⚽ So crazy weird that I cannot explain. Please take a look at the repo ⚽ https://github.com/tric/trick2015
  39. Playing with Ruby is Fun! ⚽ Ruby gives us joy

    of programming ⚽ We're sharing such fun at the events
  40. Pwrake: Distributed Workflow Engine based on Rake (@masa16tanaka) ⚽ http://rubykaigi.org/2016/

    presentations/masa16tanaka.html ⚽ A distributed workflow engine designed and used for scientific data processing on cluster
  41. Data Analysis in RUby with daru (@v0dro) ⚽ http://rubykaigi.org/2016/presentations/v0dro.html ⚽

    A "library for analysis, cleaning, manipulation and visualization of data" ⚽ So many features for scientific computing ⚽ https://github.com/v0dro/daru
  42. SciRuby Machine Learning Current Status and Future (mrkn) ⚽ Machine

    learning with Ruby ⚽ Introduced SciRuby project, showed that there're so many works to be done ⚽ And urged the audience to join the project
  43. Isomorphic Web Programming (@youchan) ⚽ She demonstrated her own React-like

    framework built on top of Opal ⚽ That can share same Ruby code between Rails and the frontend
  44. Web Programming with Ruby ⚽ I'm sure majority of you

    here use Ruby for this ⚽ Rails programmer?
  45. Why No Rails Talk? ⚽ RubyKaigi may accept Rails talks

    if they are as technically interesting (for me) as other Ruby talks ⚽ But we just didn't get none of such proposal
  46. At That Presentation, I Revealed Some Ideas to Make Rails

    Faster ⚽ Some of them are already implemented or PRed
  47. Unicode on Rails ⚽ As I introduced earlier in this

    talk, Ruby's built-in Unicode treatment is being improved by Martin-sensei ⚽ Rails also has its own Unicode module ⚽ Can't we unify them?
  48. My Future Plans on Rails ⚽ I'll work on these

    perf things after this conference
  49. Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽

    A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer
  50. I Authored ⚽ stateful_enum ⚽ motorhead ⚽ database_rewinder ⚽ jb

    ⚽ erd ⚽ i18n_generators ⚽ html5_validators ⚽ hocus_pocus ⚽ traceroute ⚽ ...
  51. Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽

    A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer ⚽ A Rails plugin author
  52. I'm Sorry I'm Terribly Bad at Maintaining Gems ⚽ But

    I guess we're pretty close to 1.0!
  53. Plans for Kaminari 1.0 ⚽ Off topic for today's talk

    ⚽ Maybe I'll talk about this at another conference
  54. Anyway, ⚽ I'm having fun with organizing Ruby events ⚽

    I'm having fun with hacking Rails ⚽ I make money with consulting Ruby/Rails ⚽ And I'm happy with that :)
  55. I'm Just a Rails Programmer Now ⚽ But it's so

    exciting to see how people use Ruby for other things
  56. Sure, Ruby Is Not the Only Tool to Do it

    ⚽ There're alternatives ⚽ As we're seeing in this conference
  57. ElixirKaigi ⚽ Back in 2013 ⚽ We invited José to

    RubyKaigi 2013 ⚽ Then Asakusa.rb hosted an Elixir event named "ElixirKaigi"
  58. Asakusa.rb ⚽ A Rubyists meetup in Tokyo ⚽ Since 2008

    ⚽ Meet up every Tuesday (just had 375th meetup this week) ⚽ Don't forget to visit us when you're coming to Japan! ⚽ Founded by
  59. Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽

    A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer ⚽ A Rails plugin author ⚽ Founder of Asakusa.rb
  60. The Elixir Book ⚽ ko1 (the Ruby VM author) and

    his wife just translated Dave's Elixir book into Japanese
  61. I'm Not Telling You to Stop Learning New Things ⚽

    Of course we should never stop learning new things ⚽ Even the Ruby VM author is learning a lot from Elixir
  62. But, Please Keep in Mind That ⚽ We're not enemies

    ⚽ You don't have to quit Ruby to learn Elixir
  63. We're Friends! ⚽ Some people are working on Elixir to

    make the world better ⚽ Some other people are working on Ruby to make the world better ⚽ This is a lovely situation!
  64. It's Really Happy to See Those Ruby Children Are Growing

    ⚽ Ruby can learn from them ⚽ Thank you for inspiring Ruby!
  65. Why Not Ruby? ⚽ Why don't you just keep using

    Ruby? ⚽ Can you think of any reason that you don't choose Ruby?
  66. Ruby Made My Life as a Programmer Happy ⚽ No

    other programming language did such a thing to me
  67. So,

  68. I Believe in Ruby's Power ⚽ Power to change people

    ⚽ Power to make the world a better place
  69. Why (Still) Ruby? ⚽ Ruby is still evolving ⚽ Ruby

    has Rails ⚽ The Ruby community ⚽ Fun of programming
  70. Ruby Has Rails ⚽ And no other language has Rails

    ⚽ Expanding Rubyism to the web world ⚽ A great tool to change your code to
  71. The Ruby Community ⚽ We are nice! (MINASWAN) ⚽ Ruby

    brought social coding to us ⚽ #rubyfriends ⚽ Amazing offline events (like RubyKaigi, RubyConf Brasil) ⚽ Strong ecosystem
  72. Fun of Programming ⚽ Playing with Ruby is fun ⚽

    Ruby usage is expanding ⚽ So,
  73. Fun of Programming ⚽ Playing with Ruby is fun ⚽

    Ruby usage is expanding ⚽ Fun of Programming is expanding!
  74. Why (Still) Ruby? ⚽ Ruby is still evolving ⤴ ⚽

    Ruby has Rails ⚽ The Ruby community ⚽ Fun of programming /
  75. Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽

    A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer ⚽ A Rails plugin author ⚽ Founder of Asakusa.rb ⚽ https://github.com/amatsuda ⚽ https://twitter.com/a_matsuda