The story of language development

Hiroshi SHIBATA
Hiroshi SHIBATAOSS programmer at GMO Pepabo, Inc.
The story of language development
Inside of CRuby core team
self.introduce
=>
{
name: “SHIBATA Hiroshi”,
nickname: “hsbt”,
title: “Chief engineer at GMO Pepabo, Inc.”,
commit_bits: [“ruby”, “rake”, “rubygems”, “rdoc”, “tdiary”,
“hiki”, “railsgirls”, “railsgirls-jp”, “jenkins”],
sites: [“ruby-lang.org”, “rubyci.com”, “railsgirls.com”,
“railsgirls.jp”],
}
Me
https://github.com/ruby/ruby
I’m from Asakusa.rb
Asakusa.rb is one of the most active meet-ups in Tokyo, Japan.
@a_matsuda (Ruby/Rails committer, RubyKaigi organizer)
@kakutani (RubyKaigi organizer)
@ko1 (Ruby committer)
@takkanm (Ruby/Rails programmer)
@gunjisatoshi (Rubyist Magazine editor)
@hsbt (Me!)
…
The story of language development
もっと
おもしろく
できる
The story of language development
Warning!!!
This presentation
is no code
To be continued
Ruby
What’s ruby
“Ruby is… A dynamic, open source programming language with a
focus on simplicity and productivity. It has an elegant syntax that
is natural to read and easy to write.”
https://www.ruby-lang.org/en/
“簡単にいえばPerlのような手軽さで「楽しく」オブジェ
クト指向しようという言語”
https://www.ruby-lang.org/ja/about/
Basis of MRI and YARV
“ Throughout most of this book we’ll learn about the original,
standard implementation of Ruby, known as Matz’s Ruby
Interpreter (MRI) after Yukihiro Matsumoto, who invented Ruby in
1993.”
Ruby Under a Microscope, p.4
“ With Ruby 1.9, Koichi Sasada and the Ruby core team
introduced Yet Another Ruby Virtual Machine (YARV), which
actually executes your Ruby code.”
Ruby Under a Microscope, p.33
Ruby 1.8
Ruby 1.9
Variation of Ruby Interpreter
Implementation:
• Ruby(MRI, CRuby)
• JRuby
• Rubinius
• Opal
ISO/IEC 30170:2012:
• CRuby
• mruby
Differences between CRuby and Others
It’s CRuby's
world
It’s other
Ruby’s world
How to make
Ruby in 2015
Requirements of Software development
• People
• Dev Resources
• Issue tracking(feature, defects, etc)
• Release management
People
Ruby Committer
Team Heroku
• Matz(Director)
• ko1(YARV author)
• n0kada(Patch monster)
and others(total 87 people + 1 bot)
$ cat ~svn/.ssh/authorized_keys | awk '{print $5}' | sort | uniq | wc -l
88
Branch maintainer
trunk
nurse: Release manager
2.2
nagachika: Stable branch maintainer
2.1, 2.0.0
unak: Old stable branch maintainer
Platform maintainer
Linux
• akr
• normal person
• n0kada
and others
Windows
• unak
• n0kada
BSD
• nurse
Solaris
• ngoto
OS X
• n0kada
• mrkn
Q&A
Q. What’s “Ruby Core Team”?
A. I don’t know. It’s only called foreign Rubyists :)
Q. Is there territory of maintainer in Ruby?
A. Yes and No, Ruby committer can commit all of code in Ruby.
“With great power comes great responsibility.”
Uncle Ben, Spider-Man
Dev Resources
Ruby’s development resources
• Personal development environments
Windows, OS X, Linux, Solaris, AIX, BSD…
• Sponsored environments
• NaCl: Virtual server and operations
• Heroku: unlimited dyno and Addons
• IIJ: Virtual server
• Ruby association: budgets of build servers
• GMO globalsign: SSL certificates
*.ruby-lang.org
www.ruby-lang.org
Official Website of Ruby language. It’s hosted by Heroku.
svn.ruby-lang.org
Main repository of Ruby source. It’s hosted by NaCl
bugs.ruby-lang.org
Official issue tracker of Ruby. It’s hosted by Heroku
*.ruby-lang.org
ftp.ruby-lang.org
Site of distribute official package
docs.ruby-lang.org
Hosted document generated from RDoc and rubima project.
CDN
Our package distribution was supported by fastly.
cache.ruby-lang.org (It supports https)
Statistics of our CDN:
• USA: 52%, EU: 26%, Asia: 19%, Pacific: 3%
• Bandwidth: 2210.0 GB/month
• Requests: 682,616 req/month
What does mean “official”?
“official” means “Matz controllable”, I think.
Example of un-controllable things
• rubygems.org
• ruby-doc.org
• bundler.io
• rvm/rbenv/chruby
• Rubyists :)
Feature request
Issue tracker
Our official tracker is “bugs.ruby-lang.org”
Mailing list integration
• https://github.com/ruby/redmine_*
• This behavior is same as github
Continuous Upgrade Ruby and Rails to latest version.
github
github.com/ruby/ruby is ok for some ruby commuters.
But matz is not available github. If you hope to ask new feature to
Matz, You need to submit bugs.ruby-lang.org :bow:
Why Ruby does not use github???
• github is proprietary service
• ruby committers do not have problem with redmine
Tips of Feature request
see http://www.slideshare.net/hsbt/20140918-ruby-kaigi2014
1. We need to focus “Use case” than “function”.
2. We need to attach patch to feature request.
3. We need Matz approval. (It’s most important)
I think above requirements same as our working style like XP and
scrum named agile development process.
Test
Test
You can easily run tests for official Ruby test suite.
RubySpec is alternative test suite focused to support other ruby
implementation.
$ git clone https://github.com/ruby/ruby
$ autoconf && ./configure && make
$ make test
$ make test-all
$ make check TESTS="-j4"
$ make update-rubyspec
$ make test-rubyspec
Windows & OS X
We offered special customized environment at Travis CI for OS X
Microsoft supports our build environments for Windows.
Ruby CI
Ruby CI goal is entirely supports
all of Ruby platform.
We can detect a lot of build fails
using Ruby CI.
It has 2 or 3 versions every linux
distribution and BSD, Windows,
OS X, Solaris Environments.
http://rubyci.org
Do submit your patch
1. Write code :)
2. Run tests
3. Open bugs.ruby-lang.org and create new account
4. Open https://bugs.ruby-lang.org/projects/ruby-trunk/issues/
new
5. Attach your code and write description of your proposal
6. Press “submit”
Release
Version number and release cycle
We plan to release every christmas.
• 2.1.0: 2013/12/25
• 2.2.0: 2014/12/25
• 2.3.0: 2015/12/25(TBD)
We was using patchlevel before Ruby 2.1 like 2.0.0-p645. But We
could not plan to 2.0.1 and It confused to a lot of developers.
I proposed to change version model and It’s accepted by Matz.
Our Branch model
We backport fixes to stable
branch from trunk.
We do not merge fixes to trunk
from stable branch
Ruby 2.3.0 status
We are working on the next version of Ruby, 2.3.0, now. However,
the main feature is under “TBD” status. Some libraries will be
omitted from stdlib such as rake, net-telnet, etc..
If you have any issue, please submit it to our issue tracker at
http://bugs.ruby-lang.org
We hold the core developer meeting every months, and discuss
various issues and ideas on Ruby. See https://bugs.ruby-lang.org/
projects/ruby/wiki/#Developer-Meetings for details.
Developer Meeting
We hope to increase to transparency for Ruby development
process.
One of our challenges is “Developer Meeting”. It’s open
discussion time for feature and issue of Ruby every months.
[ruby-core:69550]: https://bugs.ruby-lang.org/projects/ruby/wiki/
DevelopersMeeting20150728Japan
Release management
We will release new version of Ruby at “Release Day” by @narse
There is no exception to this rule.
• If we have incompletion issue or feature, we will revert it.
• If we don’t have enough discussion for some issue, we don’t
merge or implement it into new version of ruby.
• If we found some regression, we need to fix it or revert to
related code or issue.
Security release
We have “security@ruby-lang.org” for security report. We
received buffer overflow, memory leak, escape string etc etc…
We hard to fix and release these security issue. so all of release
maintainer are volunteer work.
Our release delayed by preparing new releases of stable and old
stable version.
We should learn from OSS
I think “OSS is same as our working style than differences.”
We can lean following things(example):
• Write code
• Take care of development resources
• Focus Use-case
• Release management
1 of 45

Recommended

Ruby on Rails Presentation by
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails PresentationJoost Hietbrink
8.6K views53 slides
PHP Indonesia - Nodejs Web Development by
PHP Indonesia - Nodejs Web DevelopmentPHP Indonesia - Nodejs Web Development
PHP Indonesia - Nodejs Web DevelopmentIrfan Maulana
1.8K views46 slides
Afrimadoni the power of docker by
Afrimadoni   the power of dockerAfrimadoni   the power of docker
Afrimadoni the power of dockerPHP Indonesia
408 views20 slides
Ruby On Rails Presentation by
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationChanHan Hy
4.7K views21 slides
RoR (Ruby on Rails) by
RoR (Ruby on Rails)RoR (Ruby on Rails)
RoR (Ruby on Rails)scandiweb
2.5K views21 slides
Netflix Nebula - Gradle Summit 2014 by
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Justin Ryan
7.8K views48 slides

More Related Content

What's hot

Beginning Scala with Skinny Framework #jjug_ccc by
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_cccKazuhiro Sera
2.4K views46 slides
Ruby On Rails Basics by
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails BasicsAmit Solanki
6.3K views20 slides
Configuration As Code - Adoption of the Job DSL Plugin at Netflix by
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at NetflixJustin Ryan
68.4K views29 slides
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English) by
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)Hyun-woo Park
2.1K views62 slides
Ror Seminar With agilebd.org on 23 Jan09 by
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
972 views85 slides
Zero To Cloud (OSCon 2014) by
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)Justin Ryan
1.5K views43 slides

What's hot(20)

Beginning Scala with Skinny Framework #jjug_ccc by Kazuhiro Sera
Beginning Scala with Skinny Framework #jjug_cccBeginning Scala with Skinny Framework #jjug_ccc
Beginning Scala with Skinny Framework #jjug_ccc
Kazuhiro Sera2.4K views
Ruby On Rails Basics by Amit Solanki
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails Basics
Amit Solanki6.3K views
Configuration As Code - Adoption of the Job DSL Plugin at Netflix by Justin Ryan
Configuration As Code - Adoption of the Job DSL Plugin at NetflixConfiguration As Code - Adoption of the Job DSL Plugin at Netflix
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Justin Ryan68.4K views
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English) by Hyun-woo Park
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Hyun-woo Park2.1K views
Ror Seminar With agilebd.org on 23 Jan09 by Shaer Hassan
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
Shaer Hassan972 views
Zero To Cloud (OSCon 2014) by Justin Ryan
Zero To Cloud (OSCon 2014)Zero To Cloud (OSCon 2014)
Zero To Cloud (OSCon 2014)
Justin Ryan1.5K views
Lisp in the Cloud by Mike Travers
Lisp in the CloudLisp in the Cloud
Lisp in the Cloud
Mike Travers5.7K views
Mojolicious mvc by Arpad Szasz
Mojolicious mvcMojolicious mvc
Mojolicious mvc
Arpad Szasz1.2K views
SF Gradle Meetup - Netflix OSS by Justin Ryan
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
Justin Ryan2K views
Go & multi platform GUI Trials and Errors by Yoshiki Shibukawa
Go & multi platform GUI Trials and ErrorsGo & multi platform GUI Trials and Errors
Go & multi platform GUI Trials and Errors
Yoshiki Shibukawa5.4K views
TDD a REST API With Node.js and MongoDB by Valeri Karpov
TDD a REST API With Node.js and MongoDBTDD a REST API With Node.js and MongoDB
TDD a REST API With Node.js and MongoDB
Valeri Karpov1.9K views
Immutable infrastructure:觀念與實作 (建議) by William Yeh
Immutable infrastructure:觀念與實作 (建議)Immutable infrastructure:觀念與實作 (建議)
Immutable infrastructure:觀念與實作 (建議)
William Yeh7.5K views
Ruby on Rails Training - Module 1 by Mark Menard
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
Mark Menard3K views
10 things you should know about django by Adieu
10 things you should know about django10 things you should know about django
10 things you should know about django
Adieu7.1K views
JavaScript Engine and WebAssembly by Changhwan Yi
JavaScript Engine and WebAssemblyJavaScript Engine and WebAssembly
JavaScript Engine and WebAssembly
Changhwan Yi2.6K views
Bringing Interactivity to Your Drupal Site with Node.js Integration by Acquia
Bringing Interactivity to Your Drupal Site with Node.js IntegrationBringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Acquia7.3K views
In-browser storage and me by Jason Casden
In-browser storage and meIn-browser storage and me
In-browser storage and me
Jason Casden4.8K views

Viewers also liked

Introducing Selenium Builder – the Future of Test Development by
Introducing Selenium Builder – the Future of Test DevelopmentIntroducing Selenium Builder – the Future of Test Development
Introducing Selenium Builder – the Future of Test Developmentseleniumconf
6.9K views36 slides
Language and speech development by
Language and speech developmentLanguage and speech development
Language and speech developmentMPH_training_committee
17.3K views23 slides
The language story by
The language storyThe language story
The language storyUdayan Bakshi
749 views79 slides
The language story by
The language storyThe language story
The language storyThe Language Comapany
685 views79 slides
初見では読みづらいPerl by
初見では読みづらいPerl初見では読みづらいPerl
初見では読みづらいPerlKei Kamikawa
931 views27 slides
The triumph of english by
The triumph of englishThe triumph of english
The triumph of englishanocas_rita
1.7K views4 slides

Viewers also liked(20)

Introducing Selenium Builder – the Future of Test Development by seleniumconf
Introducing Selenium Builder – the Future of Test DevelopmentIntroducing Selenium Builder – the Future of Test Development
Introducing Selenium Builder – the Future of Test Development
seleniumconf6.9K views
初見では読みづらいPerl by Kei Kamikawa
初見では読みづらいPerl初見では読みづらいPerl
初見では読みづらいPerl
Kei Kamikawa931 views
The triumph of english by anocas_rita
The triumph of englishThe triumph of english
The triumph of english
anocas_rita1.7K views
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen... by seleniumconf
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...
Testing Rapidly Changing Applications With Self-Testing Object-Oriented Selen...
seleniumconf2.2K views
Using Selenium to Improve a Teams Development Cycle by seleniumconf
Using Selenium to Improve a Teams Development CycleUsing Selenium to Improve a Teams Development Cycle
Using Selenium to Improve a Teams Development Cycle
seleniumconf1.4K views
Self-Generating Test Artifacts for Selenium/WebDriver by seleniumconf
Self-Generating Test Artifacts for Selenium/WebDriverSelf-Generating Test Artifacts for Selenium/WebDriver
Self-Generating Test Artifacts for Selenium/WebDriver
seleniumconf4.3K views
Automatic Test Case Generation by Adnan Causevic
Automatic Test Case GenerationAutomatic Test Case Generation
Automatic Test Case Generation
Adnan Causevic1.5K views
Building Quality with Foundations of Mud by seleniumconf
Building Quality with Foundations of MudBuilding Quality with Foundations of Mud
Building Quality with Foundations of Mud
seleniumconf3.1K views
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015 by Shunsuke Kozawa
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
はてなブックマークのトピックページの裏側 in YAPC::Asia Tokyo 2015
Shunsuke Kozawa14.1K views
Middleware as Code with mruby by Hiroshi SHIBATA
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
Hiroshi SHIBATA4.8K views
GitHub Enterprise with GMO Pepabo by Hiroshi SHIBATA
GitHub Enterprise with GMO PepaboGitHub Enterprise with GMO Pepabo
GitHub Enterprise with GMO Pepabo
Hiroshi SHIBATA3.9K views
How to Begin Developing Ruby Core by Hiroshi SHIBATA
How to Begin Developing Ruby CoreHow to Begin Developing Ruby Core
How to Begin Developing Ruby Core
Hiroshi SHIBATA1.9K views

Similar to The story of language development

Gemification for Ruby 2.5/3.0 by
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Hiroshi SHIBATA
9K views62 slides
How to distribute Ruby to the world by
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
3.8K views51 slides
RubyStack: the easiest way to deploy Ruby on Rails by
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Railselliando dias
489 views30 slides
How to distribute Ruby to the world by
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
937 views47 slides
The secret of programming language development and future by
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and futureHiroshi SHIBATA
1.1K views76 slides
The Future of library dependency manageement of Ruby by
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of RubyHiroshi SHIBATA
988 views55 slides

Similar to The story of language development(20)

How to distribute Ruby to the world by Hiroshi SHIBATA
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA3.8K views
RubyStack: the easiest way to deploy Ruby on Rails by elliando dias
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Rails
elliando dias489 views
How to distribute Ruby to the world by Hiroshi SHIBATA
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
Hiroshi SHIBATA937 views
The secret of programming language development and future by Hiroshi SHIBATA
The secret of programming  language development and futureThe secret of programming  language development and future
The secret of programming language development and future
Hiroshi SHIBATA1.1K views
The Future of library dependency manageement of Ruby by Hiroshi SHIBATA
The Future of library dependency manageement of RubyThe Future of library dependency manageement of Ruby
The Future of library dependency manageement of Ruby
Hiroshi SHIBATA988 views
Exploring Ruby on Rails and PostgreSQL by Barry Jones
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
Barry Jones3.2K views
The Future of Bundled Bundler by Hiroshi SHIBATA
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
Hiroshi SHIBATA4.7K views
Make your app idea a reality with Ruby On Rails by Nataly Tkachuk
Make your app idea a reality with Ruby On RailsMake your app idea a reality with Ruby On Rails
Make your app idea a reality with Ruby On Rails
Nataly Tkachuk669 views
IronRuby for the Rubyist by Will Green
IronRuby for the RubyistIronRuby for the Rubyist
IronRuby for the Rubyist
Will Green1K views
Ruby, Rails, and the Open Source Community by Jim Myhrberg
Ruby, Rails, and the Open Source CommunityRuby, Rails, and the Open Source Community
Ruby, Rails, and the Open Source Community
Jim Myhrberg582 views
At&T Interactive: The Many Facets Of Ruby by Coby Randquist
At&T Interactive: The Many Facets Of RubyAt&T Interactive: The Many Facets Of Ruby
At&T Interactive: The Many Facets Of Ruby
Coby Randquist1.1K views
How to Begin to Develop Ruby Core by Hiroshi SHIBATA
How to Begin to Develop Ruby CoreHow to Begin to Develop Ruby Core
How to Begin to Develop Ruby Core
Hiroshi SHIBATA2.9K views
Code for Startup MVP (Ruby on Rails) Session 1 by Henry S
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
Henry S575 views
Ruby on Rails : First Mile by Gourab Mitra
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab Mitra982 views
Ship It ! with Ruby/ Rails Ecosystem by Yi-Ting Cheng
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
Yi-Ting Cheng1.8K views
Ruby on Rails - An overview by Thomas Asikis
Ruby on Rails -  An overviewRuby on Rails -  An overview
Ruby on Rails - An overview
Thomas Asikis1.4K views
Ruby Kaigi09 China Rubyupdate20090718 by tengu
Ruby Kaigi09 China Rubyupdate20090718Ruby Kaigi09 China Rubyupdate20090718
Ruby Kaigi09 China Rubyupdate20090718
tengu786 views

More from Hiroshi SHIBATA

How resolve Gem dependencies in your code? by
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?Hiroshi SHIBATA
20 views50 slides
How resolve Gem dependencies in your code? by
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?Hiroshi SHIBATA
12 views54 slides
Ruby コミッターと歩む Ruby を用いたプロダクト開発 by
Ruby コミッターと歩む Ruby を用いたプロダクト開発Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発Hiroshi SHIBATA
41 views14 slides
Why ANDPAD commit Ruby and RubyKaigi? by
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?Hiroshi SHIBATA
212 views17 slides
RailsGirls から始める エンジニアリングはじめの一歩 by
RailsGirls から始める エンジニアリングはじめの一歩RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩Hiroshi SHIBATA
845 views16 slides
How to develop the Standard Libraries of Ruby? by
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?Hiroshi SHIBATA
3.6K views25 slides

More from Hiroshi SHIBATA(20)

How resolve Gem dependencies in your code? by Hiroshi SHIBATA
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
Hiroshi SHIBATA20 views
How resolve Gem dependencies in your code? by Hiroshi SHIBATA
How resolve Gem dependencies in your code?How resolve Gem dependencies in your code?
How resolve Gem dependencies in your code?
Hiroshi SHIBATA12 views
Ruby コミッターと歩む Ruby を用いたプロダクト開発 by Hiroshi SHIBATA
Ruby コミッターと歩む Ruby を用いたプロダクト開発Ruby コミッターと歩む Ruby を用いたプロダクト開発
Ruby コミッターと歩む Ruby を用いたプロダクト開発
Hiroshi SHIBATA41 views
Why ANDPAD commit Ruby and RubyKaigi? by Hiroshi SHIBATA
Why ANDPAD commit Ruby and RubyKaigi?Why ANDPAD commit Ruby and RubyKaigi?
Why ANDPAD commit Ruby and RubyKaigi?
Hiroshi SHIBATA212 views
RailsGirls から始める エンジニアリングはじめの一歩 by Hiroshi SHIBATA
RailsGirls から始める エンジニアリングはじめの一歩RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
Hiroshi SHIBATA845 views
How to develop the Standard Libraries of Ruby? by Hiroshi SHIBATA
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
Hiroshi SHIBATA3.6K views
The details of CI/CD environment for Ruby by Hiroshi SHIBATA
The details of CI/CD environment for RubyThe details of CI/CD environment for Ruby
The details of CI/CD environment for Ruby
Hiroshi SHIBATA1.1K views
Dependency Resolution with Standard Libraries by Hiroshi SHIBATA
Dependency Resolution with Standard LibrariesDependency Resolution with Standard Libraries
Dependency Resolution with Standard Libraries
Hiroshi SHIBATA803 views
Roadmap for RubyGems 4 and Bundler 3 by Hiroshi SHIBATA
Roadmap for RubyGems 4 and Bundler 3Roadmap for RubyGems 4 and Bundler 3
Roadmap for RubyGems 4 and Bundler 3
Hiroshi SHIBATA794 views
The Future of library dependency management of Ruby by Hiroshi SHIBATA
 The Future of library dependency management of Ruby The Future of library dependency management of Ruby
The Future of library dependency management of Ruby
Hiroshi SHIBATA644 views
The Future of Dependency Management for Ruby by Hiroshi SHIBATA
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
Hiroshi SHIBATA7.4K views
Productive Organization with Ruby by Hiroshi SHIBATA
Productive Organization with RubyProductive Organization with Ruby
Productive Organization with Ruby
Hiroshi SHIBATA545 views
Gemification for Ruby 2.5/3.0 by Hiroshi SHIBATA
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
Hiroshi SHIBATA1.3K views
Gemification plan of Standard Library on Ruby by Hiroshi SHIBATA
Gemification plan of Standard Library on RubyGemification plan of Standard Library on Ruby
Gemification plan of Standard Library on Ruby
Hiroshi SHIBATA351 views

Recently uploaded

.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTVSplunk
86 views20 slides
"How we switched to Kanban and how it integrates with product planning", Vady... by
"How we switched to Kanban and how it integrates with product planning", Vady..."How we switched to Kanban and how it integrates with product planning", Vady...
"How we switched to Kanban and how it integrates with product planning", Vady...Fwdays
61 views24 slides
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr UspenskyiFwdays
26 views9 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
21 views37 slides
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI InfrastructureCXL Forum
125 views16 slides
TE Connectivity: Card Edge Interconnects by
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge InterconnectsCXL Forum
96 views12 slides

Recently uploaded(20)

.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
"How we switched to Kanban and how it integrates with product planning", Vady... by Fwdays
"How we switched to Kanban and how it integrates with product planning", Vady..."How we switched to Kanban and how it integrates with product planning", Vady...
"How we switched to Kanban and how it integrates with product planning", Vady...
Fwdays61 views
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi by Fwdays
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
"AI Startup Growth from Idea to 1M ARR", Oleksandr Uspenskyi
Fwdays26 views
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure by CXL Forum
Astera Labs:  Intelligent Connectivity for Cloud and AI InfrastructureAstera Labs:  Intelligent Connectivity for Cloud and AI Infrastructure
Astera Labs: Intelligent Connectivity for Cloud and AI Infrastructure
CXL Forum125 views
TE Connectivity: Card Edge Interconnects by CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 views
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by Fwdays
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
Fwdays40 views
MemVerge: Past Present and Future of CXL by CXL Forum
MemVerge: Past Present and Future of CXLMemVerge: Past Present and Future of CXL
MemVerge: Past Present and Future of CXL
CXL Forum110 views
Microchip: CXL Use Cases and Enabling Ecosystem by CXL Forum
Microchip: CXL Use Cases and Enabling EcosystemMicrochip: CXL Use Cases and Enabling Ecosystem
Microchip: CXL Use Cases and Enabling Ecosystem
CXL Forum129 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
Photowave Presentation Slides - 11.8.23.pptx by CXL Forum
Photowave Presentation Slides - 11.8.23.pptxPhotowave Presentation Slides - 11.8.23.pptx
Photowave Presentation Slides - 11.8.23.pptx
CXL Forum126 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada110 views
Micron CXL product and architecture update by CXL Forum
Micron CXL product and architecture updateMicron CXL product and architecture update
Micron CXL product and architecture update
CXL Forum27 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet52 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 views
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad... by Fwdays
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad..."Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
"Ukrainian Mobile Banking Scaling in Practice. From 0 to 100 and beyond", Vad...
Fwdays40 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views

The story of language development

  • 1. The story of language development Inside of CRuby core team
  • 2. self.introduce => { name: “SHIBATA Hiroshi”, nickname: “hsbt”, title: “Chief engineer at GMO Pepabo, Inc.”, commit_bits: [“ruby”, “rake”, “rubygems”, “rdoc”, “tdiary”, “hiki”, “railsgirls”, “railsgirls-jp”, “jenkins”], sites: [“ruby-lang.org”, “rubyci.com”, “railsgirls.com”, “railsgirls.jp”], }
  • 4. I’m from Asakusa.rb Asakusa.rb is one of the most active meet-ups in Tokyo, Japan. @a_matsuda (Ruby/Rails committer, RubyKaigi organizer) @kakutani (RubyKaigi organizer) @ko1 (Ruby committer) @takkanm (Ruby/Rails programmer) @gunjisatoshi (Rubyist Magazine editor) @hsbt (Me!) …
  • 10. Ruby
  • 11. What’s ruby “Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.” https://www.ruby-lang.org/en/ “簡単にいえばPerlのような手軽さで「楽しく」オブジェ クト指向しようという言語” https://www.ruby-lang.org/ja/about/
  • 12. Basis of MRI and YARV “ Throughout most of this book we’ll learn about the original, standard implementation of Ruby, known as Matz’s Ruby Interpreter (MRI) after Yukihiro Matsumoto, who invented Ruby in 1993.” Ruby Under a Microscope, p.4 “ With Ruby 1.9, Koichi Sasada and the Ruby core team introduced Yet Another Ruby Virtual Machine (YARV), which actually executes your Ruby code.” Ruby Under a Microscope, p.33 Ruby 1.8 Ruby 1.9
  • 13. Variation of Ruby Interpreter Implementation: • Ruby(MRI, CRuby) • JRuby • Rubinius • Opal ISO/IEC 30170:2012: • CRuby • mruby
  • 14. Differences between CRuby and Others It’s CRuby's world It’s other Ruby’s world
  • 15. How to make Ruby in 2015
  • 16. Requirements of Software development • People • Dev Resources • Issue tracking(feature, defects, etc) • Release management
  • 18. Ruby Committer Team Heroku • Matz(Director) • ko1(YARV author) • n0kada(Patch monster) and others(total 87 people + 1 bot) $ cat ~svn/.ssh/authorized_keys | awk '{print $5}' | sort | uniq | wc -l 88
  • 19. Branch maintainer trunk nurse: Release manager 2.2 nagachika: Stable branch maintainer 2.1, 2.0.0 unak: Old stable branch maintainer
  • 20. Platform maintainer Linux • akr • normal person • n0kada and others Windows • unak • n0kada BSD • nurse Solaris • ngoto OS X • n0kada • mrkn
  • 21. Q&A Q. What’s “Ruby Core Team”? A. I don’t know. It’s only called foreign Rubyists :) Q. Is there territory of maintainer in Ruby? A. Yes and No, Ruby committer can commit all of code in Ruby.
  • 22. “With great power comes great responsibility.” Uncle Ben, Spider-Man
  • 24. Ruby’s development resources • Personal development environments Windows, OS X, Linux, Solaris, AIX, BSD… • Sponsored environments • NaCl: Virtual server and operations • Heroku: unlimited dyno and Addons • IIJ: Virtual server • Ruby association: budgets of build servers • GMO globalsign: SSL certificates
  • 25. *.ruby-lang.org www.ruby-lang.org Official Website of Ruby language. It’s hosted by Heroku. svn.ruby-lang.org Main repository of Ruby source. It’s hosted by NaCl bugs.ruby-lang.org Official issue tracker of Ruby. It’s hosted by Heroku
  • 26. *.ruby-lang.org ftp.ruby-lang.org Site of distribute official package docs.ruby-lang.org Hosted document generated from RDoc and rubima project.
  • 27. CDN Our package distribution was supported by fastly. cache.ruby-lang.org (It supports https) Statistics of our CDN: • USA: 52%, EU: 26%, Asia: 19%, Pacific: 3% • Bandwidth: 2210.0 GB/month • Requests: 682,616 req/month
  • 28. What does mean “official”? “official” means “Matz controllable”, I think. Example of un-controllable things • rubygems.org • ruby-doc.org • bundler.io • rvm/rbenv/chruby • Rubyists :)
  • 30. Issue tracker Our official tracker is “bugs.ruby-lang.org” Mailing list integration • https://github.com/ruby/redmine_* • This behavior is same as github Continuous Upgrade Ruby and Rails to latest version.
  • 31. github github.com/ruby/ruby is ok for some ruby commuters. But matz is not available github. If you hope to ask new feature to Matz, You need to submit bugs.ruby-lang.org :bow: Why Ruby does not use github??? • github is proprietary service • ruby committers do not have problem with redmine
  • 32. Tips of Feature request see http://www.slideshare.net/hsbt/20140918-ruby-kaigi2014 1. We need to focus “Use case” than “function”. 2. We need to attach patch to feature request. 3. We need Matz approval. (It’s most important) I think above requirements same as our working style like XP and scrum named agile development process.
  • 33. Test
  • 34. Test You can easily run tests for official Ruby test suite. RubySpec is alternative test suite focused to support other ruby implementation. $ git clone https://github.com/ruby/ruby $ autoconf && ./configure && make $ make test $ make test-all $ make check TESTS="-j4" $ make update-rubyspec $ make test-rubyspec
  • 35. Windows & OS X We offered special customized environment at Travis CI for OS X Microsoft supports our build environments for Windows.
  • 36. Ruby CI Ruby CI goal is entirely supports all of Ruby platform. We can detect a lot of build fails using Ruby CI. It has 2 or 3 versions every linux distribution and BSD, Windows, OS X, Solaris Environments. http://rubyci.org
  • 37. Do submit your patch 1. Write code :) 2. Run tests 3. Open bugs.ruby-lang.org and create new account 4. Open https://bugs.ruby-lang.org/projects/ruby-trunk/issues/ new 5. Attach your code and write description of your proposal 6. Press “submit”
  • 39. Version number and release cycle We plan to release every christmas. • 2.1.0: 2013/12/25 • 2.2.0: 2014/12/25 • 2.3.0: 2015/12/25(TBD) We was using patchlevel before Ruby 2.1 like 2.0.0-p645. But We could not plan to 2.0.1 and It confused to a lot of developers. I proposed to change version model and It’s accepted by Matz.
  • 40. Our Branch model We backport fixes to stable branch from trunk. We do not merge fixes to trunk from stable branch
  • 41. Ruby 2.3.0 status We are working on the next version of Ruby, 2.3.0, now. However, the main feature is under “TBD” status. Some libraries will be omitted from stdlib such as rake, net-telnet, etc.. If you have any issue, please submit it to our issue tracker at http://bugs.ruby-lang.org We hold the core developer meeting every months, and discuss various issues and ideas on Ruby. See https://bugs.ruby-lang.org/ projects/ruby/wiki/#Developer-Meetings for details.
  • 42. Developer Meeting We hope to increase to transparency for Ruby development process. One of our challenges is “Developer Meeting”. It’s open discussion time for feature and issue of Ruby every months. [ruby-core:69550]: https://bugs.ruby-lang.org/projects/ruby/wiki/ DevelopersMeeting20150728Japan
  • 43. Release management We will release new version of Ruby at “Release Day” by @narse There is no exception to this rule. • If we have incompletion issue or feature, we will revert it. • If we don’t have enough discussion for some issue, we don’t merge or implement it into new version of ruby. • If we found some regression, we need to fix it or revert to related code or issue.
  • 44. Security release We have “security@ruby-lang.org” for security report. We received buffer overflow, memory leak, escape string etc etc… We hard to fix and release these security issue. so all of release maintainer are volunteer work. Our release delayed by preparing new releases of stable and old stable version.
  • 45. We should learn from OSS I think “OSS is same as our working style than differences.” We can lean following things(example): • Write code • Take care of development resources • Focus Use-case • Release management