$30 off During Our Annual Pro Sale. View Details »

Juliaのこれまでとこれから

 Juliaのこれまでとこれから

Sorami Hisamoto

July 05, 2014
Tweet

More Decks by Sorami Hisamoto

Other Decks in Programming

Transcript

  1. +VMJBͷ͜Ε·Ͱͱ͜Ε͔Β
    2014.07.05
    @sorami

    View Slide

  2. View Slide

  3. ٕज़ܭࢉͷͨΊͷ৽ݴޠ
    2012~
    MITϥΠηϯε
    ׆ൃͳίϛϡχςΟ

    View Slide

  4. ٕज़ܭࢉͷͨΊͷ৽ݴޠ
    2012~
    MITϥΠηϯε
    ׆ൃͳίϛϡχςΟ
    ɹϞμϯ
    ಈత
    ચ࿅͞ΕͨܕγεςϜ
    ଟॏσΟεύον

    View Slide

  5. ٕज़ܭࢉͷͨΊͷ৽ݴޠ
    2012~
    MITϥΠηϯε
    ׆ൃͳίϛϡχςΟ
    ɹϞμϯ
    ಈత
    ચ࿅͞ΕͨܕγεςϜ
    ଟॏσΟεύον
    εϐʔυ

    LLVMϕʔεͷJITίϯύΠϥ
    C΍Fortranʹඖఢ͢ΔϨϕϧ..?

    View Slide

  6. Code: julialang.org/

    View Slide

  7. Code: julialang.org/
    MATLAB΍Python෩ͷจ๏

    View Slide

  8. Code: julialang.org/
    MATLAB΍Python෩ͷจ๏
    Noteworthy Differences from other Languages

    View Slide

  9. Code: julialang.org/
    MATLAB΍Python෩ͷจ๏
    Noteworthy Differences from other Languages
    AppendixʹࢿྉͷϦετ͕͋Γ·͢

    View Slide

  10. Image:

    View Slide

  11. ͳͥ৽͍͠ݴޠ?
    Image:

    View Slide

  12. ͳͥ৽͍͠ݴޠ?
    2ஈߏ଄
    Image:

    View Slide

  13. ͳͥ৽͍͠ݴޠ?
    2ஈߏ଄
    ߴϨϕϧͷϩδοΫ͸ಈతݴޠ e.g. R, Python
    ଎͕͞ඞཁͳͱ͖͸௿ਫ४ݴޠ e.g. C, Fortran
    Image:

    View Slide

  14. ͳͥ৽͍͠ݴޠ?
    ศར͞ͱ଎͞ͷτϨʔυΦϑ
    2ஈߏ଄
    ߴϨϕϧͷϩδοΫ͸ಈతݴޠ e.g. R, Python
    ଎͕͞ඞཁͳͱ͖͸௿ਫ४ݴޠ e.g. C, Fortran
    Image:

    View Slide

  15. ͳͥ৽͍͠ݴޠ?
    ศར͞ͱ଎͞ͷτϨʔυΦϑ
    2ஈߏ଄
    શ෦ͻͱͭͷݴޠͰ΍Γ͍ͨ!
    ߴϨϕϧͷϩδοΫ͸ಈతݴޠ e.g. R, Python
    ଎͕͞ඞཁͳͱ͖͸௿ਫ४ݴޠ e.g. C, Fortran
    Image:

    View Slide

  16. طଘͷݴޠΛ
    ଎͘͢Ε͹͍͍ͷͰ͸ʁ

    View Slide

  17. طଘͷݴޠΛ
    ଎͘͢Ε͹͍͍ͷͰ͸ʁ
    → ΠϯλϓϦλͰͷ࣮૷Λ

    ɹ Ծఆͯ͠ઃܭ͞Ε͍ͯΔɻ
    → ߴ଎Խ͕೉͍͠ɻ

    View Slide

  18. Graph: github.com/ViralBShah/julia-presentations/raw/master/Fifth-Elephant-2013/Fifth-Elephant-2013.pdf

    View Slide

  19. Graph: github.com/ViralBShah/julia-presentations/raw/master/Fifth-Elephant-2013/Fifth-Elephant-2013.pdf

    View Slide

  20. Graph: github.com/ViralBShah/julia-presentations/raw/master/Fifth-Elephant-2013/Fifth-Elephant-2013.pdf
    ͪΌΜͱॻ͔ͳ͍ͱ଎͘ͳΒͳ͍
    e.g. ܕ, de-vectorization,…

    View Slide

  21. Graph: github.com/ViralBShah/julia-presentations/raw/master/Fifth-Elephant-2013/Fifth-Elephant-2013.pdf
    ͪΌΜͱॻ͔ͳ͍ͱ଎͘ͳΒͳ͍
    e.g. ܕ, de-vectorization,…
    Fast Numeric Computation in Julia
    Performance Tips — Julia Language documentation

    View Slide

  22. Juliaͷେ෦෼͸JuliaͰ࡞ΒΕ͍ͯΔ

    View Slide

  23. Juliaͷେ෦෼͸JuliaͰ࡞ΒΕ͍ͯΔ
    JuliaϢʔβʔ͕த਎Λཧղ͠΍͍͢

    View Slide

  24. JuliaϢʔβʔ͕Juliaͷ։ൃʹؔΘΔϋʔυϧ͕௿͍
    Juliaͷେ෦෼͸JuliaͰ࡞ΒΕ͍ͯΔ
    JuliaϢʔβʔ͕த਎Λཧղ͠΍͍͢

    View Slide

  25. JuliaϢʔβʔ͕Juliaͷ։ൃʹؔΘΔϋʔυϧ͕௿͍
    Juliaͷେ෦෼͸JuliaͰ࡞ΒΕ͍ͯΔ
    PythonϢʔβʔ͕Numpyͷ։ൃʹؔΘΔͷ͸೉͍͠
    JuliaϢʔβʔ͕த਎Λཧղ͠΍͍͢

    View Slide

  26. C
    github.com/JuliaLang/julia/blob/master/test/perf/micro/perf.c

    View Slide

  27. C Julia
    github.com/JuliaLang/julia/blob/master/test/perf/micro/perf.c julialang.org/

    View Slide

  28. View Slide

  29. ೥݄೔
    ࠷ॳͷDPNNJU

    View Slide

  30. ೥݄೔
    ࠷ॳͷDPNNJU
    ೥݄
    ެ։

    View Slide

  31. ೥݄೔
    ࠷ॳͷDPNNJU
    ೥݄
    ެ։
    ೥݄
    WϦϦʔε

    View Slide

  32. ೥݄೔
    ࠷ॳͷDPNNJU
    ೥݄
    ެ։
    ೥݄
    WϦϦʔε
    ೥݄
    WϦϦʔε

    View Slide

  33. ೥݄೔
    ࠷ॳͷDPNNJU
    ೥݄
    ެ։
    ೥݄
    WϦϦʔε
    ೥݄
    +VMJB$PO
    ೥݄
    WϦϦʔε

    View Slide

  34. Around Julia

    View Slide

  35. docs.julialang.org/en/latest/packages/packagelist/

    View Slide

  36. ࠷దԽ, ౷ܭϞσϧ, ࣌ܥྻ෼ੳ, ՄࢹԽ,
    Webαʔόʔ,ϚΠΫϩϑϨʔϜϫʔΫ,
    ϨΠτϨʔγϯά, CUDA, OpenGL, …
    docs.julialang.org/en/latest/packages/packagelist/

    View Slide

  37. ࠷దԽ, ౷ܭϞσϧ, ࣌ܥྻ෼ੳ, ՄࢹԽ,
    Webαʔόʔ,ϚΠΫϩϑϨʔϜϫʔΫ,
    ϨΠτϨʔγϯά, CUDA, OpenGL, …
    docs.julialang.org/en/latest/packages/packagelist/
    ։ൃ్্ͷ΋ͷ΋ଟ͍

    View Slide

  38. ࠷దԽ, ౷ܭϞσϧ, ࣌ܥྻ෼ੳ, ՄࢹԽ,
    Webαʔόʔ,ϚΠΫϩϑϨʔϜϫʔΫ,
    ϨΠτϨʔγϯά, CUDA, OpenGL, …
    docs.julialang.org/en/latest/packages/packagelist/
    ։ൃ్্ͷ΋ͷ΋ଟ͍
    R΍Pythonʹൺ΂Δͱ·ͩ·ͩ

    View Slide

  39. juliaopt.org/
    ϝʔϦϯάϦετ: groups.google.com/forum/#!forum/julia-opt

    View Slide

  40. juliaopt.org/
    ϝʔϦϯάϦετ: groups.google.com/forum/#!forum/julia-opt
    "JuliaOpt: Optimization packages for Julia"
    Iain Dunning & Joey Huchette @ JuliaCon

    View Slide

  41. ϝʔϦϯάϦετ: groups.google.com/forum/#!forum/julia-stats
    github.com/JuliaStats

    View Slide

  42. juliastats.github.io/DataFrames.jl/

    View Slide

  43. Gadfly.jl
    ggplot2 for Julia
    dcjones.github.io/Gadfly.jl/

    View Slide

  44. IJulia
    Ipython for Julia
    !
    Powerful browser-based
    graphical notebook
    Image: julialang.org/
    github.com/JuliaLang/IJulia.jl

    View Slide

  45. forio.com/julia/

    View Slide

  46. Jewel.jl
    +
    github.com/one-more-minute/Jewel
    lighttable.com

    View Slide

  47. Juno (ex. Jupiter)
    github.com/one-more-minute/Jupiter-LT
    Julia༻؀ڥ
    LightTable+Jewel

    View Slide

  48. World of Julia, 2014-06-30
    (created by jiahao)
    ੺: JuliaͷίϯτϦϏϡʔλʔ
    ੨: ύοέʔδͷίϯτϦϏϡʔλʔ
    ྘: JuliaϨϙδτϦΛwatch͍ͯ͠Δਓ
    ࢵ: JuliaϨϙδτϦʹελʔΛ͚ͭͨਓ
    github.com/jiahao/ijulia-notebooks/blob/master/2014-06-30-world-of-julia.ipynb

    View Slide

  49. Julia in Action

    View Slide

  50. www.mit.edu/~mlubin/juliacomputing.pdf

    View Slide

  51. Julia&in&Produc-on&
    A"personal"journey"
    Avik&&Sengupta&
    JuliaCon&2014&
    github.com/JuliaCon/presentations/tree/master/JuliaInProd

    View Slide

  52. Julia&in&Produc-on&
    A"personal"journey"
    Avik&&Sengupta&
    JuliaCon&2014&
    ˏJuliaCon
    ʮࢥͬͯΔΑΓةͳ͘ͳ͍ʯ
    (“Not as risky as it sounds”)
    github.com/JuliaCon/presentations/tree/master/JuliaInProd

    View Slide

  53. quora.com/Where-is-Julia-used-in-production

    View Slide

  54. quora.com/Where-is-Julia-used-in-production
    ςΩαεେֶΦʔεςΟϯ
    ஍ֶ࣭ݚڀάϧʔϓ
    ৽نϓϩδΣΫτͰͷಋೖΛݕ౼த

    View Slide

  55. ex.nicovideo.jp/denou/tournament/

    View Slide

  56. ex.nicovideo.jp/denou/tournament/

    View Slide

  57. julialang.org/teaching/

    View Slide

  58. quora.com/Julia-programming-language/Is-Julia-ready-for-production-use

    View Slide

  59. quora.com/Julia-programming-language/Is-Julia-ready-for-production-use
    ίΞ
    v0.1͔Βࠓ·Ͱޙํޓ׵͋Γ

    View Slide

  60. quora.com/Julia-programming-language/Is-Julia-ready-for-production-use
    ίΞ
    v0.1͔Βࠓ·Ͱޙํޓ׵͋Γ
    ඪ४ϥΠϒϥϦ
    APIͷมߋ/࡟আલʹ͸ɺॳճར༻࣌ʹܯࠂΛग़ͯ͠ɺ
    Ͳ͏มߋ͢Ε͹Α͍͔໌֬ʹ఻͑ΔΑ͏ʹͳ͍ͬͯΔ

    View Slide

  61. quora.com/Julia-programming-language/Is-Julia-ready-for-production-use
    ίΞ
    v0.1͔Βࠓ·Ͱޙํޓ׵͋Γ
    ඪ४ϥΠϒϥϦ
    APIͷมߋ/࡟আલʹ͸ɺॳճར༻࣌ʹܯࠂΛग़ͯ͠ɺ
    Ͳ͏มߋ͢Ε͹Α͍͔໌֬ʹ఻͑ΔΑ͏ʹͳ͍ͬͯΔ
    ύοέʔδ
    ݱঢ়Ͱ͸มԽ͕ܹ͍͠
    ݴޠ΄ͲอकతͰ͸ͳ͍

    View Slide

  62. Future of Julia

    View Slide

  63. ?

    View Slide

  64. cpplover.blogspot.jp/2012/04/pythonjulia.html

    View Slide

  65. cpplover.blogspot.jp/2012/04/pythonjulia.html
    “I believe Julia and Python is
    a match made in heaven”
    - Dag Sverre Seljebotn (Cython core developer)
    Julia, Python and Cython - julia-dev | Google Groups

    View Slide

  66. conference.scipy.org/scipy2013/presentation_detail.php?id=203

    View Slide

  67. W H Y P Y T H O N I S T H E L A S T L A N G U A G E Y O U ' L L
    H AV E T O L E A R N
    Jake Vanderplas
    jakevdp.github.io/blog/2012/09/20/why-python-is-the-last/

    View Slide

  68. Foreign Function Interface (FFI)
    ‣ C: ccall()
    ‣ Python: Pycall.jl
    ‣ Matlab: Matlab.jl
    ‣ Java: JavaCall.jl
    ‣ C++: coming soon

    View Slide

  69. Julia’s Role in Data Science
    John Myles White, 2013೥10݄

    View Slide

  70. Julia’s Role in Data Science
    John Myles White, 2013೥10݄
    ՄࢹԽπʔϧͷॆ࣮

    View Slide

  71. Julia’s Role in Data Science
    John Myles White, 2013೥10݄
    ՄࢹԽπʔϧͷॆ࣮
    PythonͱͷΑΓີ઀ͳ࿈ܞ
    e.g. ϘτϧωοΫΛCythonͰͳ͘JuliaͰ࣮૷

    View Slide

  72. Julia’s Role in Data Science
    John Myles White, 2013೥10݄
    ՄࢹԽπʔϧͷॆ࣮
    PythonͱͷΑΓີ઀ͳ࿈ܞ
    e.g. ϘτϧωοΫΛCythonͰͳ͘JuliaͰ࣮૷
    σʔλɾΠϯϑϥͱ

    ϞσϦϯάɾπʔϧͷվળ
    R͔Βͷ౷ܭػೳͷϙʔτ
    Scikit-learnͳͲͷPythonϥΠϒϥϦ΁ͷΠϯλʔϑΣΠεͷॆ࣮

    View Slide

  73. juliacon.org/

    View Slide

  74. 2014/06/26~27 @ Chicago
    ্࢙ॳͷJuliaʹؔ͢Δձٞ
    juliacon.org/

    View Slide

  75. 2014/06/26~27 @ Chicago
    ্࢙ॳͷJuliaʹؔ͢Δձٞ
    juliacon.org/
    ϓϨθϯࢿྉ on GitHub
    Videos: coming soon

    View Slide

  76. R։ൃऀϝʔϦϯάϦετʹͯ
    r.789695.n4.nabble.com/Julia-td4435583.html

    View Slide

  77. R։ൃऀϝʔϦϯάϦετʹͯ
    r.789695.n4.nabble.com/Julia-td4435583.html

    View Slide

  78. ‣ ͦΕͳΓʹ࢖͑Δ͕ɺ·ͩ·ͩൃల్্
    ‣ ໘ന͍ཁૉɺ׆ൃͳίϛϡχςΟ
    ‣ ͔ͭ͏ਓ͕ɺͭ͘Δਓ΁

    View Slide

  79. Appendix

    View Slide

  80. ‣ Learn X in Y minutes - where X=julia
    ‣ Forio Julia Tutorial
    ‣ Julia Tutorials @ MIT IAP
    ‣ Julia Tutorial @ DataGotham 2013 IJulia notebook
    ‣ Tutorial from the Cambridge Area Julia Users Network IJulia notebook

    ‣ Juliaຊ Vol.1
    ‣ ϓϩάϥϛϯάݴޠ Julia ୳๚ - Moriturus te saluto 

    !
    ν ϡ ʔ τ Ϧ Ξϧ ͳ Ͳ

    View Slide

  81. ‣ Leah Hanson: Julia Helps
    ‣ Reddit: The Julia Language Subreddit
    ‣ Stack Overflow: Newest 'julia-lang' Questions
    ‣ Quora: Julia (programming language)
    !

    View Slide

  82. ‣ “Julia: Fast Performance, Distributed Computing & Multiple Dispatch”

    Stefan Karpinski @ Code Mesh 2013
    ‣ “Julia: A fresh approach to technical computing and data science”

    Viral B. Shah @ Fifth Elephant 2013 (slide)
    ‣ “The Design Impact of Multiple Dispatch” iPython notebook

    Stefan Karpinski @ Strange Loop 2013
    ‣ “Julia: A Fast Dynamic Language for Technical Computing” 

    Jeff Bezanson & Stefan Karpinski @ SciPy 2012
    ‣ “Julia and Python: a dynamic duo for scientific computing” 

    Jeff Bezanson & Stefan Karpinski @ SciPy 2013
    ‣ JuliaCon: Presentation Materials
    ൃ ද

    View Slide