Upgrade to Pro — share decks privately, control downloads, hide ads and more …

18年でRubyから学んだこと - 関西Ruby会議 2017

Yuichiro MASUI
May 28, 2017
2k

18年でRubyから学んだこと - 関西Ruby会議 2017

Yuichiro MASUI

May 28, 2017
Tweet

Transcript

  1. 18೥Ͱ
    Ruby͔ΒֶΜͩ͜ͱ
    Yuichiro MASUI

    View Slide

  2. @masuidrive
    Yuichiro MASUI
    Toreta, Inc. CTO

    View Slide

  3. ෩࿊άϥϚʔ

    View Slide

  4. ITܳਓ

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. Rubyྺ 18೥͙Β͍
    • ͨͿΜ1999೥͙Β͍͔Β࢖ͬͯΔ
    • PHP/FI͸1997೥͔Β
    • ͦͷલ͸Perl, C, C++

    View Slide

  9. Ruby
    • Ͳ͜Ͱݟ͚ͭͨͷ͔֮͑ͯͳ͍
    • ݩʑݴޠεΩʔͰ৭ʑͳݴޠΛࢼ͍ͯͨ͠͸ͣ
    • ΦϒδΣΫτࢦ޲Λखܰʹ࢖͑Δ
    • ΠϯλϓϦλͰ৭ʑࢼͤΔ
    • ೔ຊޠͰҰ࣍৘ใ͕͋Δ

    View Slide

  10. method_missing
    • Ұ൪޷͖ͳϝιου
    • ͳΜͰ΋ΞϦ
    • ݪҼෆ໌ͳڍಈͷݩڟ
    • ιʔεΛ௥͏ͷΛ΄΅ෆՄೳʹ͢Δ
    • ࣍͸ define_method

    View Slide

  11. dRuby
    • Java / RMIͱ͔ʹϋϚͬͯͨ
    • ෼ࢄΦϒδΣΫτͱ͔ਥೋతʹ͓͍͍͠
    • ιʔείʔυΊͬͪΌ୹͍

    View Slide

  12. ͣʔͬͱϢʔβ
    • Rubyຊମʹ͸ίϛοτ΋ͤͣ
    • ϝʔϦϯάϦετ΋1-2ճ࣭໰͚ͨͩ͠
    • ίϛϡχςΟʔ׆ಈ΋ͳ͠
    • Gem΋Ұݸ͚ͩ

    View Slide

  13. ਺গͳ͍ߩݙ

    View Slide

  14. mruby

    View Slide

  15. 1999೥
    • i-mode
    • PHP, PostgreSQL
    • ݸਓతʹ͸ FreeBSD > Linux
    • ADSLҎલ (Y! BB͸2001೥)

    View Slide

  16. ౰࣌ͷRubyͷ࢖͍ಓ
    • ศརͳone liner (awkͷ୅ΘΓͱ͔)
    • ςΩετ΍CSVԽͨ͠σʔλϕʔεͷલॲཧ
    • ूܭॲཧ

    View Slide

  17. Rubyຊ

    View Slide

  18. ΦϒδΣΫτࢦ޲
    • ΄ͱΜͲRuby͔Β֮͑ͨ
    • Ϋϥεϕʔε͚ͩͲߴ͍ॊೈੑ
    • ଟ༷ͳϥΠϒϥϦͱαϯϓϧ

    View Slide

  19. RubyʹڭΘͬͨ͜ͱ
    • ΠςϨʔλ
    • Ϋϩʔδϟ
    • ϝλϓϩάϥϛϯά
    • Ϣχοτςετ

    View Slide

  20. 2000೥୅લ൒
    • PHPͰPukiWiki࡞ͬͯͨ
    • ىۀͯ͠i-modeͷαΠτߏங
    • Linux World΍Linux MagazineͰࣥච
    • Ajaxؔ܎ͷهࣄ΍ຊΛࣥච

    View Slide

  21. WindowsͰ΋ؤுͬͯͨ
    • wxWindowsͱ͔QT࢖ͬͯGUIΞϓϦ࡞Γ
    • exerb࢖ͬͯύοέʔδϯά
    • ActiveScript Ruby

    View Slide

  22. Ruby on Rails
    • 2004/07 - DHH͕ެ։
    • 2005೥಄͙Β͍ʹൃݟ
    • ͍͢͝ʂRubyͰWebΞϓϦ͕ΩϨΠʹ࡞ΕΔʂ

    View Slide

  23. 2005೥͔ΒRuby௮͚
    • RailsΛࢼͯ͠
    • ϒϩάॻ͍ͯ
    • ࡶࢽʹهࣄΛॻ͘

    View Slide

  24. OSC Hokkaido 2005
    • ͨͿΜॳΊͯMatzΛݟͨͷ͸͜ͷ࣌
    • جௐߨԋͷ࣭ٙԠ౴ΛӳޠͰ΍͍ͬͯͨ
    • ӳޠ͠Ό΂ΕΔͷ͸͍͍ͳͱࢥͬͨΒ͍͠

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. RailsConf 2006
    • ॳΊͯͷւ֎
    • ӳޠྗθϩ
    • ϦΞϧRuby༑ୡ΋΄΅θϩ

    View Slide

  30. ॳͷւ֎ΧϯϑΝϨϯε
    • ӳޠ෼͔Βͳ͍͔ΒԿݴͬͯΔ͔෼͔Βͳ͍
    • εϥΠυݟΔͱͳΜͱͳ͘෼͔Δ
    • ࣮͸େͨ͜͠ͱΛݴͬͯͳ͍ʢؾ͕͢Δʣ
    • Railsษڧձ@౦ژͷํ͕εΰ͘ͳ͍ʁ

    View Slide

  31. ͳΒ౉ถ͠Α͏
    • RubyྺͳΒઈରࣗ෼ͷํ͕௕͍
    • ͜Ε͘Β͍ͷൃදɺ೔ຊޠͳΒࢲͰ΋ग़དྷΔ
    • ॅΊ͹ӳޠ͙Β͍Ͱ͖ΔΑ͏ʹͳΔΜ͡Όͳ͍ʁ

    View Slide

  32. ৭ʑ͋ͬͯ2008೥౉ถ
    • தౡ૱͞ΜͱೋਓͰBig Canvas, Inc.ઃཱ
    • γΞτϧʹҠॅ
    • iPhone޲͚ࣸਅڞ༗ΞϓϦPhotoShareΛϦϦʔ
    ε

    View Slide

  33. View Slide

  34. Seattle.rb
    • γΞτϧͷRubyίϛϡχςΟ
    • Nokogiriͷ@tenderlove΍ RubyGemsͷ@drbrain
    • ຖिΧϑΣͰmeet up
    • ӳޠ෼͔Βͳ͍͚ͲͳΜͱͳ͘ࢀՃ֮ͯ͑ͨ͠

    View Slide

  35. Appcelerator΁స৬
    • ஌Γ߹͍ͷ͍ͳ͍ίϛϡχςΟʔͰ׆ಈ͍ͨ͠
    • Node.jsͱTitanium Mobile
    • Titanium MobileʹύονૹͬͨΓνϟοτͰ࿩
    ͨ͠͠Γ͍ͯ͠Δ͏ͪʹதͷਓʹ

    View Slide

  36. ӨڹΛड͚ͨਓ

    View Slide

  37. ςΫϊϩδʔʹѪΛᨳ͏
    • ࢲͷΦʔϓϯιʔε΁ͷಈػͱ৘೤ͷݯ͸ѪͰ͢

    http://el.jibun.atmarkit.co.jp/rails/2012/10/ruby-matz-7080.html
    • ͳͥRubyΛѪ͍ͯ͠Δͷ͔ - ͦΕ͸೉͍࣭͠໰
    ͩɻ ͳͥԞ͞ΜΛѪ͍ͯ͠Δͷ͔؆୯ʹ͸౴͑Β
    Εͳ͍ΑͶɻ

    http://jp.rubyist.net/RubyKaigi2007/Log0610-S5.html

    View Slide

  38. ϩδΧϧ͡Όͳ͍

    View Slide

  39. Ѫ͸׮༰Ͱ͋ΓɺѪ͸਌੾Ͱ͢ɻ·ͨਓΛͶͨΈ·ͤΜɻ
    Ѫ͸ࣗຫͤͣɺߴຫʹͳΓ·ͤΜɻྱّʹ൓͢Δ͜ͱΛ
    ͤͣɺࣗ෼ͷརӹΛٻΊͣɺౖΒͣɺਓͷͨ͠ѱΛࢥΘͣɺ
    ෆਖ਼Λت͹ͣʹਅཧΛتͼ·͢ɻ͢΂ͯΛ͕·Μ͠ɺ͢
    ΂ͯΛ৴͡ɺ͢΂ͯΛظ଴͠ɺ͢΂ͯΛ଱͑೜ͼ·͢ɻ
    Ѫ͸ܾͯ͠ઈ͑Δ͜ͱ͕͋Γ·ͤΜɻ

    ʢίϦϯτਓ΁ͷखࢴI 13ɿ4ʙ8ʣ

    View Slide

  40. Matz
    Is

    Nice
    So
    We
    Are
    Nice

    View Slide

  41. View Slide

  42. Matz͸ετʔϦʔΛ

    ޠΔͷ্͕ख͍

    View Slide

  43. ॳΊͯͷRubyຊମ΁ͷ
    ߩݙ

    View Slide

  44. mruby
    • ૊ΈࠐΈ޲͚Ruby
    • શ͘৽͍࣮͠૷
    • RubyConf 2010Ͱฉ͍ͨ
    • ͔ͦͬΒਐḿΛશવฉ͔ͳ͍

    View Slide

  45. View Slide

  46. ΍Δ͜ͱଟ਺
    • ී௨ʹόά͕࢒ͬͯΔ
    • ίϯύΠϧࡁΈmrubyϑΝΠϧͷϑΥʔϚοτ
    • ϏϧυγεςϜ
    • RubyGems૬౰ͷγεςϜ

    View Slide

  47. View Slide

  48. GitHubҎޙͷ։ൃίϛϡχςΟ
    • ίʔυͷมߋ΍ߩݙ͕ՄࢹԽ͞Εͨ
    • ίϛϡχέʔγϣϯ͕ߏ଄Խ͞Εͨ
    • ίϛολͱίϯτϦϏϡʔλ۠ผ͕ബ͘ͳͬͨ

    View Slide

  49. MobiRuby
    • iOSͷΞϓϦΛRubyͰॻ͚Δ
    • Cocoa/Objective-CͱmrubyͷϒϦοδ
    • Titanium MobileͷΞʔΩςΫνϟͷ໰୊Λղফ

    View Slide

  50. View Slide

  51. MobiRubyͷ΋͘ΖΈ

    View Slide

  52. MobiRubyͷ΋͘ΖΈ

    View Slide

  53. Matzʹ͸ͳΕͳ͍

    View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. View Slide

  58. View Slide

  59. Ruby͔ΒಘͨϞϊ
    • ٕज़ऀͱͯ͠ͷ෢ث
    • ΤϯδχΞϦϯάͷ஌ࣝ
    • ίϛϡχςΟʔͷखຊ
    • ଟ͘ͷ༑ਓɾଚܟͰ͖Δਓୡ

    View Slide

  60. Ruby͔ΒಘͨϞϊ

    View Slide