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

Why (Still) Ruby?

Avatar for Akira Matsuda 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

Avatar for Akira Matsuda

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