Slide 1

Slide 1 text

Why (Still) Ruby? Akira Matsuda #rubyconfbr

Slide 2

Slide 2 text

Me ⚽ Akira Matsuda

Slide 3

Slide 3 text

OMG! I'm Doing the
 Closing Keynote! ⚽ It's a great honor!

Slide 4

Slide 4 text

How Was RubyConf Brasil?

Slide 5

Slide 5 text

How Was RubyConf Brasil?

Slide 6

Slide 6 text

How Were the Talks?

Slide 7

Slide 7 text

We Had Some Great Talks About Web Frameworks ⚽ Rails ⚽ etc.

Slide 8

Slide 8 text

We Had Some Amazing Talks About Elixir / Crystal

Slide 9

Slide 9 text

We Had Some Amazing Talks About Elixir / Crystal

Slide 10

Slide 10 text

But,

Slide 11

Slide 11 text

This Event is_a RubyConf ⚽ According to its name

Slide 12

Slide 12 text

Why Didn't You All Talk About Ruby?

Slide 13

Slide 13 text

Why Didn't You All Talk About Ruby?

Slide 14

Slide 14 text

Because Ruby is Matured?
 So There's No New Topic Anymore?

Slide 15

Slide 15 text

Because People Are Losing Their Interest in Ruby?
 And Shifting to Newer Languages?

Slide 16

Slide 16 text

I Don't Think So ⚽ Ruby has many new topics that you should know ⚽ People are still interested in these stories

Slide 17

Slide 17 text

Let Me Show You an Example of a Conference That

Slide 18

Slide 18 text

People Are Still Enthusiastically Talking About Ruby

Slide 19

Slide 19 text

RubyKaigi ⚽ http://rubykaigi.org/

Slide 20

Slide 20 text

RubyKaigi

Slide 21

Slide 21 text

2.weeks.ago

Slide 22

Slide 22 text

The Organizing Team ⚽ http://rubykaigi.org/team

Slide 23

Slide 23 text

The Organizing Team

Slide 24

Slide 24 text

The Organizing Team Me

Slide 25

Slide 25 text

Me ⚽ Akira Matsuda ⚽ "Chief Organizer" of RubyKaigi

Slide 26

Slide 26 text

RubyKaigi ⚽ A purely technical international conference ⚽ Deeply focused on Ruby language ⚽ Held in Japan annualy

Slide 27

Slide 27 text

RubyKaigi.is_a International Conference

Slide 28

Slide 28 text

RubyKaigi.attendees
 .map(&:from)

Slide 29

Slide 29 text

Brasil?

Slide 30

Slide 30 text

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?

Slide 31

Slide 31 text

RubyKaigi

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

"Ruby Committers vs The World" ⚽ And, we put them all together on stage!

Slide 34

Slide 34 text

"Ruby Committers vs The World"

Slide 35

Slide 35 text

"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

Slide 36

Slide 36 text

"Ruby Committers vs The World" Me

Slide 37

Slide 37 text

Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽ A Ruby committer

Slide 38

Slide 38 text

Ruby

Slide 39

Slide 39 text

Ruby Is Pretty Mature ⚽ 23 years old. Not a kid anymore ⚽ Conquered the web world

Slide 40

Slide 40 text

Is Ruby Language Mature Enough? ⚽ Is Ruby "Done" already?

Slide 41

Slide 41 text

No!

Slide 42

Slide 42 text

There're So Much Room for
 Feature & Performance Improvements

Slide 43

Slide 43 text

At RubyKaigi, We Made Some Announcements ⚽ Ruby 2.4 New Features ⚽ Ruby 3.0 Plans

Slide 44

Slide 44 text

Ruby 2.4 New Features

Slide 45

Slide 45 text

Integer Unification (akr) ⚽ http://rubykaigi.org/2016/ presentations/tanaka_akr.html

Slide 46

Slide 46 text

Ruby <= 2.3 1.class #=> Fixnum (2**100).class #=> Bignum

Slide 47

Slide 47 text

Ruby 2.4 1.class #=> Integer (2**100).class #=> Integer

Slide 48

Slide 48 text

Slides Are Linked from the Official Site ⚽ http://rubykaigi.org/2016/schedule/ ⚽ Please check them out if you want to know more details

Slide 49

Slide 49 text

Improvements on Unicode Case Conversion (duerst) ⚽ http://rubykaigi.org/2016/ presentations/duerst.html

Slide 50

Slide 50 text

Ruby <= 2.3 'São Paulo'.upcase #=> "SãO PAULO"

Slide 51

Slide 51 text

Ruby 2.4 'São Paulo'.upcase #=> "SÃO PAULO"

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

Plans for Ruby 3

Slide 54

Slide 54 text

New Type System (matz) ⚽ http://rubykaigi.org/2016/ presentations/yukihiro_matz.html

Slide 55

Slide 55 text

Matz's Original "Typing System"
 (͖Ύ͏Γվ) http://www.itmedia.co.jp/enterprise/articles/0704/24/news006_2.html

Slide 56

Slide 56 text

"Soft Typing"

Slide 57

Slide 57 text

"You will see the future of the type system in Ruby3." ⚽ http://rubykaigi.org/2016/ presentations/yukihiro_matz.html

Slide 58

Slide 58 text

New Concurrency System (ko1) ⚽ http://rubykaigi.org/2016/ presentations/ko1.html

Slide 59

Slide 59 text

ko1 ⚽ The author of current Ruby VM ⚽ Full-time Ruby committer at Heroku Inc.

Slide 60

Slide 60 text

"Guild" ⚽ Wraps Ruby Thread manipulation ⚽ Influenced by recent languages, libraries with strong concurrency system ⚽ His answer to them

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

Ruby 3x3

Slide 63

Slide 63 text

Ruby 3x3 ⚽ Ruby 3 will be 3 times faster than Ruby 2

Slide 64

Slide 64 text

Deoptimization Engine (shyouhei) ⚽ http://rubykaigi.org/2016/ presentations/shyouhei.html

Slide 65

Slide 65 text

The est Talk Proposal
 I've Ever Seen

Slide 66

Slide 66 text

Deoptimization ⚽ The patch is already online ⚽ https://github.com/ruby/ruby/pull/1419

Slide 67

Slide 67 text

shyouhei ⚽ Full-time Ruby committer at MoneyForward Inc.

Slide 68

Slide 68 text

Companies That've Been Supporting Ruby Development ⚽ NaCl (supporting Matz: since 1997) ⚽ Heroku (Matz, ko1, nobu: since 2011-2012) ⚽ MoneyForward (shyouhei: since 2015)

Slide 69

Slide 69 text

The Deoptimization Patch ⚽ This patch is his first output from MoneyForward ⚽ Will hopefully be merged to 2.4 (?)

Slide 70

Slide 70 text

Slides Are Linked from the Official Site ⚽ http://rubykaigi.org/2016/schedule/ ⚽ Please check them out if you want to know more details

Slide 71

Slide 71 text

Dive into CRuby (naruse) ⚽ Closing keynote of RubyKaigi 2016

Slide 72

Slide 72 text

naruse ⚽ Release manager of Ruby 2.4

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

Also, He Stated That ⚽ We can improve not only the language core such as VM, but also stdlibs

Slide 77

Slide 77 text

Ingredients of the Ruby Repo ⚽ The language core ⚽ stdlibs as C extensions ⚽ stdlibs in Ruby

Slide 78

Slide 78 text

Maintaining Stdlibs is Hard

Slide 79

Slide 79 text

Stdlibs Tend to Easily Become Unmaintained ⚽ OpenSSL: No maintainer until rhe joined ruby-core this year ⚽ WEBRick: Nobody actively maintains

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

Number of Stdlibs ⚽ Very roughly counted by
 
 % cat <(ls lib) <(ls ext) | sed 's/\.rb$//' | sort -u | wc -l

Slide 82

Slide 82 text

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 ⤵

Slide 83

Slide 83 text

Number of Stdlibs ⚽ Gradually decreasing in recent versions

Slide 84

Slide 84 text

Gemifying Stdlibs ⚽ Recent trend is to "gemify" stdlibs ⚽ And extract each individual repo under https://github.com/ruby/

Slide 85

Slide 85 text

What Were Gemified in 2.4 ⚽ Tk ⚽ XMLRPC

Slide 86

Slide 86 text

Ruby/Tk ⚽ The oldest GUI library in Ruby (since the last century!) ⚽ Cross Platform ⚽ Initially created by Matz ⚽ Being maintained by nagai

Slide 87

Slide 87 text

Who Uses Tk Now?

Slide 88

Slide 88 text

Gemified ⚽ https://github.com/ruby/tk

Slide 89

Slide 89 text

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

Slide 90

Slide 90 text

Cons ⚽ Those who uses Tk has to
 `gem install tk`
 before using

Slide 91

Slide 91 text

We're Extracting Stdlibs to Gems ⚽ So everyone can easily contribute ⚽ IMO this is the main purpose

Slide 92

Slide 92 text

Future Plans ⚽ WEBRick? ⚽ OpenSSL? ⚽ Anything in the stdlibs list

Slide 93

Slide 93 text

ruby/* gems Are Looking for Maintainers / Contributors ⚽ Patches are welcome!

Slide 94

Slide 94 text

And Ruby Stdlibs Are Also Looking for Maintainers ⚽ Send us your patches!

Slide 95

Slide 95 text

Let's Go Back to RubyKaigi

Slide 96

Slide 96 text

These Talks Were About Developing Ruby

Slide 97

Slide 97 text

For What Do We Use Ruby?

Slide 98

Slide 98 text

An Unix Shell Written in Ruby (keiju, 2015) ⚽ http://rubykaigi.org/2015/ presentations/keiju

Slide 99

Slide 99 text

keiju ⚽ God father of the language "Ruby" ⚽ Author of IRB

Slide 100

Slide 100 text

Infra as a Code ⚽ Chef / Puppet / Itamae ⚽ Serverspec ⚽ Hashicorp products ⚽ winebarrel wares

Slide 101

Slide 101 text

Infra as a Code ⚽ Ruby DSL

Slide 102

Slide 102 text

Container

Slide 103

Slide 103 text

Haconiwa (@udzura) ⚽ http://rubykaigi.org/2016/ presentations/udzura.html ⚽ mruby x container

Slide 104

Slide 104 text

Systems Programming

Slide 105

Slide 105 text

Hijacking syscalls with (m)ruby (@franckverrot) ⚽ http://rubykaigi.org/2016/ presentations/franckverrot.html ⚽ An experiment on overriding Unix syscalls using mruby

Slide 106

Slide 106 text

Building maintainable command- line tools with mruby (drbrain) ⚽ http://rubykaigi.org/2016/ presentations/drbrain.html ⚽ mruby & mruby-cli

Slide 107

Slide 107 text

mruby ⚽ People talk about this a lot at RubyKaigi

Slide 108

Slide 108 text

What is mruby? ⚽ Matz's new toy ⚽ Yet another Ruby implementation ⚽ Lightweight ⚽ m is for "Embedded" ⚽ https://github.com/mruby/mruby

Slide 109

Slide 109 text

Embedded Devices x mruby

Slide 110

Slide 110 text

making robot with mruby (@yuri_at_earth, 2015) ⚽ http://rubykaigi.org/2015/presentations/ yurie ⚽ RTOS + LEGO Mindstorms EV3 + Raspberry Pi + mruby ⚽ With a demo

Slide 111

Slide 111 text

High Tech Seat in mruby (@yuri_at_earth) ⚽ http://rubykaigi.org/2016/presentations/ yuri_at_earth.html ⚽ Controlling "High Tech Seat" (toilet) with mruby ⚽ With a demo!

Slide 112

Slide 112 text

Charming Robots (@juliancheal, 2015) ⚽ http://rubykaigi.org/2015/presentations/ juliancheal ⚽ How to control physical devices with Ruby (not mruby) ⚽ With tons of demos

Slide 113

Slide 113 text

It's More Fun to Compute (@juliancheal) ⚽ http://rubykaigi.org/2016/ presentations/juliancheal.html ⚽ How to make music with Ruby ⚽ With tons of demos

Slide 114

Slide 114 text

Games

Slide 115

Slide 115 text

Game Development + Ruby = Happiness? (@amirrajan) ⚽ http://rubykaigi.org/2016/ presentations/amirrajan.html ⚽ iOS Game: A Dark Room ⚽ Game programming with Ruby

Slide 116

Slide 116 text

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!

Slide 117

Slide 117 text

Nintendo Sponsors RubyKaigi!

Slide 118

Slide 118 text

NES Emulator Written in Ruby ⚽ Optcarrot ⚽ Created by mame ⚽ https://github.com/mame/optcarrot ⚽ He created this for benchmarking ruby implementations

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

Benchmark

Slide 121

Slide 121 text

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!

Slide 122

Slide 122 text

Purpose of This Project ⚽ To check if we could achieve "Ruby 3x3"

Slide 123

Slide 123 text

mame ⚽ Ruby committer ⚽ Ruby 2.0 release manager ⚽ Very well known by his another mind- blowing masterpiece

Slide 124

Slide 124 text

Quine Relay

Slide 125

Slide 125 text

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 .............

Slide 126

Slide 126 text

mame at RubyKaigi 2015

Slide 127

Slide 127 text

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

Slide 128

Slide 128 text

You See, We're Having Fun with Ruby!

Slide 129

Slide 129 text

Playing with Ruby is Fun! ⚽ Ruby gives us joy of programming ⚽ We're sharing such fun at the events

Slide 130

Slide 130 text

Actually,

Slide 131

Slide 131 text

Ruby Can Also Be Used for Serious Projects

Slide 132

Slide 132 text

Science x Ruby

Slide 133

Slide 133 text

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

Slide 134

Slide 134 text

@masa16tanaka ⚽ The autor of NArray since 1999

Slide 135

Slide 135 text

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

Slide 136

Slide 136 text

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

Slide 137

Slide 137 text

mrkn ⚽ A Ruby committer ⚽ Mainteiner of BigDecimal which was gemified last year (2.3)

Slide 138

Slide 138 text

Another Alternative Ruby Implementation

Slide 139

Slide 139 text

JRuby 9000 Last Year, Today, and Tomorrow (@tom_enebo) ⚽ http://rubykaigi.org/2016/ presentations/tom_enebo.html ⚽ JRuby 9000

Slide 140

Slide 140 text

Yet Another Ruby Implementation ⚽ Opal

Slide 141

Slide 141 text

Isomorphic Web Programming (@youchan) ⚽ http://rubykaigi.org/2016/ presentations/youchan.html

Slide 142

Slide 142 text

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

Slide 143

Slide 143 text

Web Programming

Slide 144

Slide 144 text

Web Programming with Ruby ⚽ I'm sure majority of you here use Ruby for this ⚽ Rails programmer?

Slide 145

Slide 145 text

Rails ⚽ Rails is still great ⚽ And so Rails is great in Ruby conferences

Slide 146

Slide 146 text

In Fact, We Had Many Good Talks About Rails at RubyConf Brasil 2016

Slide 147

Slide 147 text

Rails in RubyKaigi 2016

Slide 148

Slide 148 text

Rails in RubyKaigi 2016 ⚽ (none)

Slide 149

Slide 149 text

OMG! There Were NO Rails Talk at RubyKaigi This Year

Slide 150

Slide 150 text

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

Slide 151

Slide 151 text

My Recent Concern on Rails ⚽ Framework performance

Slide 152

Slide 152 text

My Presentation at RailsConf This Year ⚽ "3x Rails"

Slide 153

Slide 153 text

3x Rails ⚽ https://speakerdeck.com/a_matsuda/3x- rails ⚽ At RailsConf 2016

Slide 154

Slide 154 text

BTW at RailsConf This Year,
 I Got the RubyHero Award!

Slide 155

Slide 155 text

Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽ A Ruby committer ⚽ A Ruby hero

Slide 156

Slide 156 text

Anyway,

Slide 157

Slide 157 text

At That Presentation, I Revealed Some Ideas to Make Rails Faster ⚽ Some of them are already implemented or PRed

Slide 158

Slide 158 text

For Example ⚽ Unicode on Rails ⚽ ActiveSupport::TimeWithZone speed up ⚽ AV Template Resolver

Slide 159

Slide 159 text

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?

Slide 160

Slide 160 text

PRs ⚽ https://github.com/rails/rails/pull/ 26402 ⚽ https://github.com/rails/rails/pull/ 26403 (withdrawn)

Slide 161

Slide 161 text

My Future Plans on Rails ⚽ I'll work on these perf things after this conference

Slide 162

Slide 162 text

I Said, "I'll Work", But...

Slide 163

Slide 163 text

Rails Is Not Actually My "Work" ⚽ I'm not paid

Slide 164

Slide 164 text

I'm In Fact Just a Hobby Rails Committer

Slide 165

Slide 165 text

Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽ A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer

Slide 166

Slide 166 text

Another Hobby of Mine ⚽ Creating Rails plugins

Slide 167

Slide 167 text

I Authored ⚽ kaminari ⚽ active_decorator ⚽ action_args

Slide 168

Slide 168 text

I Authored ⚽ stateful_enum ⚽ motorhead ⚽ database_rewinder ⚽ jb ⚽ erd ⚽ i18n_generators ⚽ html5_validators ⚽ hocus_pocus ⚽ traceroute ⚽ ...

Slide 169

Slide 169 text

Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽ A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer ⚽ A Rails plugin author

Slide 170

Slide 170 text

Kaminari ⚡

Slide 171

Slide 171 text

I'm Sorry I'm Terribly Bad at Maintaining Gems ⚽ But I guess we're pretty close to 1.0!

Slide 172

Slide 172 text

Plans for Kaminari 1.0 ⚽ Off topic for today's talk ⚽ Maybe I'll talk about this at another conference

Slide 173

Slide 173 text

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 :)

Slide 174

Slide 174 text

I'm Just a Rails Programmer Now ⚽ But it's so exciting to see how people use Ruby for other things

Slide 175

Slide 175 text

Ruby Is Still Improving ⚽ Ruby is still expanding its limit

Slide 176

Slide 176 text

Sure, Ruby Is Not the Only Tool to Do it ⚽ There're alternatives ⚽ As we're seeing in this conference

Slide 177

Slide 177 text

Elixir Is Actually Becoming Popular in Japan

Slide 178

Slide 178 text

ElixirKaigi ⚽ Back in 2013 ⚽ We invited José to RubyKaigi 2013 ⚽ Then Asakusa.rb hosted an Elixir event named "ElixirKaigi"

Slide 179

Slide 179 text

Asakusa.rb

Slide 180

Slide 180 text

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

Slide 181

Slide 181 text

Me ⚽ Akira Matsuda ⚽ Chief organizer of RubyKaigi ⚽ A Ruby committer ⚽ A Ruby hero ⚽ A Rails committer ⚽ A Rails plugin author ⚽ Founder of Asakusa.rb

Slide 182

Slide 182 text

The Elixir Book ⚽ ko1 (the Ruby VM author) and his wife just translated Dave's Elixir book into Japanese

Slide 183

Slide 183 text

The Elixir Book ko1

Slide 184

Slide 184 text

Anyway,

Slide 185

Slide 185 text

Elixir Is Great ⚽ But I don't think Elixir could/should defeat Ruby

Slide 186

Slide 186 text

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

Slide 187

Slide 187 text

But, Please Keep in Mind That ⚽ We're not enemies ⚽ You don't have to quit Ruby to learn Elixir

Slide 188

Slide 188 text

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!

Slide 189

Slide 189 text

It's Really Happy to See Those Ruby Children Are Growing ⚽ Ruby can learn from them ⚽ Thank you for inspiring Ruby!

Slide 190

Slide 190 text

However,

Slide 191

Slide 191 text

We Still Believe That
 Ruby Can Do it Better

Slide 192

Slide 192 text

Why Not Ruby? ⚽ Why don't you just keep using Ruby? ⚽ Can you think of any reason that you don't choose Ruby?

Slide 193

Slide 193 text

Speed? ⚽ Because Ruby is considered slow?

Slide 194

Slide 194 text

Speed ⚽ Ruby 3x3

Slide 195

Slide 195 text

Speed ⚽ No problem! Ruby is soon getting 3x faster!

Slide 196

Slide 196 text

Concurrency? ⚽ Because Ruby doesn't have rich support for concurrent programming?

Slide 197

Slide 197 text

Concurrency ⚽ "Guild"

Slide 198

Slide 198 text

Concurrency ⚽ This should be nicely resolved in Ruby 3!

Slide 199

Slide 199 text

Types? ⚽ Because Ruby cannot deal with types?

Slide 200

Slide 200 text

Types ⚽ Matz's "soft typing"

Slide 201

Slide 201 text

Types ⚽ Matz has some plan on improving the Ruby type system!

Slide 202

Slide 202 text

Library / Ecosystem? ⚽ Because Ruby has no good libraries outside of the Rails ecosystem?

Slide 203

Slide 203 text

Library / Ecosystem ⚽ People are eagerly working on them! ⚽ Let's do this together!

Slide 204

Slide 204 text

Why Not Ruby? ⚽ There's really no reason "why not Ruby"!

Slide 205

Slide 205 text

Today's Topic ⚽ Why Ruby?

Slide 206

Slide 206 text

Why Ruby?

Slide 207

Slide 207 text

Because ⚽ I see that much people are having fun with Ruby!

Slide 208

Slide 208 text

People Are Having Fun
 with Ruby! ⚽ Maybe because Ruby is essentially fun!

Slide 209

Slide 209 text

Ruby's Design Principle ⚽ "Ruby is designed to make programmers happy" - Matz

Slide 210

Slide 210 text

Ruby Made My Life as a Programmer Happy ⚽ No other programming language did such a thing to me

Slide 211

Slide 211 text

Ruby Made Me Friends

Slide 212

Slide 212 text

And Ruby Brought Me to Brasil ⚽ Thank you Fabio for inviting me!

Slide 213

Slide 213 text

Ruby Changed My Life
 This Way

Slide 214

Slide 214 text

So,

Slide 215

Slide 215 text

I Believe in Ruby's Power ⚽ Power to change people ⚽ Power to make the world a better place

Slide 216

Slide 216 text

Why (Still) Ruby?

Slide 217

Slide 217 text

Why (Still) Ruby? ⚽ Ruby is still evolving ⚽ Ruby has Rails ⚽ The Ruby community ⚽ Fun of programming

Slide 218

Slide 218 text

Ruby Is Still Evolving ⚽ Getting faster ⚽ New features

Slide 219

Slide 219 text

Ruby Has Rails ⚽ And no other language has Rails ⚽ Expanding Rubyism to the web world ⚽ A great tool to change your code to

Slide 220

Slide 220 text

The Ruby Community ⚽ We are nice! (MINASWAN) ⚽ Ruby brought social coding to us ⚽ #rubyfriends ⚽ Amazing offline events (like RubyKaigi, RubyConf Brasil) ⚽ Strong ecosystem

Slide 221

Slide 221 text

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

Slide 222

Slide 222 text

Fun of Programming ⚽ Playing with Ruby is fun ⚽ Ruby usage is expanding ⚽ Fun of Programming is expanding!

Slide 223

Slide 223 text

Keep Having Fun with Ruby! ⚽ Enjoy yourself being a Rubyist!

Slide 224

Slide 224 text

Why (Still) Ruby? ⚽ Ruby is still evolving ⤴ ⚽ Ruby has Rails ⚽ The Ruby community ⚽ Fun of programming /

Slide 225

Slide 225 text

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