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

Program into your language, Not in it

Program into your language, Not in it

Koji SHIMADA
PRO

August 06, 2012
Tweet

More Decks by Koji SHIMADA

Other Decks in Technology

Transcript

  1. ౡాߒೋ
    [email protected]
    ೥݄೔ ݄
    3VCZΞδϟΠϧ։ൃηϛφʔJOࡳຈ
    — Program into your language, Not in it.
    3VCZͰֶͿɺ3VCZΛ࿩͢
    12೥8݄6೔݄༵೔

    View Slide

  2. ࠓ೔ɺ͓఻͍͑ͨ͜͠ͱ
    12೥8݄6೔݄༵೔

    View Slide

  3. ݴޠΛબ୒͢Δ͜ͱ
    ιϑτ΢ΣΞ։ൃʹͱͬͯӨڹͷେ
    ͖͍େ੾ͳ൑அ
    12೥8݄6೔݄༵೔

    View Slide

  4. ݴޠΛֶͼ͚ͭͮΔ͜ͱ
    ιϑτ΢ΣΞ։ൃऀʹͱͬͯੜଘ
    ͍ͯͨ͘͠Ίʹॏཁͳ׆ಈ
    12೥8݄6೔݄༵೔

    View Slide

  5. ࣗݾ঺հ
    12೥8݄6೔݄༵೔

    View Slide

  6. ͠·ͩ͜͏͡
    ౡాߒೋ
    Photo by tmaeda
    12೥8݄6೔݄༵೔

    View Slide

  7. 12೥8݄6೔݄༵೔

    View Slide

  8. 12೥8݄6೔݄༵೔

    View Slide

  9. Ұൠࣾஂ๏ਓ-0$"-
    12೥8݄6೔݄༵೔

    View Slide

  10. ͨͷ͍͠
    ʠ+PZGVM3VCZʡ
    12೥8݄6೔݄༵೔

    View Slide

  11. 12೥8݄6೔݄༵೔

    View Slide

  12. Photo by darashi
    3VCZࡳຈ
    from Sapporo, with Love for Ruby
    12೥8݄6೔݄༵೔

    View Slide

  13. IUUQTBQQPSPSVCZLBJHJPSH
    12೥8݄6೔݄༵೔

    View Slide

  14. 12೥8݄6೔݄༵೔

    View Slide

  15. 12೥8݄6೔݄༵೔

    View Slide

  16. ΑΖ͘͠
    ͓ئ͍͠·͢
    12೥8݄6೔݄༵೔

    View Slide

  17. ౡాߒೋ
    [email protected]
    ೥݄೔ ݄
    3VCZΞδϟΠϧ։ൃηϛφʔJOࡳຈ
    — Program into your language, Not in it.
    3VCZͰֶͿɺ3VCZΛ࿩͢
    12೥8݄6೔݄༵೔

    View Slide

  18. ݴޠΛબ୒͢Δ͜ͱ
    ιϑτ΢ΣΞ։ൃʹͱͬͯӨڹͷେ
    ͖͍େ੾ͳ൑அ
    12೥8݄6೔݄༵೔

    View Slide

  19. (ͦΜͳ͜ͱ͍ͬͯ΋)
    12೥8݄6೔݄༵೔

    View Slide

  20. • XX։ൃऀͱͯ͠ݱ৔ʹݺ͹ΕΔ
    • ʮͣͬͱXXͰ΍ͬͯΔ͔Βʯ
    ݴޠ͸બ΂ͳ͍(͜ͱ͕ଟ͍)
    12೥8݄6೔݄༵೔

    View Slide

  21. Α͘Θ͔͍ͬͯ·͢
    12೥8݄6೔݄༵೔

    View Slide

  22. ͚Ͳɺͦͷ͕͖࣌ͨΒ
    12೥8݄6೔݄༵೔

    View Slide

  23. • ͜Ε·ͰͱҟͳΔछྨͷιϑτ΢ΣΞ
    • ৽͘͠։ൃ
    • ʮݴޠ͸ԿͰ΋͍͍͔Βʯ
    ͦͷ࣌
    12೥8݄6೔݄༵೔

    View Slide

  24. ͦͷͨΊʹ͸
    ݴޠΛબ୒Ͱ͖Δࢲͨͪ
    Ͱͳ͚Ε͹ͳΒͳ͍
    12೥8݄6೔݄༵೔

    View Slide

  25. ݴޠ
    12೥8݄6೔݄༵೔

    View Slide

  26. ͨ͘͞Μͷݴޠ
    12೥8݄6೔݄༵೔

    View Slide

  27. 1986 1990 1990 1991 1991 1993 1994
    History of Programming Languages
    1960
    1954 1965 1970 1975 1980 1985
    For more than half of the fifty years computer programmers have been
    writing code, O’Reilly has provided developers with comprehensive,
    in-depth technical information. We’ve kept pace with rapidly changing
    technologies as new languages have emerged, developed, and
    matured. Whether you want to learn something new or need
    answers to tough technical questions, you’ll find what you need
    in O’Reilly books and on the O’Reilly Network.
    This timeline includes fifty of the more than 2500 documented
    programming languages. It is based on an original diagram created
    by Éric Lévénez (www.levenez.com), augmented with suggestions
    from O’Reilly authors, friends, and conference attendees.
    For information and discussion on this poster,
    go to www.oreilly.com/go/languageposter.
    www.oreilly.com
    http://oreilly.com/news/languageposter_0504.html
    12೥8݄6೔݄༵೔

    View Slide

  28. 990 1991 1991 1993 1994 1995 1996 1996 1997 1997 2000 2001 2001 2003 2003 2004
    ©2004 O’Reilly Media, Inc. O’Reilly logo is a registered trademark of O’Reilly Media, Inc. All other trademarks are property of their respective owners. part#30417
    1980 1985 1990 1995 2000 2002
    2001 2003 2004
    http://oreilly.com/news/languageposter_0504.html
    12೥8݄6೔݄༵೔

    View Slide

  29. 990 1991 1991 1993 1994 1995 1996 1996 1997 1997 2000 2001 2001 2003 2003 2004
    ©2004 O’Reilly Media, Inc. O’Reilly logo is a registered trademark of O’Reilly Media, Inc. All other trademarks are property of their respective owners. part#30417
    1980 1985 1990 1995 2000 2002
    2001 2003 2004
    http://oreilly.com/news/languageposter_0504.html
    Ruby
    is here!
    12೥8݄6೔݄༵೔

    View Slide

  30. Ͳ͏બΜͩΒྑ͍ͷ͔
    12೥8݄6೔݄༵೔

    View Slide

  31. ࠓ೔ͨ͘͞Μͷݴޠ͕
    ଘࡏ͍ͯ͠Δཧ༝
    12೥8݄6೔݄༵೔

    View Slide

  32. ڵຯͷ͋Δ໰୊ͱ
    ͦͷଊ͑ํɺ
    ͦͯ͠ղ͖ํ͕ҟͳΔ
    12೥8݄6೔݄༵೔

    View Slide

  33. ໰୊
    12೥8݄6೔݄༵೔

    View Slide

  34. ໰୊
    αΠζ
    ηΩϡϦςΟ
    ύϑΥʔϚϯε
    ن໛
    ϋʔυ΢ΣΞͷ੍໿
    ฒྻੑ
    ಉ࣮࣌ߦੑ
    อकੑ
    ඼࣭
    12೥8݄6೔݄༵೔

    View Slide

  35. ໰୊ͷଊ͑ํ
    12೥8݄6೔݄༵೔

    View Slide

  36. ݴޠ͕ར༻͢Δิॿઢ
    12೥8݄6೔݄༵೔

    View Slide

  37. ϓϩάϥϛϯάɾύϥμΠϜ
    12೥8݄6೔݄༵೔

    View Slide

  38. • ໰୊Λѻ͍΍͘͢͢ΔͨΊͷੈքͷݟํ
    • ʮ͍ͬͨΜ͜͏ଊ͑·͠ΐ͏ʯ
    ϓϩάϥϛϯάɾύϥμΠϜ
    12೥8݄6೔݄༵೔

    View Slide

  39. ϓϩάϥϛϯάݴޠ
    ݴޠ͸ύϥμΠϜΛ࢖ͬͯ໰୊Λѻ
    ͍΍͍͢ੈքΛߏஙͯ͠ɺ໰୊ʹର
    ͢ΔιϦϡʔγϣϯΛϢʔβʹఏڙ
    ͢Δ
    39
    12೥8݄6೔݄༵೔

    View Slide

  40. Ͱɺݱঢ়ͷԿ͕μϝͳΜ͚ͩͬ
    12೥8݄6೔݄༵೔

    View Slide

  41. ॏཁͳ͜ͱ
    12೥8݄6೔݄༵೔

    View Slide

  42. ໰୊͸Ҡ͍ͬͯ͘
    12೥8݄6೔݄༵೔

    View Slide

  43. • ϋʔυ΢ΣΞͷਐԽʹΑͬͯ
    • Ϗδωεཁ݅ͷมԽʹΑͬͯ
    • ͭ͘Δ΋ͷͷมԽʹΑͬͯ
    ໰୊͸Ҡ͍ͬͯ͘
    12೥8݄6೔݄༵೔

    View Slide

  44. ໰୊ͩͱࢥ͍ͬͯͨ͜ͱ͕
    ໰୊Ͱͳ͘ͳΔ
    12೥8݄6೔݄༵೔

    View Slide

  45. ผͷ໰୊͕ओઓ৔ʹҠ͍ͬͯΔ
    12೥8݄6೔݄༵೔

    View Slide

  46. ݴޠΛม͑ͳ͍͜ͱͷϦεΫ
    12೥8݄6೔݄༵೔

    View Slide

  47. ݴޠΛม͑Δ͜ͱͷϦεΫ
    12೥8݄6೔݄༵೔

    View Slide

  48. ϝϦοτͱσϝϦοτͷධՁΛͭͭ͠
    ϦεΫΛίϯτϩʔϧ͢Δ
    12೥8݄6೔݄༵೔

    View Slide

  49. • ύϥμΠϜΛม͑ͣɺݴޠ΋ม͑ͳ͍
    • ύϥμΠϜΛม͑ͯɺݴޠ͸ม͑ͳ͍
    • ύϥμΠϜΛม͑ͯɺݴޠ΋ม͑Δ
    ϦεΫͷߟྀ
    12೥8݄6೔݄༵೔

    View Slide

  50. ύϥμΠϜͷམͱ݀͠
    12೥8݄6೔݄༵೔

    View Slide

  51. l
    ύϥμΠϜޮՌ
    Θ͕ͨ͠ࠓ࢓ࣄΛ͍ͯ͠ΔύϥμΠϜ
    ʹ΋ͱͮ͘ͱɺͦΕΛͲ͏΍Ε͹͍͍
    ͔Θ͔Βͳ͍
    12೥8݄6೔݄༵೔

    View Slide

  52. l
    ύϥμΠϜຑᙺ
    ͦΕ͸͏ͪͷ΍Γ͔ͨ͡Όͳ͍
    12೥8݄6೔݄༵೔

    View Slide

  53. ࢮͳͳ͍ͨΊʹ
    12೥8݄6೔݄༵೔

    View Slide

  54. ҟͳΔύϥμΠϜͰ໰୊Λղ͘
    12೥8݄6೔݄༵೔

    View Slide

  55. ҟͳΔݴޠͰ໰୊Λղ͘
    12೥8݄6೔݄༵೔

    View Slide

  56. • ໰୊ʹ͋ͬͨಓ۩Λൃݟ͢Δ͜ͱ΋͋Ε͹
    • ໰୊ͷ৽͍͠ݟํ΍ղ͖ํ͕खʹೖΔ͜ͱ΋
    ҟͳΔݴޠͰ໰୊Λղ͘
    ໰୊
    ΦϒδΣΫτࢦ޲
    ϓϩάϥϛϯά
    ؔ਺ܕϓϩάϥϛϯά
    12೥8݄6೔݄༵೔

    View Slide

  57. มԽϮ
    ๊༴ηϤ
    12೥8݄6೔݄༵೔

    View Slide

  58. l
    ԿΒ͔ͷಛผͳٕज़΁ͷࣥணͰ͸ͳ͘ɺ
    े෼ʹ෯޿͍όοΫάϥ΢ϯυͱܦݧ͕
    ج൫ʹ͋ͬͯͦ͜ɺಛఆͷঢ়گʹԠͨ͡
    ྑ͍ղܾࡦΛબ୒Ͱ͖ΔͷͰ͢ɻ
    ɹ"OEZ)VOU %BWF5IPNBTʰୡਓϓϩάϥϚʱ
    12೥8݄6೔݄༵೔

    View Slide

  59. ݴޠΛֶͿ͜ͱ
    12೥8݄6೔݄༵೔

    View Slide

  60. ݴޠΛֶͼ͚ͭͮΔ͜ͱ
    12೥8݄6೔݄༵೔

    View Slide

  61. ͨͷ͍͠
    Ruby Training Course
    ņņΦϒδΣΫτࢦ޲ϓϩάϥϛϯάݴޠ3VCZ ࡳຈ

    3VCZʹΑΔςετۦಈ։ൃ ࡳຈ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ വؗ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ Ѵ઒

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ ࡳຈ

    3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃεςοϓΞοϓ ࡳຈ

    ņņΦϒδΣΫτࢦ޲ϓϩάϥϛϯάݴޠ3VCZ ࡳຈ

    3VCZʹΑΔςετۦಈ։ൃ ࡳຈ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ ࡳຈ

    3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃεςοϓΞοϓ ࡳຈ

    SOLD OUT
    SOLD OUT
    SOLD OUT
    ͓ਃ͠ࠐΈ͸ http://www.deos.co.jp/hojokoza
    12೥8݄6೔݄༵೔

    View Slide

  62. RubyΛ͓͢͢Ί͢Δཧ༝
    12೥8݄6೔݄༵೔

    View Slide

  63. RubyΛ͓͢͢Ί͢Δཧ༝
    Θ͕ͨͨͪ͠ීஈग़ձ͏͜ͱͷଟ͍
    ݴޠͱͦ͏ԕ͘ͳ͍ͱ͜ΖͰʮҟͳ
    ΔύϥμΠϜͰ໰୊Λղ͘ʯ࿅शΛ
    ͢Δ͜ͱ͕Ͱ͖Δ
    12೥8݄6೔݄༵೔

    View Slide

  64. array = [1,2,3,4,5]
    sum = 0
    for n in array
    sum += n
    end
    αϯϓϧ
    12೥8݄6೔݄༵೔

    View Slide

  65. sum = 0
    [1,2,3,4,5].each do |n|
    sum += n
    end
    αϯϓϧ
    12೥8݄6೔݄༵೔

    View Slide

  66. sum = [1,2,3,4,5].inject(:+)
    αϯϓϧ
    12೥8݄6೔݄༵೔

    View Slide

  67. RubyΛ͓͢͢Ί͢Δཧ༝
    Θ͕ͨͨͪ͠ීஈग़ձ͏͜ͱͷଟ͍
    ݴޠͱͦ͏ԕ͘ͳ͍ͱ͜ΖͰʮҟͳ
    ΔύϥμΠϜͰ໰୊Λղ͘ʯ࿅शΛ
    ͢Δ͜ͱ͕Ͱ͖Δ
    12೥8݄6೔݄༵೔

    View Slide

  68. RubyΛ͓͢͢Ί͢Δཧ༝
    12೥8݄6೔݄༵೔

    View Slide

  69. RubyΛ͓͢͢Ί͢Δཧ༝
    ΞδϟΠϧͳιϑτ΢ΣΞ։ൃͱͷ
    ૬ੑͷྑ͞
    12೥8݄6೔݄༵೔

    View Slide

  70. Agile Training Course
    ņņņΞδϟΠϧͳݟੵΓͱܭըͮ͘Γಋೖߨ࠲ ࡳຈ

    ņņņΠϯηϓγϣϯσοΩ࡞੒ϫʔΫγϣοϓ ࡳຈ

    ņņņΞδϟΠϧ։ൃݚम Ѵ઒

    ņΞδϟΠϧͳݟੵΓͱܭըͮ͘Γಋೖߨ࠲ ࡳຈ
    ˞௥Ճެԋ
    ņņņΞδϟΠϧͳϓϩδΣΫτӡӦ ࡳຈ

    ņņņΞδϟΠϧ։ൃݚम ۴࿏

    ņņņΠϯηϓγϣϯσοΩ࡞੒ϫʔΫγϣοϓ ࡳຈ

    ņņņΞδϟΠϧͳݟੵΓͱܭըͮ͘Γಋೖߨ࠲ ࡳຈ

    ņņņΞδϟΠϧͳϓϩδΣΫτӡӦ ࡳຈ

    SOLD OUT
    ͓ਃ͠ࠐΈ͸ http://www.deos.co.jp/hojokoza
    SOLD OUT
    SOLD OUT
    SOLD OUT
    SOLD OUT
    12೥8݄6೔݄༵೔

    View Slide

  71. RubyΛ͓͢͢Ί͢Δཧ༝
    ΞδϟΠϧͳιϑτ΢ΣΞ։ൃͱͷ
    ૬ੑͷྑ͞
    12೥8݄6೔݄༵೔

    View Slide

  72. RubyΛ͓͢͢Ί͢Δཧ༝
    ʢݚमͰʣ
    12೥8݄6೔݄༵೔

    View Slide

  73. 12೥8݄6೔݄༵೔

    View Slide

  74. RubyΛ͓͢͢Ί͢Δཧ༝
    12೥8݄6೔݄༵೔

    View Slide

  75. 3VCZ4BQQPSP
    "TTFNCMF
    12೥8݄6೔݄༵೔

    View Slide

  76. ·ͱΊ
    12೥8݄6೔݄༵೔

    View Slide

  77. ݴޠΛબ୒͢Δ͜ͱ
    ιϑτ΢ΣΞ։ൃʹͱͬͯӨڹͷେ
    ͖͍େ੾ͳ൑அ
    ͳͥͳΒɺͦΕ͸Կ͕໰୊͔Λݟۃ
    Ίͯଧͭେ͖ͳҰख͔ͩΒ
    12೥8݄6೔݄༵೔

    View Slide

  78. ݴޠΛֶͼ͚ͭͮΔ͜ͱ
    ιϑτ΢ΣΞ։ൃऀʹͱͬͯੜଘ
    ͍ͯͨ͘͠Ίʹॏཁͳ׆ಈ
    ͳͥͳΒɺͦΕ͸໰୊ͷଊ͑ํ
    ʢࢹ఺ʣͱ໰୊ͷղ͖ํʢදݱʣ
    ΛखʹೖΕΔ׆ಈ͔ͩΒ
    12೥8݄6೔݄༵೔

    View Slide

  79. l
    ਅͷൃݟͷཱྀͱ͸ɺ৽ͨͳ౔஍Λ୳͋͠
    ͯΔ͜ͱͰ͸ͳ͘ɺ৽͍͠໨Λ࣋ͭͱ͍
    ͏͜ͱͰ͋Δ
    ϚϧηϧɾϓϧʔετʰࣦΘΕͨ࣌ΛٻΊͯʱ
    12೥8݄6೔݄༵೔

    View Slide

  80. ͨͷ͍͠
    Ruby Training Course
    ņņΦϒδΣΫτࢦ޲ϓϩάϥϛϯάݴޠ3VCZ ࡳຈ

    3VCZʹΑΔςετۦಈ։ൃ ࡳຈ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ വؗ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ Ѵ઒

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ ࡳຈ

    3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃεςοϓΞοϓ ࡳຈ

    ņņΦϒδΣΫτࢦ޲ϓϩάϥϛϯάݴޠ3VCZ ࡳຈ

    3VCZʹΑΔςετۦಈ։ൃ ࡳຈ

    ņņ3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃ ࡳຈ

    3VCZPO3BJMTʹΑΔ8FCΞϓϦέʔγϣϯ։ൃεςοϓΞοϓ ࡳຈ

    SOLD OUT
    SOLD OUT
    SOLD OUT
    ͓ਃ͠ࠐΈ͸ http://www.deos.co.jp/hojokoza
    12೥8݄6೔݄༵೔

    View Slide

  81. ౡాߒೋ
    [email protected]
    ೥݄೔ ݄
    3VCZΞδϟΠϧ։ൃηϛφʔJOࡳຈ
    — Program into your language, Not in it.
    3VCZͰֶͿɺ3VCZΛ࿩͢
    12೥8݄6೔݄༵೔

    View Slide