そろそろ Julia <span>rev.OSC2021Nagoya<!-- .element: style="font-size: 60%" --></span> === <!-- .element: style="font-size: 320%" --> <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> 2021/05/29 Python東海/JuliaTokaiミニ合同勉強会 @ OSC2021 Online/Nagoya antimon2(後藤 俊介) Note: Julia の紹介っ! --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> # お前誰y?(ry Note: コミュニティ紹介で自己紹介もしたのでこちらでは省略っ --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> 1年前 ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> [![JuliaTokai の紹介](https://i.imgur.com/QxanJT3.png)https://hackmd.io/@antimon2/rkiUR0siL](https://hackmd.io/@antimon2/rkiUR0siL) Note: このような2本のLTを… ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> [![Julia による 衛生的な生活](https://i.imgur.com/CUPaX0A.png)https://hackmd.io/@antimon2/SyyqyG8iI](https://hackmd.io/@antimon2/SyyqyG8iI) Note: このような2本のLTをお届けいたしました。 今回は… --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> そろそろみんな Julia のことちゃんと知って欲しい --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## 型システム ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ```graphviz digraph TypeTree { nodesep=1.0 node [fontname=Courier,shape=box,style=filled, fillcolor=gray95] edge [arrowsize=0.8] edge [arrowtail="empty" dir=back] Any -> AbstractString Any -> Number Any -> _others _others [label="...",shape=none,style=none,fillcolor=transparent] AbstractString -> SomeStringSubtypes AbstractString -> String SomeStringSubtypes [label="...",shape=none,style=none,fillcolor=transparent] Number -> Complex Number -> Real Real -> AbstractFloat Real -> AbstractIrrational Real -> Integer Real -> Rational AbstractFloat -> x1 x1 [label="...",shape=none,style=none,fillcolor=transparent] AbstractFloat -> Float64 Integer -> Bool Bool [label="...",shape=none,style=none,fillcolor=transparent] Integer -> Signed Signed -> Int AbstractIrrational -> x2 x2 [label="...",shape=none,style=none,fillcolor=transparent] Integer -> Unsigned Unsigned -> x4 x4 [label="...",shape=none,style=none,fillcolor=transparent] Signed -> x5 x5 [label="...",shape=none,style=none,fillcolor=transparent] } ``` ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + Nominative Typing + Nominal Subtyping + 型階層 <!-- .element: style="font-size:240%" --> ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ```julia abstract type Point{T<:Real} end struct Point2D{T} <: Point{T} x::T y::T end mutable struct MPoint2D{T} <: Point{T} x::T y::T end ``` <!-- .element: style="font-size:70%" --> ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + Parametric Type + 型制約 + あと型レベルで immutable/mutable <!-- .element: style="font-size:244%" --> Note: Parametric Type は他言語の総称型(ジェネリクス)相当 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## 多重ディスパッチ ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ```julia julia> double(x::Number) = 2x double (generic function with 1 method) julia> double(x::AbstractString) = x^2 double (generic function with 2 methods) julia> double(π) 6.283185307179586 julia> double("😄") "😄😄" ``` ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + 関数を多重定義 + 引数に合わせて実装実体を選んで実行 <!-- .element: style="font-size:244%" --> ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ```julia julia> @code_typed double(1) CodeInfo( 1 ─ %1 = Base.mul_int(2, x)::Int64 └── return %1 ) => Int64 julia> @code_typed double(9.9) CodeInfo( 1 ─ %1 = Base.sitofp(Float64, 2)::Float64 │ %2 = Base.mul_float(%1, x)::Float64 └── return %2 ) => Float64 ``` <!-- .element: style="font-size:66%" --> ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ```julia julia> @code_typed double(π) CodeInfo( 1 ─ return 6.283185307179586 ) => Float64 ``` <!-- .element: style="font-size:66%" --> ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + 型推論 + シグニチャの違いによるコード生成 + 徹底的な最適化 <!-- .element: style="font-size:244%" --> Note: + 引数の型(シグニチャ)の違いで生成されるコードも変わる + 可能ならJITコンパイル前に既にインライン化 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> そろそろみんな Julia のことを もっと知りたくなってきましたよね? --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> # Julia の情報収集 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## julialang.org [![julialang.org](https://i.imgur.com/sFy1mxA.png)https://julialang.org](https://julialang.org) Note: 本家サイトっ ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://julialang.org + 公式サイト + バイナリ配布・ドキュメント・パッケージライブラリ・プレイグラウンド・その他 <!-- .element: style="font-size:151%" --> --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## Discourse [![discourse.julialang.org](https://i.imgur.com/xBU8ZIL.png)https://discourse.julialang.org](https://discourse.julialang.org/) Note: っ ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://discourse.julialang.org + 公式アナウンス + Q&A + パッケージ公開情報 <!-- .element: style="font-size:160%" --> Note: 新バージョン公開とうの公式アナウンスもここで。 あとユーザが「パッケージ公開したから見てね」という投稿も。 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## JuliaCon [![JuliaCon 2021](https://i.imgur.com/tiOFXmO.png)https://juliacon.org/2021](https://juliacon.org/2021/) Note: Julia のカンファレンスっ 毎年7月末頃に開催 昨年からオンライン開催で無料! ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://juliacon.org/2021 + Julia のカンファレンス + 毎年7月末頃に開催 + 昨年からオンライン開催で無料! <!-- .element: style="font-size:165%" --> Note: Julia のカンファレンスっ 毎年7月末頃に開催 昨年からオンライン開催で無料! --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## JuliaTokyo [![juliatokyo.connpass.com](https://i.imgur.com/t84djGB.png)https://juliatokyo.connpass.com](https://juliatokyo.connpass.com/) Note: 日本で Julia コミュニティと言えばっ ここ1年オフライン/オンラインどちらも勉強会開かれていませんがJuliaConとの連携はしている ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://juliatokyo.connpass.com + 日本の元祖 Julia コミュニティ + コロナ禍でミーティングなし + JuliaCon とは提携している <!-- .element: style="font-size:150%" --> Note: っ --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## JuliaTokai [![juliatokai.connpass.com](https://i.imgur.com/NxjomcR.png)https://juliatokai.connpass.com](https://juliatokai.connpass.com/) Note: 主催勉強会コミュニティ♪ 年4回、ほぼ定期的に開催。 かなり初期からオフライン+オンラインで開催、ここ1年は完全オンライン開催♪ ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://juliatokai.connpass.com + 私の主催コミュニティ + 年4回定期的開催 + 完全オンライン + 次回:2021/08/XX 第11回(予) <!-- .element: style="font-size:165%" --> --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## jl.dev [![jldev.connpass.com](https://i.imgur.com/ZbNsJvi.png)https://jldev.connpass.com/](https://jldev.connpass.com/) ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + https://jldev.connpass.com/ + 開発合宿(年数回開催) + 隔週でもくもく会(朝会/夜会)開催 <!-- .element: style="font-size:165%" --> Note: とにかくJulia で開発したい! というユーザが立ち上げたコミュニティ。 隔週でもくもく会(朝会/夜会)開催(後藤も毎回参加) たまに開発合宿(1dayハッカソン)開催 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ## その他 + [Julia - Qiita](https://qiita.com/tags/julia) + [Juliaの記事一覧 | Zenn](https://zenn.dev/topics/julia?order=latest) + 日本語書籍:[1から始める Juliaプログラミング](https://www.coronasha.co.jp/np/isbn/9784339029055/) + twitter: [#julialang](https://twitter.com/hashtag/julialang)/[#Julia言語](https://twitter.com/hashtag/Julia%E8%A8%80%E8%AA%9E) Note: 日本語の情報としてまぁこんなのもありますよ程度 --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> # まとめ ---- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> + Julia 楽しい! + JuliaTokai 楽しい! <!-- .element: style="font-size:200%" --> Note: っ --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> ご清聴ありがとうございます。 Note: ご清聴ありがとうございますっ! --- <!-- .slide: data-background-color="rgba(102,130,223,0.3)" --> # おまけ ---- <!-- .slide: data-background-color="rgba(204,102,51,0.3)" --> ## 機械学習名古屋 ---- <!-- .slide: data-background-color="rgba(204,102,51,0.3)" --> [![機械学習名古屋 グループページ - connpass](https://i.imgur.com/WhbqIUq.png)https://machine-learning.connpass.com/](https://machine-learning.connpass.com/)<!-- .element: style="font-size: 80%" --> Note: 姉妹勉強会っ
{"metaMigratedAt":"2023-06-16T00:51:27.568Z","metaMigratedFrom":"YAML","title":"そろそろ Julia <span>rev.OSC2021Nagoya<!-- .element: style=\"font-size: 60%\" --></span>","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":\"league\"}","contributors":"[{\"id\":\"80062a4b-8dad-49ac-95bf-848ce0686e9e\",\"add\":16908,\"del\":8378}]"}
    759 views