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

Introducing Julia

Introducing Julia

... and couple other languages.

Julia is a fast dynamic language for technical computing. http://julialang.org/

Original presentation at Computational Linguistics Lab, Nara Institute of Science and Technology.

Sorami Hisamoto

November 15, 2013
Tweet

More Decks by Sorami Hisamoto

Other Decks in Programming

Transcript

  1. Babel guide 5 Languages in 13 Weeks ! Sorami Hisamoto

    Computational Linguistics Lab. Nara Institute of Science & Technology November 15, 2013 Bruegel - The tower of Babel @ sorami
  2. To casually introduce the languages I played with this summer.

  3. I N S P I R AT I O N

    S ݩ ωλ
  4. Image: www.photo-ac.com/main/detail/44086

  5. T O U R D E B A B E

    L Image: www.ashinari.com/2013/09/11-381896.php Steven Yegge
  6. T O U R D E B A B E

    L Image: www.ashinari.com/2013/09/11-381896.php Python
 Ruby
 Java
 Perl
 C++
 Lisp
 C Steven Yegge
  7. T O U R D E B A B E

    L Image: www.ashinari.com/2013/09/11-381896.php Original Essay ⽇日本語訳 Python
 Ruby
 Java
 Perl
 C++
 Lisp
 C Steven Yegge
  8. Image source

  9. “C++ is the dumbest language on earth” C++は地上でもっともバカな⾔言語だ。 Image source

  10. “The original brilliant guys and gals here only allowed two

    languages in Amazon's hallowed source repository: C and Lisp” 初期にいたすばらしい⼈人たちは、Amazonの神聖なるソースリポジトリに 2種類の⾔言語しか⼊入れることを許さなかった。CとLispだ。 “C++ is the dumbest language on earth” C++は地上でもっともバカな⾔言語だ。 Image source
  11. “The original brilliant guys and gals here only allowed two

    languages in Amazon's hallowed source repository: C and Lisp” 初期にいたすばらしい⼈人たちは、Amazonの神聖なるソースリポジトリに 2種類の⾔言語しか⼊入れることを許さなかった。CとLispだ。 “C++ is the dumbest language on earth” C++は地上でもっともバカな⾔言語だ。 Image source “Java is simultaneously the best and the worst thing that has happened to computing in the past 10 years.” Javaは過去10年においてコンピューティングの世界に起きた最良かつ最悪のことだ。
  12. “The original brilliant guys and gals here only allowed two

    languages in Amazon's hallowed source repository: C and Lisp” 初期にいたすばらしい⼈人たちは、Amazonの神聖なるソースリポジトリに 2種類の⾔言語しか⼊入れることを許さなかった。CとLispだ。 “C++ is the dumbest language on earth” C++は地上でもっともバカな⾔言語だ。 “Java is simultaneously the best and the worst thing that has happened to computing in the past 10 years.” Javaは過去10年においてコンピューティングの世界に起きた最良かつ最悪のことだ。 “.. Sperm Whale that exploded in the streets of Taiwan over the summer. Whale guts everywhere, covering cars, motorcycles, pedestrians. That's Perl. It's charming, really.” Perlは夏の台湾の通りの上で破裂したマッコウクジラだ。はらわたがそこら中に飛び 散って、⾞車や⾃自転⾞車や歩⾏行者を覆っている。それがPerlだ。本当にチャーミングだ 。 Image source
  13. # 1 P Y T H O N

  14. Image source

  15. Productivity Community Image source

  16. Productivity Community Speed Image source

  17. # 2 S C A L A

  18. Programming Seminars @ NAIST Computational Linguistics Lab.

  19. Programming Seminars @ NAIST Computational Linguistics Lab.

  20. Good, but …

  21. Complex! Good, but …

  22. # 3 G O

  23. www.meetup.com/nyhackr/events/132413222/

  24. www.meetup.com/nyhackr/events/132413222/

  25. Slide Video Image: golang.org/doc/gopher/

  26. # 4 C L O J U R E

  27. None
  28. Image: en.wikipedia.org/wiki/Rich_Hickey

  29. Image: en.wikipedia.org/wiki/Rich_Hickey Rich Hickey's Greatest Hits

  30. Image: arcweb.archives.gov/arc/action/ExternalIdSearch?id=548253 logic programming library core.logic

  31. http://www.lighttable.com/

  32. http://getprismatic.com/

  33. # 5

  34. None
  35. New language for Technical Computing 2012~. Started in MIT. Active

    community.
  36. New language for Technical Computing 2012~. Started in MIT. Active

    community. High-level & Dynamic Sophisticated type system. Multiple dispatch.
  37. New language for Technical Computing 2012~. Started in MIT. Active

    community. High-level & Dynamic Sophisticated type system. Multiple dispatch. High Performance
 JIT Compiler. Comparable to C and Fortran.
  38. Why new language?

  39. Why new language? Two-tier Architectures High-level logic in dynamic language

    e.g. Python Heavy lifting in low-level language e.g. C, Fortran
  40. Why new language? Compromise between convenience & performance. Two-tier Architectures

    High-level logic in dynamic language e.g. Python Heavy lifting in low-level language e.g. C, Fortran
  41. Why new language? Compromise between convenience & performance. Two-tier Architectures

    We want to do everything in one productive language! High-level logic in dynamic language e.g. Python Heavy lifting in low-level language e.g. C, Fortran
  42. Speed up existing languages?

  43. Speed up existing languages? Language design under assumption it would

    be implemented as an interpreter.
  44. Speed up existing languages? Language design under assumption it would

    be implemented as an interpreter. Sabotages ability to generate efficient code.
  45. Table: julialang.org/

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

  47. Code: julialang.org/

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

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

  50. M U LT I P L E D I S

    PAT C H code: docs.julialang.org/en/latest/manual/methods/
  51. M U LT I P L E D I S

    PAT C H code: docs.julialang.org/en/latest/manual/methods/ "The Design Impact of Multiple Dispatch" Stefan Karpinski @ Strange Loop
  52. H O M O I C O N I C

    I T Y C O D E A S D ATA
  53. H O M O I C O N I C

    I T Y C O D E A S D ATA Macros!
  54. docs.julialang.org/en/latest/packages/packagelist/

  55. MCMC, Optimisations, Linear Models, Text Analysis, Time Series, OpenGL, DataFrames,

    Arduino, CUDA, Visualisation, etc… docs.julialang.org/en/latest/packages/packagelist/
  56. IJulia Ipython for Julia ! Powerful browser-based graphical notebook Image:

    julialang.org/
  57. http://forio.com/julia/

  58. ?

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

  60. 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
  61. conference.scipy.org/scipy2013/presentation_detail.php?id=203

  62. 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/
  63. www.mit.edu/~mlubin/juliacomputing.pdf

  64. ex.nicovideo.jp/denou/tournament/

  65. ex.nicovideo.jp/denou/tournament/

  66. ex.nicovideo.jp/denou/tournament/ Julia adpoted by a team at the computer shogi

    (Japanse chess) tournament.
  67. メカ⼥女⼦子将棋 アピール⽂文書☆

  68. メカ⼥女⼦子将棋 アピール⽂文書☆ “Software re-implemented in Julia overwhelmed existing one in

    C/C++, so we decided to use the Julia-version for the tournament”
  69. julialang.org New language for Technical Computing 2012~. Started in MIT.

    Active community. High-level & Dynamic Sophisticated type system. Multiple dispatch. High Performance
 JIT Compiler. Comparable to C and Fortran.
  70. ‣ Julia: A Fast Dynamic Language for Technical Computing Academic

    paper ‣ An introductory presentation ‣ Learn X in Y minutes - where X=julia ‣ Videos from the Julia tutorial at MIT ‣ Julia tutorial @ DataGotham2013 ‣ Forio Julia tutorial ‣ Project Euler with Julia ‣ Linear Models with Julia ‣ “Julia: A Fast Dynamic Language for Technical Computing” @ SciPy 2012 ‣ “Julia and Python: a dynamic duo for scientific computing” @ SciPy 2013 G E T T I N G S TA R T E D …