Slide 1

Slide 1 text

ౡాߒೋ !TOPP[FS ෱Ԭ3VCZձٞ/PW "3VCZ1SPHSBNNJOH&QJTPEF 3VCZJTNZHMBTTFT NZTUBUJPOFSZ BOENZMBOHVBHF

Slide 2

Slide 2 text

ౡాߒೋ!TOPP[FS w גࣜձࣾ͑ʹ͠ςοΫ w 3VCZࡳຈ w Ұൠࣾஂ๏ਓ೔ຊ3VCZͷձ

Slide 3

Slide 3 text

IUUQSFHJPOBMSVCZLBJHJPSHGVLVPLB

Slide 4

Slide 4 text

普段どおりにRubyでプログラミング を⾏い、そこから⾒えてくることから、 カンファレンスのテーマである「私に とってRubyがどのような技術か」を 考えていきます

Slide 5

Slide 5 text

ϓϩάϥϛϯάΤϐιʔυ

Slide 6

Slide 6 text

΅͘ͷ೔ʑͷϓϩάϥϛϯά w ى͖͙ͯ͢΍Δɻ͍͍ͩͨຖே̍̌෼ఔ౓ w FYFSDJTNJPͷ໰୊Λ΍Δ w ͲΜͳ෩ʹղ͍͔ͨΛձࣾͰฉ͍ͯ΋Βͬ ͯϑΟʔυόοΫΛ΋Β͏

Slide 7

Slide 7 text

΅͘ͷ೔ʑͷϓϩάϥϛϯά w ى͖͙ͯ͢΍Δɻ͍͍ͩͨຖே̍̌෼ఔ౓ w FYFSDJTNJPͷ໰୊Λ΍Δ w ͲΜͳ෩ʹղ͍͔ͨΛձࣾͰฉ͍ͯ΋Βͬ ͯϑΟʔυόοΫΛ΋Β͏

Slide 8

Slide 8 text

FYFSDJTNJP

Slide 9

Slide 9 text

FYFSDJTNJP

Slide 10

Slide 10 text

FYFSDJTNJP

Slide 11

Slide 11 text

΅͘ͷ೔ʑͷϓϩάϥϛϯά w ى͖͙ͯ͢΍Δɻ͍͍ͩͨຖே̍̌෼ఔ౓ w FYFSDJTNJPͷ໰୊Λ΍Δ w ͲΜͳ෩ʹղ͍͔ͨΛձࣾͰฉ͍ͯ΋Βͬ ͯϑΟʔυόοΫΛ΋Β͏

Slide 12

Slide 12 text

Inner Peace

Slide 13

Slide 13 text

実際にやっていきましょう

Slide 14

Slide 14 text

ͦͷલʹʜ

Slide 15

Slide 15 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 16

Slide 16 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 17

Slide 17 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 18

Slide 18 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 19

Slide 19 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 20

Slide 20 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ

Slide 21

Slide 21 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ Ҏ্Λे෼ͩͱࢥ͑Δ·Ͱଓ͚ɺ͍ͪ͹Μͬ͘͠Γ͘ΔղΛબ୒͢Δ

Slide 22

Slide 22 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ Ҏ্Λे෼ͩͱࢥ͑Δ·Ͱଓ͚ɺ͍ͪ͹Μͬ͘͠Γ͘ΔղΛબ୒͢Δ

Slide 23

Slide 23 text

ࠓ೔ͷ͓୊

Slide 24

Slide 24 text

IUUQFYFSDJTNJPFYFSDJTFTSVCZTFSJFT

Slide 25

Slide 25 text

IUUQFYFSDJTNJPFYFSDJTFTSVCZTFSJFT จࣈྻͱO͕༩͑ΒΕΔͱ͖ɺจࣈྻ಺͔ΒOࣈ ͣͭ࿈ଓ͢Δ෦෼จࣈྻͷू߹ΛऔΓग़ͯ͠ग़ ྗ͢Δ series = Series.new('01234') series.slices(1) #=> ['0', '1', '2', '3', '4'] series.slices(2) #=> ['01', '12', '23', ’34'] series.slices(3) #=> ['012', '123', '234']

Slide 26

Slide 26 text

࣮ԋ

Slide 27

Slide 27 text

class Series def initialize(string) @string = string end def slices(n) #TODO end end ४උ

Slide 28

Slide 28 text

string = '01234' n = 2 string[0, n] #=> `01` string[1, n] #=> `12` string[2, n] #=> `23` n = 3 string[0, n] #=> `012` string[1, n] #=> `123` string[2, n] #=> `234` ఴࣈΛҠಈͤ͞ͳ͕Β෦෼จࣈྻΛूΊ͍͚ͯ͹͍͍ʁ

Slide 29

Slide 29 text

def slices(n) slices = [] 0.upto(@string.length-n) do |i| slices << @string[i, n] end slices end Ҋ̍

Slide 30

Slide 30 text

def slices(n) slices = [] 0.upto(@string.length-n) do |i| slices << @string[i, n] end slices end Ҋ̍ จࣈྻ಺ͷ֤จࣈΛͣΒ͠ͳ͕Βɺ௕͞Oͷ࿈ଓ͢Δ෦෼จࣈྻΛ औΓग़͍ͯ͘͠ͱ͍͏໰୊ʁ

Slide 31

Slide 31 text

def slices(n) slices = [] 0.upto(@string.length-n) do |i| slices << @string[i, n] end slices end Ҋ̍

Slide 32

Slide 32 text

def slices(n) slices = [] 0.upto(@string.length-n) do |i| slices << @string[i, n] end slices end Ҋ̍ ࠷ޙʹ໭Γ஋ΛΘ͟Θ͟ॻ͔ͳͯ͘͸͍͚ͳ͍ͷ͕ؾʹͳΔ

Slide 33

Slide 33 text

def slices(n) slices = [] 0.upto(@string.length-n) do |i| slices << @string[i, n] end slices end Ҋ̍ ࠷ޙʹ໭Γ஋ΛΘ͟Θ͟ॻ͔ͳͯ͘͸͍͚ͳ͍ͷ͕ؾʹͳΔ &OVNFSBCMFXJUI@PCKFDUΛ࢖͓͏

Slide 34

Slide 34 text

def slices(n) 0.upto(@string.length-n).with_object([]) do |i, slices| slices << @string[i, n] end end Ҋ̎

Slide 35

Slide 35 text

def slices(n) 0.upto(@string.length-n).with_object([]) do |i, slices| slices << @string[i, n] end end Ҋ̎ Ϧετ͔ΒҰͭͣͭऔΓग़ͯ͠Ճ޻͠ͳ͕Β ผͷϦετʹೖΕͯΔͷͰ͸

Slide 36

Slide 36 text

def slices(n) 0.upto(@string.length-n).with_object([]) do |i, slices| slices << @string[i, n] end end Ҋ̎ Ϧετ͔ΒҰͭͣͭऔΓग़ͯ͠Ճ޻͠ͳ͕Β ผͷϦετʹೖΕͯΔͷͰ͸ &OVNFSBCMFNBQͰྑ͍ͷͰ͸

Slide 37

Slide 37 text

def slices(n) 0.upto(@string.length-n).map do |i| @string[i, n] end end Ҋ̏

Slide 38

Slide 38 text

def slices(n) 0.upto(@string.length-n).map do |i| @string[i, n] end end Ҋ̏ ௕͞Oͷ࿈ଓ͢Δ෦෼จࣈྻΛऔΓग़ͤΔఴࣈΛ ରԠ͢Δ஋ʹม׵͢Δ໰୊ʁ

Slide 39

Slide 39 text

def slices(n) 0.upto(@string.length-n).map do |i| @string[i, n] end end Ҋ̏

Slide 40

Slide 40 text

def slices(n) 0.upto(@string.length-n).map do |i| @string[i, n] end end Ҋ̏ <>ͰΞΫηε͍ͯ͠Δͷ͸ந৅౓͕߹ͬͯͳ͍ؾ͕͢Δ

Slide 41

Slide 41 text

def slices(n) 0.upto(@string.length-n).map do |i| @string[i, n] end end Ҋ̏ <>ͰΞΫηε͍ͯ͠Δͷ͸ந৅౓͕߹ͬͯͳ͍ؾ͕͢Δ 4USJOHTMJDFʹͯ͠ҙਤΛίʔυͰද໌͠Α͏

Slide 42

Slide 42 text

Ҋ̐ def slices(n) 0.upto(@string.length-n).map do |i| @string.slice(i, n) end end

Slide 43

Slide 43 text

Ҋ̐ def slices(n) 0.upto(@string.length-n).map do |i| @string.slice(i, n) end end

Slide 44

Slide 44 text

Ҋ̐ def slices(n) 0.upto(@string.length-n).map do |i| @string.slice(i, n) end end ͚ͩ͜͜ίʔυ͚ͩͰ͏·͘ҙਤΛ఻͖͑Ε͍ͯͳͯ͘ؾʹͳΔ

Slide 45

Slide 45 text

Ҋ̐ def slices(n) 0.upto(@string.length-n).map do |i| @string.slice(i, n) end end ͚ͩ͜͜ίʔυ͚ͩͰ͏·͘ҙਤΛ఻͖͑Ε͍ͯͳͯ͘ؾʹͳΔ ͍ͬͨΜશ෦TMJDFͯ͠͠·͔ͬͯΒαΠζ͕߹Θͳ͍΋ͷΛ ϑΟϧλ͢ΔɺͩͱͲ͏͔ͳʁ

Slide 46

Slide 46 text

Ҋ̑ def slices(n) 0.upto(@string.length).map {|i| @string.slice(i, n) }.select {|s| s.length == n } end

Slide 47

Slide 47 text

Ҋ̑ def slices(n) 0.upto(@string.length).map {|i| @string.slice(i, n) }.select {|s| s.length == n } end

Slide 48

Slide 48 text

Ҋ̑ def slices(n) 0.upto(@string.length).map {|i| @string.slice(i, n) }.select {|s| s.length == n } end ͜͜͸ఴࣈΛશ෦औΔͱ͍͏෩ʹ΋ॻ͚ͦ͏ʁ

Slide 49

Slide 49 text

Ҋ̒ def slices(n) @string.chars.each_index.map {|i| @string.slice(i, n) }.select {|s| s.length == n } end

Slide 50

Slide 50 text

Ҋ̒ def slices(n) @string.chars.each_index.map {|i| @string.slice(i, n) }.select {|s| s.length == n } end TMJDFͷڍಈΛ೺Ѳͯ͠ͳ͍ͱԿͰTFMFDU͠ͳ͍ͱ͍͚ͳ͍͔ Θ͔Βͳ͍ͷͰඍົ͔ͳ͋

Slide 51

Slide 51 text

Ҋ̒ def slices(n) @string.chars.each_index.map {|i| @string.slice(i, n) }.select {|s| s.length == n } end TMJDFͷڍಈΛ೺Ѳͯ͠ͳ͍ͱԿͰTFMFDU͠ͳ͍ͱ͍͚ͳ͍͔ Θ͔Βͳ͍ͷͰඍົ͔ͳ͋ ࠷ॳʹTFMFDU͔ͯ͠ΒTMJDF͢ΔͩͱͲ͏ͩΖ͏ʁ

Slide 52

Slide 52 text

Ҋ̓ def slices(n) @string.chars.each_index.select {|i| i + n <= @string.length }.map {|i| @string.slice(i, n) } end

Slide 53

Slide 53 text

Ҋ̓ def slices(n) @string.chars.each_index.select {|i| i + n <= @string.length }.map {|i| @string.slice(i, n) } end ͬͪ͜ͷํ͕·ͩTMJDFͷڍಈΛؾʹ͠ͳͯ͘΋ಡΊΔ෼ ϚγͰ͔͢Ͷ͑ɻͰ΋΋͏ͪΐͬͱ͔ͳ͋

Slide 54

Slide 54 text

Ҋ̓ DIBSTͰϦετʹͯ͠͠·͏ͳΒɺ"SSBZͱ͔&OVNFSBCMFʹ ͍ۙ͜ͱΛͰ͖Δಓ۩͕͋ΔͷͰ͸ʁʢ͋Γͦ͏ʣ def slices(n) @string.chars.each_index.select {|i| i + n <= @string.length }.map {|i| @string.slice(i, n) } end

Slide 55

Slide 55 text

Ҋ̓ DIBSTͰϦετʹͯ͠͠·͏ͳΒɺ"SSBZͱ͔&OVNFSBCMFʹ ͍ۙ͜ͱΛͰ͖Δಓ۩͕͋ΔͷͰ͸ʁʢ͋Γͦ͏ʣ def slices(n) @string.chars.each_index.select {|i| i + n <= @string.length }.map {|i| @string.slice(i, n) } end ͦ͏͔ɺͭ·Γ͸FBDI@DPOT͔

Slide 56

Slide 56 text

Ҋ̔ def slices(n) @string.chars.each_cons(n).map(&:join) end

Slide 57

Slide 57 text

Ҋ̔ def slices(n) @string.chars.each_cons(n).map(&:join) end Ϧετ಺͔Β࿈ଓ͢ΔʮOཁૉΛͭʹ·ͱΊͨ΋ͷʯ Λ͢΂ͯऔΓग़͢

Slide 58

Slide 58 text

Ҋ̔ def slices(n) @string.chars.each_cons(n).map(&:join) end Ϧετ಺͔Β࿈ଓ͢ΔʮOཁૉΛͭʹ·ͱΊͨ΋ͷʯ Λ͢΂ͯऔΓग़͢ จࣈྻ಺͔Βʮ௕͞Oͷ࿈ଓ͢Δ෦෼จࣈྻʯ Λ͢΂ͯऔΓग़͢

Slide 59

Slide 59 text

Ҋ̔ def slices(n) @string.chars.each_cons(n).map(&:join) end Ϧετ಺͔Β࿈ଓ͢ΔʮOཁૉΛͭʹ·ͱΊͨ΋ͷʯ Λ͢΂ͯऔΓग़͢ จࣈྻ಺͔Βʮ௕͞Oͷ࿈ଓ͢Δ෦෼จࣈྻʯ Λ͢΂ͯऔΓग़͢ ͏·͘ݴ͑ͯΔͷͰ͸ʁʁʁ

Slide 60

Slide 60 text

࠷ऴҊ class Series def initialize(string) @string = string end def slices(n) @string.chars.each_cons(n).map(&:join) end end

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

ࢲʹͱͬͯ 3VCZ͕ͲΜͳݴޠͰ͋Δ͔

Slide 63

Slide 63 text

΅͘ʹͱͬͯ3VCZͱ͸

Slide 64

Slide 64 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ

Slide 65

Slide 65 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ w ϖϯͰ͋Δ

Slide 66

Slide 66 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ w ϖϯͰ͋Δ w ݴޠͰ͋Δ

Slide 67

Slide 67 text

ʁʁʁ

Slide 68

Slide 68 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ w ϖϯͰ͋Δ w ݴޠͰ͋Δ

Slide 69

Slide 69 text

3VCZ͸Ί͕ͶͰ͋Δ

Slide 70

Slide 70 text

3VCZ͸Ί͕ͶͰ͋Δ ໰୊ΛΑ͘ݟ͑ΔΑ͏ʹͯ͘͠ΕΔ

Slide 71

Slide 71 text

3VCZ͸Ί͕ͶͰ͋Δ ੈքΛͲ͏ղऍͨ͠Βྑ͍͔ͷ ࢹ࠲Λ༩͑ͯ͘ΕΔ

Slide 72

Slide 72 text

3VCZ͸ϖϯͰ͋Δ

Slide 73

Slide 73 text

3VCZ͸ϖϯͰ͋Δ ΅͘ʹͱͬͯ3VCZ͸͍ͪ͹Μࣗવͳ ॻ͖৺஍͕͢ΔϖϯͷΑ͏ͳ΋ͷ

Slide 74

Slide 74 text

3VCZ͸ϖϯͰ͋Δ ⾝体になじむペンは思考を促進する l ʰത࢜ͷѪͨ͠3VCZͱ਺ֶʱʢݪ৴Ұ࿠ ͱͪ͗3VCZձٞʣ

Slide 75

Slide 75 text

3VCZ͸ϖϯͰ͋Δ l ʰത࢜ͷѪͨ͠3VCZͱ਺ֶʱʢݪ৴Ұ࿠ ͱͪ͗3VCZձٞʣ 計算をする⼈間と紙の間にあるの がペン。投げ出しそうになった瞬 間に、あと10秒余計に考えられる かどうかはペンで決まる。

Slide 76

Slide 76 text

3VCZ͸ݴޠͰ͋Δ

Slide 77

Slide 77 text

3VCZ͸ݴޠͰ͋Δ ᅳ෼ޭҰ࿠ʰதಈଶͷੈքҙࢤͱ੹೚ͷߟݹֶʱ l思考の可能性は、⾔語能⼒に結びつい ている。というのも、⾔語とは形式を 持った意味の構造であり、思考すると は⾔語の記号を操ることだからである。

Slide 78

Slide 78 text

3VCZ͸ݴޠͰ͋Δ FBDI@DPOTͯ͠౉͖ͬͯͨϦετͷ֤ཁૉΛ KPJOͨ͠จࣈྻ΁ͱNBQͯ͠΍Δ

Slide 79

Slide 79 text

3VCZ͸ݴޠͰ͋Δ ϙʔϧάϨΞϜʰϋοΧʔͱըՈίϯϐϡʔλ࣌୅ͷ૑଄ऀͨͪʱ lプログラミング⾔語はプログラマ がプログラムを考えるためのもの であって、既に考えたプログラム を書き下すためのものじゃない。

Slide 80

Slide 80 text

3VCZ͸ݴޠͰ͋Δ l私たちはもはや、正直⾔ってそれ をコンピュータ⾔語とは呼べない。 それはプログラマ語だ。それは私 たちが思考する⾔語なのだ。 XIZUIFMVDLZTUJ⒎ʰϗϫΠͷ ײಈత 3VCZΨΠυʱ ʮݴޠͱɺݴޠͰҙຯ͍ͯ͠Δ΋ͷʯ

Slide 81

Slide 81 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ w ϖϯͰ͋Δ w ݴޠͰ͋Δ

Slide 82

Slide 82 text

ところで、私はRubyというめがねを通して問題を 認識して、Rubyというペンをつかって外部へアウ トプットしていて、頭ではRubyで思考している。 これはもう私⾃⾝がRubyと⾔ってしまっても過⾔ ではないのではないだろうか…??

Slide 83

Slide 83 text

けれど、実際には⼀体ではないからこそいい のである。⼤事なのはRubyと⾃分が息が合 うこと。⼀体だと錯覚してしまうと、協⼒関 係から依存関係になってしまう(よくない)

Slide 84

Slide 84 text

ҧ͏΋ͷʹ৮ΕΔͱɺΑΓʮͦͷ΋ͷʯͷ͜ͱ͕Θ͔Δ w ҧ͏Ί͕ͶͰ෺ࣄΛݟΔ w ҧ͏ॻ͖৺஍ͷϖϯΛ࢖͏ w ҧ͏ݴޠͰࢥߟͯ͠ΈΔ

Slide 85

Slide 85 text

·ͱΊ

Slide 86

Slide 86 text

ϓϩάϥϛϯάΤϐιʔυɿ

Slide 87

Slide 87 text

FYFSDJTNJP

Slide 88

Slide 88 text

΅͘ͷϓϩάϥϛϯά࡞๏ w ͍͍ͩͨ͸࠷ॳͷ͏ͪ͸໰୊ͷ͜ͱΛΑ͘Θ͔͍ͬͯͳ͍ w ͷͰɺ3VCZʹฉ͖ͳ͕ΒͱΓ͋͑ͣ໰୊Λղ͘ w ίʔυΛ͍͡Γͳ͕Βɺগͣͭ͠໰୊ͱͷڑ཭Λ٧Ί͍ͯ͘ w ೿ੜͯ͠ࢥ͍͍ͭͨΞΠσΞͳͲΛࢼ͍ͯ͘͠ w ͋Δͱ͜Ζ·Ͱ͍ͬͨΒɺผͷΞϓϩʔνΛ୳ࡧ͢Δ Ҏ্Λे෼ͩͱࢥ͑Δ·Ͱଓ͚ɺ͍ͪ͹Μద੾ͩͱײ͡ΔղΛબ୒͢Δ

Slide 89

Slide 89 text

今⽇ご覧いただいたような、⼩さな表 現の選択を積み重ねながら「そのもの がソフトウェアのことを語っているよ うなコード」を探っていく⾏為が、プ ログラミングという活動において⾮常 に重要な点なのではないかと考えてい ます。

Slide 90

Slide 90 text

Inner Peace

Slide 91

Slide 91 text

ࢲʹͱͬͯ 3VCZͱ͸ͲΜͳٕज़Ͱ͋Δ͔ɿ

Slide 92

Slide 92 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ໰୊ͷݟํΛ༩͑Δ΋ͷ w ϖϯͰ͋ΔࢥߟΛεέον͢ΔͨΊͷ΋ͷ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 93

Slide 93 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ໰୊ͷݟํΛ༩͑Δ΋ͷ w ϖϯͰ͋ΔࢥߟΛεέον͢ΔͨΊͷ΋ͷ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 94

Slide 94 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ໰୊ͷݟํΛ༩͑Δ΋ͷ w ϖϯͰ͋ΔࢥߟΛεέον͢ΔͨΊͷ΋ͷ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 95

Slide 95 text

΅͘ʹͱͬͯ3VCZͱ͸ w Ί͕ͶͰ͋Δ໰୊ͷݟํΛ༩͑Δ΋ͷ w ϖϯͰ͋ΔࢥߟΛεέον͢ΔͨΊͷ΋ͷ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 96

Slide 96 text

΅͘ʹͱͬͯ3VCZͱ͸ w ΦϒδΣΫτࢦ޲ݴޠ w ϖϯͰ͋ΔࢥߟΛεέον͢ΔͨΊͷ΋ͷ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 97

Slide 97 text

΅͘ʹͱͬͯ3VCZͱ͸ w ΦϒδΣΫτࢦ޲ݴޠ w εΫϦϓτݴޠ w ݴޠͰ͋ΔϓϩάϥϚͱͯ͠ࢥߟ͢Δݴޠ

Slide 98

Slide 98 text

΅͘ʹͱͬͯ3VCZͱ͸ w ΦϒδΣΫτࢦ޲ݴޠ w εΫϦϓτݴޠ w ϓϩάϥϛϯάݴޠ

Slide 99

Slide 99 text

΅͘ʹͱͬͯ3VCZͱ͸ w ΦϒδΣΫτࢦ޲ w εΫϦϓτ w ϓϩάϥϛϯάݴޠ Ͱ͋Δ

Slide 100

Slide 100 text

ΦϒδΣΫτࢦ޲εΫϦϓτݴޠ3VCZ

Slide 101

Slide 101 text

ちょっと⼤げさに表現すると、Ruby の究極の⽬的は、有限の⼈⽣において プログラミングの楽しい部分にできる だけ集中できるように助けることです。 ·ͭ΋ͱΏ͖ͻΖɺੴ௩ܓथʰΦϒδΣΫτࢦ޲εΫϦϓτݴޠ3VCZʱ l

Slide 102

Slide 102 text

ౡాߒೋ !TOPP[FS ෱Ԭ3VCZձٞ/PW "3VCZ1SPHSBNNJOH&QJTPEF 3VCZJTNZHMBTTFT NZTUBUJPOFSZ BOENZMBOHVBHF