「集え、Rubyist ~著名Rubyistから学ぼう~ iCARE Dev Meetup #14」 での登壇資料です https://icare.connpass.com/event/189356/
Rubyͷ͍··Ͱͱ͜Ε͔Βsugamasao[email protected]iCARE Dev Meetup #14(2020/10/21)
View Slide
Rubyͷ͍··Ͱͱ͜Ε͔ΒRubyͰϫΫϫΫ͖ͯͨ͠Λ͠·͢
※ݸਓͷײ
HN:sugamasaoPN:͕͢ΘΒ ·͞ͷΓRubyྺ : 14͘Β͍Railsྺ : 10͘Β͍• ຊۀ• WebΞϓϦέʔγϣϯϓϩάϥϚʔʢגࣜձࣾSmartHRʣ• झຯ• Rubyʹؔ͢Δॻ੶ͷࣥච׆ಈͩΕʁ
झຯͷ׆ಈྦྷܭ5ʢ2վగ൛͋Γʣ
Rubyָ͠ΜͰ·͔͢ʁ
ָ͠͞ʁ
ॻ͖ຯΤίγεςϜίϛϡχςΟਓͷָ͚ͩ͠Έํ͋Γ·͢Ͷ
ਓͧΕͧΕ͍Ζ͍Ζ͋Δ
ʢࢲʣ৽͍͠όʔδϣϯʹՃ͞ΕͨػೳΛݟΔͱڵฃͯ͠͠·͏
⚠⚠⚠͔͜͜ΒઌಠࣗݚڀɾಠࣗղऍͰ͢⚠⚠⚠
Rubyͷͬ͘͟Γͨ͠όʔδϣϯͷྺ࢙1.01996 20001.620051.8.420101.9.22015 20202.3.0 3.0.0※Rubyͷ”࢝·Γ”Λ͍͔ͭΒͱଊ͑Δ͔ॾઆ͋Γ·͢
1996ʙ2004͘Β͍1.01996 20001.620051.8.420101.9.22015 20202.3.0 3.0.0
͝ΊΜͳ͍͞ɺ͋·ΓΒͳ͍Ͱ͢
1996ʙ2004͘Β͍1.01996 20001.619981.219991.420041.8.220031.8.0ʙC MagazineͰ࿈ࡌRubyGemsҎલɺϥΠϒϥϦͳͲRAAͱ͍͏αΠτʹࡌͤΔ/ࡌͬͯΔͷΛ୳࣌ͩͬͨ͢Α͏ͳʢهԱũƄūŘʣRubyGemsެ։
2005ʙ2009͘Β͍1.01996 20001.620101.9.22015 20202.3.0 3.0.020051.8.4
2005ʙ2009͘Β͍20051.8.4200920071.9.0 1.9.1Ruby 1.8·Ͱ1.X͕ۮ = ҆ఆ൛ͱ͍͏Ґஔ͚ͮ3VCZͷόʔδϣϯʹ͍ͭͯRuby 1.9.0։ൃ൛Ruby 1.9.1ࢸߴͷ2.0.0͚ͯͷ҆ఆ൛20081.8.420051.8.720071.8.620071.8.5
2005ʙ2009͘Β͍20051.8.4Rails 1.0ϦϦʔε200920071.9.0 1.9.1Rails 2.0ϦϦʔε(RESTfulϕʔεʹ)Rails 2.3ϦϦʔε(Rackϕʔεʹ)ຊRubyΧϯϑΝϨϯεʢͷͪͷຊRubyձٞʣ։࠵Rubyͷιʔείʔυ͕SVNཧʹRails Conf 2006։࠵
Ruby 1.8ʙ1.9Ruby 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.01996 20001.62015 20202.3.0 3.0.020051.8.420101.9.2ݸਓͷײɿ͜͜Βล͔ΒRubyΛࣄͰ͏ձ͕ࣾ૿͖͑ͯͨ
2010ʙ2014͘Β͍20101.9.220142.2.02013/122.1.02013/22.0.020111.9.3Rails 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.01996 20001.620051.8.420101.9.22015 20202.3.0 3.0.0ݸਓͷײɿ͜͜Βล͔ΒRubyϑϧλΠϜίϛολʔ৬͕ͪΒ΄Βʁ
2015ʙ2019͘Β͍20152.3.020192.7.02016 2017 20182.4.0 2.5.0 2.6.0RubyKaigi͕ํͰ։࠵͞ΕΔΑ͏ʹ ΦϯϥΠϯ։࠵ͷRubyKaigiAPIϞʔυͷಋೖ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.01.01996 20001.620051.8.420101.9.22015 20202.3.0 3.0.0
Ruby 3.0“ੑೳͷվળͱੜ࢈ੑͷվળ"Ruby Kaigi TakeoutMatz KeynoteΑΓ
Ruby 3.0• Fast• Concurrent• Correct͘Θ͘͠Ruby Kaigi TakeoutMatz 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