Positron
最速入門

@yutannihilation

ドーモ!

Hiroaki Yutani

Conflict of Interest

  • 私は RStudio 実践入門の著者のひとりです!

Positron とは

はじめに

  • (重要)現時点では入門する必要はない
  • Positron はまだ絶賛開発中という段階で、安定して使えるようになるのはだいぶ先
  • たとえ Positron が正式リリースされても RStudio は残る

Positron とは

Posit 社が開発している「次世代のデータサイエンス IDE」

Positron とは

  • Python・R でデータと戯れている人向け
  • Code OSS(≒ VS Code)をベースにして開発されている
  • まだ正式なアナウンスはないが、GitHub で公開されているので自由に試せる、という状態

こういう人に向いてるかも

  • VS Code をデータサイエンス作業に使っていて不満を感じている人
  • JupyterLab を使ってるけどもっと高機能な IDE を使いたい人
  • RStudio を使ってるけどもっとカスタマイズ性の高い IDE を使いたい人
  • Python や R に加えてそれ以外のプログラミング言語(Rust、C++、JavaScript、Lua など)をよく使う人

今のところ足りない点

  • 安定性
  • Quarto・R Markdown のチャンクの実行結果のインライン表示
  • dev container・remote SSH のサポート
  • RStudio アドインのサポート
  • R コードのプロファイリング

今のところ足りない点

RStudio にある機能だからといって Positron に実装されるとは限らない

While Positron and RStudio have some features in common, some R-focused features will remain exclusive to RStudio. (FAQ)

インストール方法

Positron の GitHub レポジトリ の「Releases」を開く。

インストール方法

自分の OS にあったものを選ぶ。

インストール方法

  • .exe → Windows
  • .deb → Debian 系の Linux
  • .dmg → macOS 用
  • .tar.gz → remote execution host 用(ユーザーが自分で使うことはないはず)

初心者がまず覚えるべきたったひとつのキーボードショートカット

コマンドパレットを呼び出すショートカット

  • Ctrl + Shift + P(Windows・Linux)
  • + Shift + P(macOS)

コマンドパレット

コマンドをインクリメンタルに検索し、実行できる。

コマンドパレット

  • コマンドが膨大にあるので覚えきれない
  • そもそもキーボードショートカットがないコマンドもたくさんある
  • キーボードショートカットも表示されるので、ここで覚えていけば OK!

主な機能

画面

レイアウトの種類

  • Side-by-Side: コンソールが右にある
  • Stacked: コンソールが左にある
  • Notebook: 左サイドバーとエディタ以外は非表示

レイアウトの種類

Side-by-Side

レイアウトの種類

Stacked

 

エディタ

エディタ

  • ファイルを編集する場所
  • 好きなように分割できる。RStudio のように横に分割するだけでなく、縦に分割することもできる。
  • Python や R のコードは、/Ctrl + Enter でコンソールに送られて実行される

コンソール

コンソール

  • Python と R のコンソールがひとつづつ
  • Python や R のバージョンは切り替えられる
    • RStudio と違って IDE 全体を再起動する必要はない

コンソール

  • R のセッションが死んでも Positron 自体は無事!
    • とはいえ、データとかを取り出せるわけではないのであまり変わらないかも

インタプリタ選択

インタプリタ選択

インタプリタ選択

  • pyenv や rig でインストールした Python・R を認識するらしい(未確認)
  • プロジェクトごとにデフォルトのバージョンを設定することができるらしい

変数

変数

  • 環境中にある変数の中身を見れる
  • R だけでなく、Python についても同じことができるらしい
  • データフレームは「Data Explorer」で中身を詳しく探索できる

Data Explorer

Data Explorer

  • いろいろ絞り込み条件を設定できる
  • カラムごとに欠損率を表示できる。将来的にはもっと便利なサマリになるらしい
  • 通常のデータフレームだけでなく、Polars も見れるらしい

プロット

プロット

  • プロットが表示される
  • ここから画像ファイルとして保存したり、クリップボードにコピーしたりできる
  • plotly や leaflet などのインタラクティブな可視化もここに表示される

プロット

  • プロットが複数ある場合、サムネイルが表示されていて行ったり来たりできる

ファイル一覧など

ファイル一覧など

  • ファイル一覧、Git、検索、拡張機能の管理、などなど
  • /Ctrl + B で閉じたり開いたりできるよ

R ファイルの編集

R ファイルの作成

たぶん以下のいずれか

  • コマンドパレットから「R: New R File」
  • /Ctrl + N でテキストファイルを作成してから、/Ctrl + KM でファイルの種類(language mode)を変更

language mode 変更

(余談)なぜキーボードショートカットがないの…?

  • RStudio では R ファイル作成のショートカットは /Ctrl + Shift + N だが、Positron ではこれがもともとあった別のショートカットとかぶっているため
  • こういうケースがちょこちょこあるので、全体的に RStudio とは違うキーボードショートカット体系を模索してるっぽい

ファイルに書かれたコードの実行

  • RStudio と同じく、実行したい行にカーソルがある状態で /Ctrl + Enter を押すとコンソールで実行される
  • Jupyter Notebook の場合これはどうするべきか

コード補完

  • RStudio と同じく、データの列名も含めて補完してくれる

GitHub Copilot?

  • Copilotは、基本的に VS Code でのみ使える機能なので、Positron では使えない
  • ただ、Copilot をサポートする計画はあるらしい。RStudio では使えてるので、ライセンス費を Microsoft に払えば使える、みたいな感じなのかも。
  • 他の AI コード補完は使える

参考: https://github.com/posit-dev/positron/discussions/3871

関数のヘルプの表示

  • マウスオーバーすると関数のヘルプが表示される
  • F1 で関数のヘルプが開く

関数の定義の確認

  • F12で関数の定義に飛べる
  • /Ctrl + KF12 だとエディタを分割しつつ定義を開く
  • Alt + F12 でポップアップ表示

デバッグ

  • デバッグはふつうに使える
  • ただ、breakpoint の設定はできなくて、自分で browser() をコードに埋め込むしかない

Quarto ファイルの編集

Quarto ファイルの編集

  • 今のところは VS Code の Quarto 拡張と同じ

現時点の制限

  • RStudio のように chunk のすぐ下に結果を表示する(↓のスクショ)ということができない
    • 必ずコンソールで実行されるようになっていて、結果はコンソールや Plot ペインに表示される

プロジェクトの作成

プロジェクトの作成

  • コマンドパレットから「Workspaces: New Project…」を選ぶ
  • あとはプロジェクトのタイプを選んで、ダイアログに従って設定を入れていくだけ

プロジェクト

  • RStudio のように .Rproj ファイルのような特殊なファイルはない。設定は .vscode/settings.json に保存される。
  • 今のところは、RStudio のようにプロジェクトのテンプレート機能はなさそう。例えば、Quarto のプロジェクト作成は、コマンドにはあるがここには表示されない。

カスタマイズ

テーマの変更

  • テーマは、VS Code と同じくテーマの拡張機能を入れればいい
  • (このスライドで使っているスクリーンショットは Dracula テーマを有効にした状態のもの)

フォントの変更

  • フォントの設定は「Preferences: Open User Settings」から「Font Family」という項目を設定する
  • リガチャを有効にしたい場合は「Font Ligatures」という項目をtrueにする

その他

拡張機能の互換性

  • 基本的には VS Code と同じものが動くはず
  • 一部の拡張機能は Positron 向けに改造されている
  • VS Code 本家の拡張機能マーケットプレイスは VS Code からしかアクセスできないので、Open VSX というサードパーティーのものを使う

Open VSX

https://open-vsx.org/

Open VSX

  • OSS 版 Code 用の拡張機能のレポジトリ
  • Eclipse Foundation によって運営されていて、Posit 社もスポンサーになっている
  • VS Code 本家にあるものがすべてあるわけではない

(余談)

  • なんで Eclipse なの?、と思ってたら、Code OSS ベースの IDE をリリースしてた
  • なので、慈善事業としてやってるとかではなくちゃんと管理されてそう

https://theia-ide.org/

dev container

  • dev container 関連はオープンソースではなく Microsoft 独自のものなので、Positron では使えない
  • 現時点ではロードマップにはない(ref
    • 技術的には可能なはずだが、VS Code の OSS 版として実績ある VSCodium でもまだ実現できていないので、できるとしてもかなり時間がかかる

remote SSH

  • remote SSH も dev container と同じくオープンソースではないが、代替となる拡張機能はすでに存在している
  • ただ、その拡張機能は、VSCodium 前提になっているので、そのままでは動かない
  • すでにリモートホスト用のビルドも準備されていて、サポートする計画はありそう(ref

Julia

  • 当面は Python と R のみがサポートされる
  • Positron とカーネル間の通信のプロトコルがまだ固まり切っていないから、という理由なので、いずれ追加されるはず
  • 通信のプロトコルは公開されているので、やる気があれば自分で実装したりできるよ!

えー、めっちゃ大変そう…
VS Code 拡張ではだめだったの?

  • VS Code の Extension API で許されている範囲では機能が足りない、というのが一番の理由らしい(ref
  • あとは、たぶん RStudio のように有料版も作る必要があるので、そのへんのライセンスの管理とかが単なる拡張機能だと難しいとか?

まとめ

今日のおさらい

  • (重要)Positron に入門する必要はない
  • 安定するのはまだまだ先だが、現時点でも普通に使える完成度ではある
  • VS Code に慣れてると「あれ、この機能ないの?」となることもあるかも
    • 特に、dev container はけっこう厳しそう

感想

  • VS Code の機能でオープンソースになってない部分ってけっこう多いんだなと知った
  • けっこうコントリビュートの余地はありそう(このスライド作ってる途中にもいくつか pull request を送った)
  • これ以外にもいろいろ隠し玉がありそうなので今年の posit::conf() での発表が楽しみ