Slide 1

Slide 1 text

How the EAST
 Was Won Akira Matsuda

Slide 2

Slide 2 text

Hello, Modern Web! I’m very much honored
 to be here!

Slide 3

Slide 3 text

Here.

Slide 4

Slide 4 text

ʂʁ

Slide 5

Slide 5 text

I’m Sorry, I’m Not a ݴޠ೭෕

Slide 6

Slide 6 text

Today I’m Going to Talk About Ruby

Slide 7

Slide 7 text

Ruby೭෕

Slide 8

Slide 8 text

Ruby೭෕ Matz

Slide 9

Slide 9 text

Ruby೭෕

Slide 10

Slide 10 text

দ? Matz: দຊ (Matsumoto) Me: দా (Matsuda)

Slide 11

Slide 11 text

Even an Airport in Taipei Is Matz

Slide 12

Slide 12 text

I’m Not a Ruby೭෕ But I’m rather a Ruby೭ࢠ

Slide 13

Slide 13 text

me Akira Matsuda (দా ໌) @a_matsudaɹ amatsudaɹ

Slide 14

Slide 14 text

amatsuda

Slide 15

Slide 15 text

amatsuda Ruby

Slide 16

Slide 16 text

amatsuda Rails

Slide 17

Slide 17 text

amatsuda Haml

Slide 18

Slide 18 text

amatsuda RubyKaigi

Slide 19

Slide 19 text

amatsuda Gems

Slide 20

Slide 20 text

Q. Are You a Ruby Programmer?

Slide 21

Slide 21 text

Q. Who Here Have Never Used Ruby Before?

Slide 22

Slide 22 text

There Are So Many Programming Languages

Slide 23

Slide 23 text

http://en.wikipedia.org/wiki/ List_of_programming_languages

Slide 24

Slide 24 text

@languages.map https://www.google.com/ maps/d/u/0/viewer? mid=zfjBCRa8NxJ0.kxDsp ZZkaW2s

Slide 25

Slide 25 text

@languages.map

Slide 26

Slide 26 text

@languages.map

Slide 27

Slide 27 text

Ruby Very unique language Made in Japan! The creator “Matz” is a Japanese The only language in this map that was made in Asia

Slide 28

Slide 28 text

Ruby Was Made in Asia But that’s not the reason why Ruby became popular Even in Japan, Ruby wasn’t very popular before
 “Ruby on Rails” Became popular in US, then reverse-imported to Japan

Slide 29

Slide 29 text

So Why Ruby Became Popular? Because people liked
 Ruby’s philosophy

Slide 30

Slide 30 text

–Matz “Ruby is designed to make programmers happy.” Ruby’s Design Philosophy

Slide 31

Slide 31 text

I’m Not Saying That, Ruby is the only language that can make you happy I promise that Ruby will make you happy

Slide 32

Slide 32 text

Happy? What does “happy” mean? How can a programming language make us happy?

Slide 33

Slide 33 text

History of Ruby

Slide 34

Slide 34 text

In the Beginning, 1993೥02݄14೔:
 Matz thought,
 “Let there be a language,” and Keiju named it “Ruby”.

Slide 35

Slide 35 text

Design Concept Pure Object Oriented Scripting language

Slide 36

Slide 36 text

Nothing New No new paradigm A curation of existing good parts of other languages

Slide 37

Slide 37 text

–Matz, at RubyKaigi 2013 “Ruby = Lisp + Smalltalk + Perl + C” Ingredients of Ruby

Slide 38

Slide 38 text

–Matz, 2000 “Designed to Make Programmers Happy” Ruby’s Design Philosophy

Slide 39

Slide 39 text

Ruby Is Optimized for Developers Where almost every other language is optimized for computers

Slide 40

Slide 40 text

Ruby Focuses on Productivity Where almost every other language focuses on execution efficiency

Slide 41

Slide 41 text

Ruby’s Syntax Concise, succinct syntax => Feels natural to humans

Slide 42

Slide 42 text

Feels Natural Feels like our natural language English

Slide 43

Slide 43 text

Ruby < English Ruby = Lisp + Smalltalk + Perl + C
 + English

Slide 44

Slide 44 text

Natural Write what you think, then it should work And so the code reads very natural to other people

Slide 45

Slide 45 text

Ruby Feels Natural => Productivity ɹ㽉㽉✨ => Maintainability 㽉㽉

Slide 46

Slide 46 text

Ruby Is Flexible Everything is an Object You can monkey-patch anything!

Slide 47

Slide 47 text

You Can Even Change the Way
 1 + 1 Works! (but please don’t do this) % ruby -e "p 1 + 1"
 #=> 2 % ruby -e "Fixnum.class_eval { def +(n) self - n; end }; p 1 + 1"
 #=> 0

Slide 48

Slide 48 text

Isn’t This Flexibility Dangerous? Yes, it is Users can easily shoot your own legs in Ruby But who does such a stupid thing?

Slide 49

Slide 49 text

Ruby Trusts the Users Ruby gives you powerful tools (e.g. meta programming) Which helps users a lot Gives users almightiness and universal feeling

Slide 50

Slide 50 text

The First Public Release 1995೥12݄21೔:
 The First Public Release 20 years ago!

Slide 51

Slide 51 text

And Matz Said, “Let there be communities”

Slide 52

Slide 52 text

Communities Ruby Communities == Mailing Lists

Slide 53

Slide 53 text

Mailing Lists 1995೥: ruby-list (Japanese, for users)

Slide 54

Slide 54 text

ruby-list ML As soon as he published his first release, he created a mailing list

Slide 55

Slide 55 text

Mailing Lists 1995೥: ruby-list (Japanese, for users) 1997೥: ruby-dev (Japanese, for core developers)

Slide 56

Slide 56 text

ruby-dev ML “Let the core developers be gathered to one place” Matz called the ML
 “ruby-dev”

Slide 57

Slide 57 text

Mailing Lists 1995೥: ruby-list (Japanese, for users) 1997೥: ruby-dev (Japanese, for core developers) 1998೥: ruby-talk (English)

Slide 58

Slide 58 text

ruby-talk ML “Be fruitful and increase in number and fill the computers on the earth” And there were non- Japanese Ruby users

Slide 59

Slide 59 text

Matz’s Community Design He created some mailing lists, and called them “communities” He separated users and core developers He created English speaking community as well

Slide 60

Slide 60 text

And Matz Said, “Let there be books”

Slide 61

Slide 61 text

Books 1999೥:
 ΦϒδΣΫτࢦ޲εΫϦϓτݴޠRuby
 (Object Oriented Scripting Language Ruby Written by Matz himself, and Keiju the godfather of Ruby Written in Japanese

Slide 62

Slide 62 text

The “Mustard Coloured” Book

Slide 63

Slide 63 text

Books 2000೥: Programming Ruby Written by Dave Thomas & Andrew Hunt Written in English

Slide 64

Slide 64 text

The pick-axe Book

Slide 65

Slide 65 text

The Language Spread Rapidly Because the book was great Because Ruby < English

Slide 66

Slide 66 text

And Matz Said? “Let there be conferences”

Slide 67

Slide 67 text

Did He? No, this is not true.

Slide 68

Slide 68 text

And Matz Said? “Let there be conferences”

Slide 69

Slide 69 text

Ruby Conferences 2001೥: The 1st RubyConf (US) 2003೥: The 1st EuRuKo (Europe) 2006೥: The 1st RubyKaigi (Japan)

Slide 70

Slide 70 text

Ruby Conferences ✓Ruby conferences were kicked off by the English- speaking community

Slide 71

Slide 71 text

And Matz Said? “Let there be packaging system”

Slide 72

Slide 72 text

And Matz Said? “Let there be packaging system”

Slide 73

Slide 73 text

Packaging System 2003೥: RubyGems at RubyConf in US

Slide 74

Slide 74 text

Ruby Packaging System ✓The Ruby packaging system called “RubyGems” was created by the community
 in a conference

Slide 75

Slide 75 text

And Matz Said? “Let there be web framework”

Slide 76

Slide 76 text

And Matz Said? “Let there be web framework”

Slide 77

Slide 77 text

The Web Framework

Slide 78

Slide 78 text

The Web Framework

Slide 79

Slide 79 text

Ruby on Rails Created by DHH (David Heinemeier Hansson) 2004೥: First Release

Slide 80

Slide 80 text

Ruby on Rails in 2015 DHH still rules 10-20 Core members 4000 Contributors

Slide 81

Slide 81 text

Ruby Web Framework ✓The Ruby web framework called “Ruby on Rails” was created by DHH, and is being maintained by the community

Slide 82

Slide 82 text

Ruby on Rails Convention over Configuration Don’t Repeat Yourself Code Generator

Slide 83

Slide 83 text

Ruby on Rails Aggressively focuses on productivity

Slide 84

Slide 84 text

–DHH “Write Less Code” Rails’ Philosophy

Slide 85

Slide 85 text

Rails Ruby DHH’s philosophy perfectly matches Ruby’s philosophy Rails became possible because DHH found Ruby

Slide 86

Slide 86 text

Rails Is a Framework That Extends “the Ruby Way” And so, it’s named
 ”Ruby on Rails”,
 not “Rails on Ruby”

Slide 87

Slide 87 text

Sophisticated & Powerful
 Plugin System Based on Ruby’s flexibility Sometimes Monkey- Patchability

Slide 88

Slide 88 text

For Example

Slide 89

Slide 89 text

Adding #like Query Method to Model Classes

Slide 90

Slide 90 text

Adding #like Method to Model Classes (Result) Developer.like(name: ‘Mat %’).to_sql
 
 #=> “SELECT * FROM developers WHERE name like ‘Mat%’”

Slide 91

Slide 91 text

Enabling Controller Actions to Take Method Parameters

Slide 92

Slide 92 text

Enabling Controller Actions to Take Method Parameters (Result) # try “action_args” gem if you liked this!

Slide 93

Slide 93 text

Because Ruby Is Such a
 Flexible Language Rails has so many powerful plugins

Slide 94

Slide 94 text

Because Rails Has
 the Plugin System The Framework doesn’t have to do everything Rails provides the core features, and delagates other features to plugins

Slide 95

Slide 95 text

Rails Plugins Authorization / authentication File Upload Pagination Alternative ORMs Template Engines Testing …

Slide 96

Slide 96 text

Because Rails Has
 the Plugin System Rails encourages people to write their own plugins Rails trusts the users,
 just as Ruby trusts the users

Slide 97

Slide 97 text

Because Users Can Create
 Powerful Plugins The community has got so many talented plugin creators

Slide 98

Slide 98 text

Standing on Shoulders of Giants The community helps your app development!

Slide 99

Slide 99 text

Don’t Repeat Yourself If you want to develop a typical feature for your app, you may find a plugin for that on the web Don’t Repeat Someone’s Hack If you find a bug on the language, framework, or a plugin, just fix it and send a patch Don’t Let Others Repeat Your Bug

Slide 100

Slide 100 text

The Whole Community Can Be DRY That’s the Ecosystem

Slide 101

Slide 101 text

Don’t Repeat Yourself

Slide 102

Slide 102 text

Matz Just Created the Language And the Communities Then the community created everything else

Slide 103

Slide 103 text

“How the East Was Won”

Slide 104

Slide 104 text

&ɹ =>ɹ Ruby was born in Japan And raised in the community

Slide 105

Slide 105 text

“How the East Was Won” “The East” alone didn’t win But the whole “community” won the current status of Ruby

Slide 106

Slide 106 text

The Community

Slide 107

Slide 107 text

What “the Community” Is Like Today?

Slide 108

Slide 108 text

The Mailing Lists?

Slide 109

Slide 109 text

The Ruby Core?

Slide 110

Slide 110 text

The Rails Core?

Slide 111

Slide 111 text

–Me, 2015 “A group of Rubyists Communicating over the Internet” The Ruby Community

Slide 112

Slide 112 text

We Programmers Can Communicate in Programming Language! Not only in natural language such as English

Slide 113

Slide 113 text

We Programmers Can Communicate in Programming Language! Such activity is called
 “Social Coding”

Slide 114

Slide 114 text

Social Coding Drives OSS development Communication with code GitHub Built with Ruby

Slide 115

Slide 115 text

Ruby < English Concise, succinct Reads natural

Slide 116

Slide 116 text

Ruby Social Coding Works great as a
 “Social Coding” protocol A true “Modern Web” Language

Slide 117

Slide 117 text

You Can Join! The community is there in your computers! Don’t be afraid!

Slide 118

Slide 118 text

You Can Join! Language Barrier? No! We’re all speakers of Ruby!

Slide 119

Slide 119 text

–Me, 2015 “A group of Rubyists Communicating over the Internet” The Ruby Community

Slide 120

Slide 120 text

Q. Who Here Thinks You Are a Rubyist? Or who here wants to be a Rubyist? How can you be a Rubyist?

Slide 121

Slide 121 text

What Is Rubyist?
 How Can You Be a Rubyist? The word “Rubyist” was created by Matz himself in May 1997
 
 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ ruby/ruby-list/2908

Slide 122

Slide 122 text

Definition of “Rubyist” People whoever have some positive feeling toward Ruby. Not defined by Ruby programming skill A skilled Ruby programmer shall be called “a ruby hacker”

Slide 123

Slide 123 text

For example, Who promote Ruby to other people Who answer others’ questions Who organize local or online communities Who write Ruby books Who encourage the author of Ruby The author of Ruby ^^;;;

Slide 124

Slide 124 text

It’s So Easy to Become a Rubyist You may promote Ruby If you like Ruby Just tweet “I like Ruby!” Then you’re a Rubyist!

Slide 125

Slide 125 text

Just tweet “I like Ruby!” You can easily do this with Ruby! % gem install t % t authorize % t update “I like Ruby!”

Slide 126

Slide 126 text

The Community Is Not Just a Virtual Thing I said, it’s a group of people.

Slide 127

Slide 127 text

Meet the Community! Ruby conferences *.rb

Slide 128

Slide 128 text

Asakusa.rb

Slide 129

Slide 129 text

Asakusa.rb.map Local community Friends from all over the world #rubyfriends

Slide 130

Slide 130 text

Welcome to Ruby!

Slide 131

Slide 131 text

Be Nice to Each Other

Slide 132

Slide 132 text

Enjoy Hacking

Slide 133

Slide 133 text

May RUBY be with YOU!