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

Elixir 次に来る大物Web言語の可能性

86f6cc36138b8f2706c28d9598e7e36c?s=47 kanmo
October 30, 2015

Elixir 次に来る大物Web言語の可能性

#cmdevio モバイルバックエンド勉強会のスライド

86f6cc36138b8f2706c28d9598e7e36c?s=128

kanmo

October 30, 2015
Tweet

More Decks by kanmo

Other Decks in Programming

Transcript

  1. &MJYJS ࣍ʹདྷΔେ෺8FCݴޠ&MJYJSͷՄೳੑ !LBONP@BL DMBTTNFUIPEגࣜձࣾ  DNEFWJPϞόΠϧόοΫΤϯυษڧձ

  2. ࣗݾ঺հ w ᇙ໌लʢ͔Μ͖͋ͻͰʣɺ3VCZͱ&NBDT޷͖ w %*෦ʢσʔλΠϯςάϨʔγϣϯ෦ʣ w ͓࢓ࣄ͸3BJMTʴ"OHVMBSͷαʔόαΠυ w 5XJUUFS!LBONP@BL

  3. &MJYJSͬͯʁ w +PTF7BMJN 3BJMTίϛολͷਓ ͕࡞ͬͨݴޠ w &SMBOHͷ7.্Ͱಈ͘3VCZͬΆ͍ؔ਺ܕݴޠ w 3VCZͷੜ࢈ੑͱ&SMBOHͷฒߦੑΛ͍࣋ͬͯΔ w

    .JYͱ͍͏ϞμϯͳύοέʔδϚωʔδϟ͕͋Δ
 ʢ͜Εॏཁʣ
  4. ࠷ۙͷ8FC w $,
 ಉ࣌ʹҎ্ͷΫϥΠΞϯτ͕઀ଓ͢Δͱ)8ͷੑೳ͸ ଍Γ͍ͯͯ΋04ɺιϑτ΢ΣΞͷ໰୊Ͱॲཧ͕ഁ୼͢Δ͜ͱ w ϜʔΞͷ๏ଇͷݶք
 $16ΫϩοΫϨʔτͷ੒௕͕ࢭ·ͬͨɻ୅ΘΓʹϚϧνίΞ w ϦΞϧλΠϜ8&#


    αʔόɺΫϥΠΞϯτ͕ৗ࣌઀ଓɻ௨৴ස౓΋ߴ͍
  5. w ҰͭͷίωΫγϣϯ͕Ϋϥογϡ͔ͨ͠Βͱ͍ͬ ͯΞϓϦέʔγϣϯશମ͕Ϋϥογϡ͢Δͷ͸ ࠔΔ w /PEF+4͸$,͸ղܾͰ͖Δ͕଱ো֐ੑ͕ऑ͍ ʢγϯάϧεϨουʣ w ϚϧνεϨουPSΠϕϯτۦಈͷબ୒ɻɻ
 Ͳͬͪ΋ͭΒ͍

  6. &MJYJS͸͜ͷ΁Μͷ໰୊Λ ղܾ͢Δͷʹ޲͍͍ͯΔ

  7. &MJYJSͷੌ͍ͱ͜Ζ
 &MJYJSͷϥϯλΠϜ

  8. ܰྔϓϩηε w 04ͷϓϩηε΍εϨουͰ͸ͳ͘(SFFOεϨουɻ 04Ͱ͸ͳ͘7.ͰεέδϡʔϦϯά͞ΕΔ w Ұͭͷ5$1ίωΫγϣϯʹҰͭͷܰྔϓϩηεΛ ׂΓ౰ͯΔ w ܰྔϓϩηεϫʔυ ϫʔυόΠτ

     w ܰྔϓϩηεຖʹ($Λߦ͏
 ɹɹ4UPQ5IF8PSMEى͖ͳ͍
  9. ΞΫλʔ w ܰྔϓϩηεؒͷσʔλڞ༗͸ϝοηʔδ ύογϯά w 4IBSFE/PUIJOHͷϝϞϦϞσϧ w ஋͸ίϐʔ͞ΕΔϝϞϦڞ༗ͷ࢓૊Έ͕ ෆཁ w

    ͦΕ΋͋ͬͯ௒ܰྔ
  10. &MJYJS͸&SMBOHͱ͍͏ݴޠͷ7.্ Ͱಈ͘ &MJYJS &SMBOH7. #&". ϥΠϒϥϦʢ051ʣ

  11. &SMBOH w ೥ࠒɺε΢Σʔσϯͷ&SJDTTPOͰ։ൃ͞Ε ͨɻ৴པੑ͕ཁٻ͞ΕΔి࿩ަ׵ػͷͨΊʹઃ ܭ͞Εͨݴޠ w ଎౓ΑΓ৴པੑΛॏࢹ w ฒߦॲཧೳྗ͕ඇৗʹߴ͍

  12. ಋೖྫ w 8IBUT"11 ೥ʹ'BDFCPPL͕ങऩ 
 ϐʔΫ࣌ʹαʔόͰສίωΫγϣϯΛ࣮ݱ w $IFGʢαʔόϓϩϏδϣχϯάιϑτʣ
 αʔόͰ୆ͷϊʔυΛ؅ཧ͍ͯ͠Δ w

    -*/&ɺυϫϯΰɺָఱͰ΋Ұ෦Ͱ࢖ΘΕ͍ͯΔ Β͍͠
  13. &SMBOHͷฒߦੑɺ଱ো֐ੑ͸ཉ͍͠
 ͚ͩͲɺจ๏͕ਏ͍ ݹ͍ݴޠͩ͠  ΋͏গ͠ॻ͖΍͚͢Ε͹ɻɻ

  14. r.BU[೥ͷ#MPH͔Β l&SMBOH͸஫໨͢΂͖ݴޠ͕ͩɺ
 ͓ͦΒ͘কདྷͷଞݴޠʹӨڹΛ༩͑Δ ૅʹͳΔɻz

  15. r.BU[೥ͷ#MPH͔Β l&SMBOH͸஫໨͢΂͖ݴޠ͕ͩɺ
 ͓ͦΒ͘কདྷͷଞݴޠʹӨڹΛ༩͑Δ ૅʹͳΔɻz &MJYJSWSFMFBTF
  

  16. &MJYJSݴޠͱͯ͠ͷಛ௃

  17. 3VCZ෩ຯͷؔ਺ܕݴޠ w ಈతܕ෇͚ͷؔ਺ܕݴޠ w ύλʔϯϚον w ύΠϓ w JNNVUBCMFEBUB ฒߦॲཧʹ޲͍͍ͯΔ

     w ஗ԆධՁ w ແݶετϦʔϜ w Ϧετ಺แදه w ࠶ؼ GPSɺXIJMF͸ແ͍
  18. &MJYJSͷίʔυαϯϓϧ EFGNPEVMF)BUFOB#PPLNBSLTEP EFGGFUDI@FOUSZ VSM EP )551PJTPOTUBSU )551PJTPOHFU IUUQCIBUFOBOFKQFOUSZMJTUKTPO TPSUDPVOUVSMVSM 

    cEFDPEF@SFTQPOTF cFYUSBDU@FOUSZ cTPSU@EFTDFOEJOH@BOE@GPSNBU FOE EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ   c1PJTPOEFDPEF FOE EFGEFDPEF@SFTQPOTF \TUBUVT@DPEF@@@ CPEZCPEZ^ EP FOE
  19. EFGFYUSBDU@FOUSZ JUFNT EPFYUSBDU@FOUSZ JUFNT <>  EFGQFYUSBDU@FOUSZ <> SFT EPSFT

    EFGQFYUSBDU@FOUSZ <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT>  FOE EFGTPSU@EFTDFOEJOH@BOE@GPSNBU MJTU@PG@FOUSJFT EP MJTU@PG@FOUSJFT c&OVNTPSU GO\@ DPVOU^ \@ DPVOU^4USJOHUP@JOUFHFS DPVOU  4USJOHUP@JOUFHFS DPVOU FOE  c&OVNNBQ GO \UJUMF DPVOU^ \UJUMF^\DPVOU^݅FOE  FOE FOE )BUFOB#PPLNBSLTGFUDI@FOUSZ IUUQEFWDMBTTNFUIPEKQ  c&OVNFBDIGO FOUSZ *0JOTQFDUFOUSZFOE
  20. ݁Ռ &MJYJSͱؔ܎ͳ͍͚Ͳ  DMBTTNFUIPEͷ͸ͯͿ৘ใ ʲ൪֎ฤʳ"OESPJEͷര଎ΤϛϡϨʔλ؀ڥΛߏங͢ΔʛΫ݅ ʲ"84ʳඇΤϯδχΞͷͨΊͷॳΊͯͷ"NB[PO8FC4FSWJDFTࢿྉΛ ݅ .BD#PPL"JSͷಈ࡞͕ॏ͘ͳͬͨͷͰϝϯςφϯεͨ͠Βܰ͘ͳ݅ Α͘෼͔ΔʂJ04ΞϓϦͷϦϦʔεखॱͷ·ͱΊʛ%FWFMPQFST݅ ͜Ε͔Β"84Λ࢝ΊΔਓ͸Ұಡ͢΂͖ʮ"84ӡ༻νΣοΫϦε݅

    J04ಛूʛ%FWFMPQFST*0݅ Ϣχοτςετʹ·ͭΘΔͷצҧ͍ʛ%FWFMPQFST*0݅ )5.-º$44ºK2VFSZΛਅ໘໨ʹษڧrύϥϥοΫεΤϑΣ݅ +BWB4DSJQUͷ.7$ϑϨʔϜϫʔΫͱ஥ؒͨͪʛ$MBTTNFUIPEEFW ݅ "OESPJEҊ݅ͷݟੵΓʛ$MBTTNFUIPEEFW ݅
  21. ύΠϓϥΠϯԋࢉࢠ    c&OVNNBQ GO Y Y YFOE 

    c&OVNpMUFS GO Y YFOE  c*0JOTQFDU <     > ؔ਺ͷฦ٫஋Λ࣍ͷ ؔ਺ͷୈҰҾ਺ʹ౉͢
  22. ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ  DMBTTNFUIPEͱग़ྗ͢Δ

  23. ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ  DMBTTNFUIPEͱग़ྗ͢Δ ӈลͷ.BQͷLFZɿOBNF

  24. ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ  DMBTTNFUIPEͱग़ྗ͢Δ ӈลͷ.BQͷLFZɿOBNF ࠨลͷ.BQͷLFZɿOBNF

  25. ύλʔϯϚον \OBNFDPNQBOZ^\OBNF DMBTTNFUIPE^ *0QVUT DPNQBZ  DMBTTNFUIPEͱग़ྗ͢Δ Ұகͨ͠ ৔߹ม਺DPNQBOZʹ zDMBTTNFUIPEzΛଋറ

  26. ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM  EFGTJ[F <>

    EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU>  ཁૉ਺͕ฦ٫͞ΕΔ
  27. ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM  EFGTJ[F <>

    EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU>  ཁૉ਺͕ฦ٫͞ΕΔ IFBEʹϦετͷઌ಄ཁૉ z&MJYJSz ͕ଋറ
  28. ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM  EFGTJ[F <>

    EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU>  ཁૉ਺͕ฦ٫͞ΕΔ UBJMʹ࢒Γͷཁૉ z3VCZz z+BWB4DSJQUz ͕ଋറ
  29. ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM  EFGTJ[F <>

    EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU>  ཁૉ਺͕ฦ٫͞ΕΔ ΛՃࢉͯ͠࠶ؼݺͼग़͠
  30. ύλʔϯϚονͱ࠶ؼ EFGNPEVMF.Z-JTUEP EFGTJ[F <IFBEcUBJM> EP TJ[F UBJM  EFGTJ[F <>

    EP FOE .Z-JTUTJ[F <&MJYJS 3VCZ l+BWB4DSJQU>  ཁૉ਺͕ฦ٫͞ΕΔ ཁૉ͕ۭʹͳͬͨΒऴྃ
  31. ࠷ॳͷαϯϓϧͷઆ໌ʢύΠϓϥΠϯԋࢉࢠʣ EFGNPEVMF)BUFOB#PPLNBSLTEP EFGGFUDI@FOUSZ EP )551PJTPOHFU lIUUQCIBUFOBOFKQFOUSZMJTUKTPO TPSUDPVOUVSMIUUQEFWDMBTTNFUIPEKQz  cEFDPEF@SFTQPOTF cFYUSBDU@FOUSZ

    cTPSU@EFTDFOEJOH@BOE@GPSNBU FOE  ͸ͯͳϒοΫϚʔΫ"1*Λୟ͍ͯαΠτͷ৘ใΛऔಘ  औಘ݁ՌΛσίʔυ +40/ʹσίʔυ   ม׵ͨ͠+40/͔ΒλΠτϧɺϒοΫϚʔΫ਺Λநग़  ࠷ޙʹιʔτͱจࣈྻ੔ܗ
  32. ࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF  \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ 

     c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ  <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT>  FOE
  33. ࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF  \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ 

     c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ  <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT>  FOE TUBUVT@DPEFͷ৔߹ͷ Έ࣮ߦ͢Δ
  34. ࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF  \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ 

     c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ  <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT>  FOE -JTUઌ಄ཁૉͷUJUMFͱDPVOU ͷΈม਺ʹଋറ͢Δ
  35. ࠷ॳͷαϯϓϧͷઆ໌ ύλʔϯϚον EFGEFDPEF@SFTQPOTF  \TUBUVT@DPEF CPEZCPEZ^ EP 4USJOHTMJDF CPEZ 

     c1PJTPOEFDPEF FOE EFGQFYUSBDU@FOUSZ  <\UJUMFUJUMF DPVOUDPVOU^cUBJM> SFT EP FYUSBDU@FOUSZ UBJM <\UJUMF DPVOU^cSFT>  FOE ઌ಄ཁૉΛ SFTʹ௥Ճɺ-JTUͷ࢒ΓཁૉΛҾ਺ʹࢦ ఆͯ͠࠶ؼͰݺͼग़͢
  36. ແݶετϦʔϜ 4USFBNVOGPME \ ^  GO\G G^\G \G G G^^FOE

     c&OVNUBLF   c*0JOTQFDU <         > *0QVUT'JMFTUSFBN VTSTIBSFEJDUXPSET  c&OVNNBY@CZ 4USJOHMFOHUI  &OVNUBLF  Ͱ͸͡Ίͯܭࢉ Λ࣮ߦ͢Δ &OVNNBY@CZ 4USJOHMFOHUI Ͱ͸͡ΊͯܭࢉΛ࣮ߦ͢Δ
  37. Ϧετ಺แදه GPSY EPY Y <     

       > GPSY Y Y EPY Y <     >  c&OVNNBQ GO Y Y YFOE  c&OVNpMUFS GO Y YFOE  ύΠϓϥΠϯԋࢉࢠͷαϯϓϧ ͱಉ݁͡Ռ ύΠϓϥΠϯԋࢉࢠͷαϯϓϧ
  38. &MJYJSͷϓϩάϥϛϯάελΠϧ w "1*͸ύλʔϯϚον͋Γ͖ͷσβΠϯ w ؔ਺ͷฦ٫஋ΛύλʔϯϚονͰड͚औΕΔΑ͏ʹσβΠϯ w ύΠϓʢcʣΛ࢖͍খ͞ͳؔ਺Λͭͳ͛ͯॲཧ Λ࡞Δ w ෭࡞༻͸ආ͚Δ

  39. ෼ࢄϓϩάϥϛϯά

  40. w ΞΫλʔϞσϧ w ܰྔϓϩηεؒͷϝοηʔδύογϯά w 051 0QFO5FMFDPN1MBUGPSN  w ܰྔϓϩηεͷ࣮૷Λॿ͚Δඪ४ϥΠϒϥϦ

    &SMBOHͷࢿ࢈  w 4VQFSWJTPS w ଞϓϩηεͷ؂ࢹ͠ҟৗऴྃΛݕ஌ͨ͠Βϓϩηεͷ࠶ىಈ ઓུʹै্ཱ͍ͪ͛௚͢
  41. &MJYJSͷΤϥʔઓུ w ྫ֎ॲཧΛ͠ͳ͍-FU*U$SBTI w ਺ઍͷϓϩηεΛىಈ͍ͤͯ͞ΔͷͰྫ֎Λϋϯυϧ͠ͳͯ͘ ΋ΞϓϦέʔγϣϯશମ͕Ϋϥογϡ͠ͳ͍Α͏ʹͳ͍ͬͯΔ w ͦͷ୅ΘΓܰྔϓϩηεͷ࠶ىಈઓུΛઃఆ͢Δ w POF@GPS@POFɿམͪͨϓϩηε͚ͩ࠶ىಈ

    w POF@GPS@BMMɿશͯͷࢠϓϩηεΛ࠶ىಈ w ଞʹ΋͋Δ
  42. 4VQFSWJTJPO5SFF

  43. ิ଍ &MJYJS0O3BJMTͳ '8΋͋Δ

  44. ·ͱΊ w $16ॲཧ͸଎͘͸ͳ͍͕଱ো֐ੑʹ༏Ε͍ͯΔ w ฒߦॲཧೳྗ͸طଘݴޠͰ͸τοϓΫϥε w ಈతܕ෇͚ͬͯ͜ͱΛͲ͏ड͚ࢭΊΔ͔ w ·ͩಋೖࣄྫ͸গͳ͍ w

    ϥΠϒϥϦ͸·ͩগͳ͍ɺσόοΨ΋·ͩऑ͍
  45. ൺֱ͞ΕΔݴޠ͸4DBMBɺ(P ͔΋ &MJYJS (P 4DBMB ฒߦॲཧϞσϧ "DUPS $41 "DUPS Τϥʔઓུ

    -FU*U$SBTI %FGFOTJWF 1SPHSBNNJO H -FU*U$SBTI ݴޠͷ෼ྨ ؔ਺ܕ खଓ͖ܕ ؔ਺ܕ ܕ ಈత ੩త ੩త
  46. ײ૝ w ฒߦॲཧೳྗͷͨΊ͚ͩʹɺָ͘͠ͳ͍ϓϩά ϥϛϯάݴޠ͸࢖͍ͨ͘ͳ͔͕ͬͨ&MJYJS͸ฒߦ ॲཧʴ։ൃੜ࢈ੑ͕͋Δ ָ͍͠  w ύΠϓϥΠϯԋࢉࢠɺύλʔϯϚον͸࣮༻త w

    ࠓޙ41"ΞϓϦέʔγϣϯ͕ओྲྀʹͳͬͨΒ"1* αʔόͱͯ͠ਓؾ͕ग़ͦ͏