{%hackmd _6gkK4EVRrijGnUnS71_YA %}
`juliaup` が便利だよって話
===
<!-- .element: style="font-size: 300%" -->
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
2022/05/28 Python東海/JuliaTokaiミニ合同勉強会  
@ OSC2022 Online/Nagoya  
antimon2(後藤 俊介)
Note:
  `juliaup` の紹介っ!
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
# お前誰y?(ry
Note:
  コミュニティ紹介で自己紹介もしたのでこちらでは省略っ
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
まずはこちらをご覧ください。
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
[
https://www.microsoft.com/store/apps/9NJNWW8PVKMN](https://www.microsoft.com/store/apps/9NJNWW8PVKMN)
<!-- .element: style="font-size:60%" -->
Note:
  Windows をお使いの方はおなじみだと思うんですが…
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
+ Microsoft Store に Julia が登録されている!
+ Julia の最新安定版と `juliaup` コマンドがインストールされる!
<!-- .element: style="font-size:180%" -->
Note:
  MSStore に Julia が登録されていますっ!  
  (まぁ Python も登録されているのですが)
  インストールすると、Julia の最新安定版と `juliaup` というコマンドがインストールされます!  
  `juliaup` って何なのかって言うと…
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
[  
https://github.com/JuliaLang/juliaup](https://github.com/JuliaLang/juliaup)
<!-- .element: style="font-size:60%" -->
Note:
  `juliaup` は Github で開発管理されていまして…
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
[
https://github.com/JuliaLang/juliaup/blob/master/README.md](https://github.com/JuliaLang/juliaup/blob/master/README.md)
<!-- .element: style="font-size:60%" -->
Note:
  「Juliaup - Julia version manager」なのですっ。
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
## Juliaup - Julia version manager
<!-- .element: style="font-size:260%" -->
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
[
https://github.com/JuliaLang/juliaup/blob/master/README.md#installation](https://github.com/JuliaLang/juliaup/blob/master/README.md#installation)
<!-- .element: style="font-size:60%" -->
Note:
  README にも記載されてます通り…
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
+ winget でインストールできる!
    + `winget install julia -s msstore`
+ Mac/Linux にも対応!(prerelease)
    + `curl -fsSL https://install.julialang.org | sh`
    + `brew install juliaup`
<!-- + ArchLinux!, OpenSUSE! -->
<!-- .element: style="font-size:120%" -->
Note:
  Windows なら winget でコマンドラインからでもインストールできますっ!(まぁこれは MSStore 登録されていれば当たり前なんですけれど)  
  Mac/Linux にも対応していますっ!(そもそもRust製のコマンドラインアプリなのでビルドさえできればどこでもOKな訳です、まだexperimentalではありますが)  
  あと Arch Linux とか OpenSUSE とかもあるっぽいです(略)っ!
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
```shell
PS> juliaup st
 Default  Channel  Version      Update
---------------------------------------
       *  release  1.7.2+0~x64
PS> julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.7.2 (2022-02-06)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |
julia>
```
<!-- .element: style="font-size:50%" -->
Note:
  PowerShell での動作例
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
### `juliaup` の利点(1)
+ パス通してくれる!  
  <span>(Windowsだと地味に便利)<!-- .element: style="font-size:60%" --></span>
<!-- .element: style="font-size:220%" -->
Note:
  っす
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
```shell
PS> juliaup add lts
Installing Julia 1.6.6+0 (x64).
PS> juliaup add beta
Installing Julia 1.8.0-beta3+0 (x64).
PS> juliaup st
 Default  Channel  Version            Update
---------------------------------------------
          beta     1.8.0-beta3+0~x64
          lts      1.6.6+0~x64
       *  release  1.7.2+0~x64
```
Note:
  こんな感じでチャネルを追加出来て…  
  そのチャネルの最新のJuliaを自動でインストールしてくれますっ!
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
```shell
PS> julia +lts
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.6.6 (2022-03-28)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |
julia>
```
<!-- .element: style="font-size:50%" -->
Note:
  `julia` コマンドの最初に `+lts` とかすると指定したチャネルの Julia を起動してくれる!
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
### `juliaup` の利点(2)
+ チャネルごとにバージョン切り替え!  
<!-- .element: style="font-size:120%" -->
Note:
  っす  
  さらにっ
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
```shell
PS> juliaup st
 Default  Channel  Version            Update
--------------------------------------------------------
          beta     1.8.0-beta1+0~x64  1.8.0-beta3+0~x64
          lts      1.6.5+0~x64        1.6.6+0~x64
       *  release  1.7.2+0~x64        1.7.3+0~x64
PS> juliaup up
# 《中略》
PS> juliaup st
 Default  Channel  Version            Update
---------------------------------------------
          beta     1.8.0-beta3+0~x64
          lts      1.6.6+0~x64
       *  release  1.7.3+0~x64
```
<!-- .element: style="font-size:50%" -->
Note:
  チャネルごとにバージョンアップっ!
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
### `juliaup` の利点(3)
+ チャネルごとにバージョンアップ!  
<!-- .element: style="font-size:120%" -->
Note:
  っす  
  さらにっ
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
## 補足:Julia の安定版とLTS
+ 最新安定版:v1.7.3(2022/05/06)
+ LTS:v1.6.6(2022/03/28)
↓
----
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
### 安定版
+ 機能追加・不具合修正(+パフォ改善)ごとにリリース!
+ バージョンアップによる「破壊的な仕様変更」なし!
+ キーワード:セマンティックバージョニング
Note:
  安定版はまぁ安定版なんですが、ポイントはJuliaは文法がもうほぼ固まっていて、某他言語みたいに破壊的な仕様変更はないんですね、  
  ちなみにセマンティックバージョニングって言うんですけれど、その話してると5分じゃ全然足りないので省略しますが、…
----
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
### LTS
+ API仕様を保証する最低バージョン!
+ アプリ・パッケージ開発者は気にする必要あり
Note:
  他にLTSチャネルというのがありまして、要するにAPI仕様を保証する最低バージョンということです。  
  みんなに使ってもらうパッケージを開発する場合は保証すべき最低バージョンとして動作確認する必要はありますが、
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
## 要するに
<!-- .element: style="font-size:300%" -->
+ 普段使いは常に最新安定版!
+ 仕様ベースはLTS!
+ `juliaup` はそれを分かってて  
  チャネルごとに切替・更新!<!-- .element: style="font-size:80%" -->
<!-- .element: style="font-size:140%" -->
Note:
  要するにこれだけ覚えておけばOKですっ:  
  普段使い・研究開発等なら常に最新安定版を使えばOK!  
---
# まとめ
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
----
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
+ Julia 楽しい!
+ `juliaup` 便利!
+ JuliaTokai 楽しい!
<!-- .element: style="font-size:200%" -->
Note:
  っ
---
<!-- .slide: data-background-color="rgba(102,130,223,0.3)" -->
ご清聴ありがとうございます。
Note:
    ご清聴ありがとうございますっ!
             
            {"metaMigratedAt":"2023-06-17T01:40:47.411Z","metaMigratedFrom":"YAML","title":"`juliaup` が便利だよって話","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"theme\":\"league\"}","contributors":"[{\"id\":\"80062a4b-8dad-49ac-95bf-848ce0686e9e\",\"add\":9005,\"del\":1741}]"}