Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby history of my life
Search
sugamasao
October 21, 2020
Technology
2
11k
Ruby history of my life
「集え、Rubyist ~著名Rubyistから学ぼう~ iCARE Dev Meetup #14」
での登壇資料です
https://icare.connpass.com/event/189356/
sugamasao
October 21, 2020
Tweet
Share
More Decks by sugamasao
See All by sugamasao
開発生産性、上から見るか 下から見るか / development productivity and cognitive science
sugamasao
12
7.5k
開発の安定性・スループットを定量的に見る #とは / Quantitative view of development
sugamasao
1
710
SaaS.tech #1 / SmartHR
sugamasao
2
4.3k
Perfect Ruby on Rails v2
sugamasao
0
19k
Ruby on Rails 6.0 New Feature
sugamasao
1
12k
Rubyを説明するのは難しい(仮) / ruby is difficult
sugamasao
5
9.2k
書籍執筆ツールRe:VIEWのご紹介 / yapc8oji
sugamasao
0
330
構成管理ツールを渡り歩いてItamaeに辿り着いた話/Itamae Meetup #1
sugamasao
1
1.2k
スペースの位置とか議論したくない
sugamasao
0
560
Other Decks in Technology
See All in Technology
Simplifying Data Analysis & Visualization with Developer Tools & AI
nitya
1
220
JaSST_Tokyo経験発表_20240313.pdf
ktanizaki
0
190
事業部を超えた 開発生産性向上に挑戦する
kentakozuka
2
180
イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)
koriym
4
1.7k
スケジュール指定のFargate Spotと友達になれた話
news_it_enj
0
240
書を捨てよ、現場へ出よう
nwiizo
11
8.8k
進化する事業とデータ構造 ~Cloudbaseの場合~
tockn
2
230
出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 「【速報】AWSの生成AIサービスであるAmazon Bedrock がリリースされたので朝イチで触ってみた」について語る
oshanqq
0
290
スクラムマスター不在でスクラムをやるのは(とても辛いので)やめておけ! #scrumfukuoka
nulabinc
PRO
4
900
The Twelve-Factor App とクラウドアプリケーションのコスト
ny7760
3
260
Pass On What You Have Learned: Deploying to Production
ianlee1521
0
150
どうやってWebサービスのページ表示速度を1/3にしたか / how-to-reduce-display-speed
pinkumohikan
2
470
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
15
6.3k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
11
1.4k
Building Your Own Lightsaber
phodgson
97
5.6k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
From Idea to $5000 a Month in 5 Months
shpigford
376
45k
YesSQL, Process and Tooling at Scale
rocio
160
13k
BBQ
matthewcrist
78
8.7k
What's new in Ruby 2.0
geeforr
335
31k
Large-scale JavaScript Application Architecture
addyosmani
501
110k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
The Power of CSS Pseudo Elements
geoffreycrofte
58
4.9k
Transcript
Rubyͷ ͍··Ͱͱ͜Ε͔Β sugamasao
[email protected]
iCARE Dev Meetup #14(2020/10/21)
Rubyͷ ͍··Ͱͱ͜Ε͔Β RubyͰϫΫϫΫ͠ ͖ͯͨΛ͠·͢
※ݸਓͷײ
HN:sugamasao PN:͕͢ΘΒ ·͞ͷΓ Rubyྺ : 14͘Β͍ Railsྺ : 10͘Β͍ •
ຊۀ • WebΞϓϦέʔγϣϯϓϩάϥϚʔ ʢגࣜձࣾSmartHRʣ • झຯ • Rubyʹؔ͢Δॻ੶ͷࣥච׆ಈ ͩΕʁ
झຯͷ׆ಈ ྦྷܭ5ʢ2վగ൛͋Γʣ
Ruby ָ͠ΜͰ·͔͢ʁ
ָ͠͞ʁ
ॻ͖ຯ ΤίγεςϜ ίϛϡχςΟ ਓͷָ͚ͩ͠Έํ͋Γ·͢Ͷ
ਓͧΕͧΕ ͍Ζ͍Ζ͋Δ
ʢࢲʣ ৽͍͠όʔδϣϯʹ Ճ͞ΕͨػೳΛݟΔͱ ڵฃͯ͠͠·͏
⚠⚠⚠ ͔͜͜Βઌಠࣗݚڀɾ ಠࣗղऍͰ͢ ⚠⚠⚠
Rubyͷͬ͘͟Γͨ͠όʔδϣϯͷ ྺ࢙ 1.0 1996 2000 1.6 2005 1.8.4 2010 1.9.2
2015 2020 2.3.0 3.0.0 ※Rubyͷ”࢝·Γ”Λ͍͔ͭΒͱଊ͑Δ͔ॾઆ͋Γ·͢
1996ʙ2004͘Β͍ 1.0 1996 2000 1.6 2005 1.8.4 2010 1.9.2 2015
2020 2.3.0 3.0.0
͝ΊΜͳ͍͞ɺ͋·Γ Βͳ͍Ͱ͢
1996ʙ2004͘Β͍ 1.0 1996 2000 1.6 1998 1.2 1999 1.4 2004
1.8.2 2003 1.8.0 ʙ C MagazineͰ࿈ࡌ RubyGemsҎલɺϥΠϒϥϦͳͲRAAͱ͍͏ αΠτʹࡌͤΔ/ࡌͬͯΔͷΛ୳࣌ͩͬͨ͢Α͏ͳʢهԱũƄūŘʣ RubyGemsެ։
2005ʙ2009͘Β͍ 1.0 1996 2000 1.6 2010 1.9.2 2015 2020 2.3.0
3.0.0 2005 1.8.4
2005ʙ2009͘Β͍ 2005 1.8.4 2009 2007 1.9.0 1.9.1 Ruby 1.8·Ͱ1.X͕ۮ =
҆ఆ൛ͱ͍͏Ґஔ͚ͮ 3VCZͷόʔδϣϯʹ͍ͭͯ Ruby 1.9.0։ൃ൛ Ruby 1.9.1ࢸߴͷ2.0.0͚ͯͷ҆ఆ൛ 2008 1.8.4 2005 1.8.7 2007 1.8.6 2007 1.8.5
2005ʙ2009͘Β͍ 2005 1.8.4 Rails 1.0ϦϦʔε 2009 2007 1.9.0 1.9.1
Rails 2.0ϦϦʔε(RESTfulϕʔεʹ) Rails 2.3ϦϦʔε(Rackϕʔεʹ) ຊRubyΧϯϑΝϨϯε ʢͷͪͷຊRubyձٞʣ ։࠵ Rubyͷιʔείʔυ͕SVNཧʹ Rails Conf 2006։࠵
Ruby 1.8ʙ1.9 Ruby 1.8ͱ1.9ʢ㲈2.0Ҏ߱ʣେ͖ͳมԽ͕͋Γ·ͨ͠ • YARVͱݺΕ͍ͯͨRubyͷιʔείʔυΛ όΠτίʔυʹม࣮ͯ͠ߦ͢ΔVMΛࡌ • จࣈྻͷଟݴޠԽʢM17NʣରԠ •
R.I.P $KCODE • จࣈྻͷѻ͍ํେ͖͘มΘΓɺASCIIҎ֎ͷ ΤϯίʔσΟϯάΛ͏߹Ϛδίϝඞਢ • ࡉ͔͍ߏจղऍͷมߋ • RubyGems/Rake͕ඪ४ఴʹ
Ruby 1.8ʙ1.9 • VMͷࡌʢ͘ͳͬͨʂʣRubyGemsͷඪ४ ఴʹΑΔศར͞ • ΤϯίʔσΟϯάͷѻ͍ߏจͷඍົͳඇޓʹ ΑΓʮRubyͬͯόʔδϣϯ͋͛Δͱ͙͢յΕΔ ͶʯΈ͍ͨͳΠϝʔδΛͨΕͨΓ ※ͪͳΈʹɺObjectSpaceripper1.9͔Β
ಋೖɾಉࠝ͞ΕΔΑ͏ʹͳΓ·ͨ͠
2010ʙ2014͘Β͍ 1.0 1996 2000 1.6 2015 2020 2.3.0 3.0.0 2005
1.8.4 2010 1.9.2 ݸਓͷײɿ͜͜Βล͔ΒRubyΛࣄͰ͏ձ͕ࣾ૿͖͑ͯͨ
2010ʙ2014͘Β͍ 2010 1.9.2 2014 2.2.0 2013/12 2.1.0 2013/2 2.0.0 2011
1.9.3 Rails 3.0ϦϦʔε Merbͱ౷߹͞Εͨ……!! Bundlerͷಋೖ Rails 3.1ϦϦʔε AssetPipelineͷಋೖ CoffeeScriptͷ࣌ʢJSίϯύΠϧ͢Εྑ͍ͱ͍͏ੈք؍ʣ “The Final RubyKaigi” ARelͷಋೖ reboot “RubyKaigi” Rails 3.2ϦϦʔε Rails 4.0ϦϦʔε (Ruby 1.9, 2.0Ҏ͕߱ λʔήοτʹ) Ruby 20पΠϕϯτ։࠵
͍ͭʹϦϦʔε͞ΕͨRuby 2.0 • Ruby 1.9.1ʙ1.9.3Λܦͯͷ2.0 • σϑΥϧτΤϯίʔσΟϯά͕UTF-8ʹͳͬͯ ʢଟ͘ͷ߹ʣϚδίϝෆཁʹ • ΈΜͳେ͖Refinements͕࣮ݧతػೳͱͯ͠ಋ
ೖ • Karnel#requireͷੑೳվળͰRails͕ૣ͘ͳΔ • GCʹBitmapMarkingΛಋೖ(CoWͱͷ૬ੑ͕ྑ͘ͳͬͨ) • ϦϦʔεαΠΫϧόʔδϣχϯάํͷมߋ
2015ʙ2019͘Β͍ 1.0 1996 2000 1.6 2005 1.8.4 2010 1.9.2 2015
2020 2.3.0 3.0.0 ݸਓͷײɿ͜͜Βล͔ΒRubyϑϧλΠϜίϛολʔ৬͕ͪΒ΄Βʁ
2015ʙ2019͘Β͍ 2015 2.3.0 2019 2.7.0 2016 2017 2018 2.4.0 2.5.0
2.6.0 RubyKaigi͕ ํͰ։࠵͞ΕΔΑ͏ʹ ΦϯϥΠϯ։࠵ͷRubyKaigi APIϞʔυͷಋೖ Ruby 2.2.2Ҏ߱Λαϙʔτ Yarn/Webpackerαϙʔτ Rails 5.0ϦϦʔε Rails 5.1ϦϦʔε Rails 5.2ϦϦʔε Rails 6.0 ϦϦʔε ※࠷ۙͷग़དྷࣄͳͷͰলུύRailsങͬͯ͘Ε!!! RubyϦϙδτϦ͕git
Ruby 2.3ʙ2.7 • 2.3.0 • “Frozen String Literal””&.””did you mean”ͷಋೖ
• 2.4.0 • “binding.irb”ͰσόοάՄೳʹ • HashͷߴԽ • 2.5.0 • ERB͕ΊͬͪΌૣ͘ͳΔ • ppͷࣗಈrequire
Ruby 2.3ʙ2.7 • 2.6.0 • Jitͷ࣮ݧతಋೖ • Bundler͕σϑΥϧτgemͱͯ͠ಉࠝ͞ΕΔΑ͏ʹ • 2.7.0
• irb͕relineʹΑΔ࣮ʹͳͬͯ͘͢͝ͳΔ • “ྩ”ʹରԠ(UnicodeରԠ) • Pattern Matchingͷ࣮ݧతಋೖ • default gemsԽͷਪਐ • ΩʔϫʔυҾͷܯࠂൃੜʢ2.7.2Ͱ੍͞Εͨʣ
Ruby 3.0 1.0 1996 2000 1.6 2005 1.8.4 2010 1.9.2
2015 2020 2.3.0 3.0.0
Ruby 3.0 “ੑೳͷվળͱ ੜ࢈ੑͷվળ" Ruby Kaigi Takeout Matz KeynoteΑΓ
Ruby 3.0 • Fast • Concurrent • Correct ͘Θ͘͠Ruby Kaigi
Takeout Matz KeynoteݟͯͶʢURLࢀߟจݙʹࡌͤͯ·͢ʣ ʢଞʹͨ͘͞Μʂʣ
Fast • JITίϯύΠϥͷಋೖ • GCͷվળ
Concurrent • Async I/O Fiber • Ractor ϚϧνίΞ࣌ʹϦιʔεΛ༗ޮ׆༻͢Δ ͨΊʹฒߦ(CPU)࣮ߦͷखஈ͕ཉ͍͠
Correct • RBS(Ruby Signature) • Type Profiler(RBS Generations) • Static
Type Checker(Third-Party) ࣮ߦલʹෆ߹ΛݕͰ͖ΔΑ͏ʹ͢ΔͨΊͷ Static Type Checksػߏ ※TypeProfͱ͍͏໊લʹมΘΓ·ͨ͠
(ຖࢮΜͰΔͬͯݴΘΕΔ͚Ͳ) ͜Ε͔ΒRubyͰίʔυॻ͍͍ͯͧ͘ʂʂʂ̍
ࢀߟจݙ - ΦϒδΣΫτࢦεΫϦϓτݴޠ Ruby - https://www.amazon.co.jp/dp/4756132545 - ϓϩάϥϛϯάRuby―ୡਓϓϩάϥϚʔΨΠυ - https://www.amazon.co.jp/dp/4894714531
- Ruby ιʔείʔυશղઆ - https://book.impress.co.jp/books/1721 - ʮRuby on Rails 1.0ʯ͕ਖ਼ࣜϦϦʔε - https://www.itmedia.co.jp/enterprise/articles/0512/15/news098.html - “RESTful”ͳRuby on Rails 2.0ϦϦʔε - https://www.itmedia.co.jp/enterprise/articles/0712/11/news027.html - Rack౷߹ʮRuby on Rails 2.3ʯਖ਼ࣜ൛͕ϦϦʔε - https://mag.osdn.jp/09/03/18/0152252 - rails 3.0 - https://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done/ - Ruby 20प - https://ruby20th.herokuapp.com/ - Ruby 2.3.0 - https://www.ruby-lang.org/ja/news/2015/12/25/ruby-2-3-0-released/ - Ruby 2.4.0 - https://www.ruby-lang.org/ja/news/2016/12/25/ruby-2-4-0-released/ - Ruby 2.5.0 - https://www.ruby-lang.org/ja/news/2017/12/25/ruby-2-5-0-released/ - Ruby 2.6.0 - https://www.ruby-lang.org/ja/news/2018/12/25/ruby-2-6-0-released/ - Ruby 2.7.0 - https://www.ruby-lang.org/ja/news/2019/12/25/ruby-2-7-0-released/ - RubyKaigi Takeout Matz Keynote - https://www.youtube.com/watch?v=wVrJZReHlM8