JuliaをVS Codeから利用するエクステンションを紹介

2020年8月25日(火)
松下 康之 - Yasuyuki Matsushita
Juliaの開発環境としてVS Codeを選択したコミュニティセッションを紹介する。

MITの研究者が開発したプログラミング言語Juliaは、高速な実行と高度な数式がシンプルに記述できるハイレベル言語として、徐々に認知を広めている。データサイエンスや機械学習のカテゴリーで比較の対象となるPythonはすでに多くの企業が採用し、多種多様なユースケースがあるのは事実だ。一方で、Juliaのエコシステムも拡大するに従って開発をサポートするツールが徐々に登場している。その背景には、Juliaの高速性が評価されている点が挙げられるだろう。

前回の記事ではPluto.jlという対話型開発環境を紹介したが、今回の記事ではMicrosoftが開発するエディターであるVisual Studio Code(以下、VS Code)をベースにして、Juliaのエクステンションを開発しているコミュニティのセッションをJuliaCon 2020から紹介する。

Pluto.jlの紹介記事:MIT発の高度な数値処理をプログラミングできるJuliaの最新情報を紹介

動画:VS Code for Julia

対象プラットフォームをAtomからVS Codeに切り替え

開発言語にとってエディターやデバッガーなどのツールは非常に重要だ。JuliaにもGitHubが開発していたAtom用のエクステンション「Juno」と呼ばれる開発環境が存在し、機能の追加が進められていた。しかしMicrosoftがGitHubを買収した結果、VS Codeの競合となるAtomの開発スピードは明らかに減速してしまった。この状況に対し、Junoの開発チームはAtomへのコミットから方向を転換し、JunoをVS Codeのエクステンション「Julia for VSCode」として生まれ変わらせるという判断を下したというわけだ。

Julia for VSCode 1.0がリリースされた

Julia for VSCode 1.0がリリースされた

今後は、VS CodeのエクステンションとバックエンドとなるLanguageServer.jlの開発に注力することが明かされた。

機能的にはJunoと同等以上を目指す

機能的にはJunoと同等以上を目指す

Microsoftに買収されたGitHubにとって、Microsoft製品の競合となるAtomの開発継続が困難ということは、IT業界にいるエンジニアであれば理解できることだろう。

バックエンドであるLanguageServer.jlが存在することで他のエディターにも利益がある

バックエンドであるLanguageServer.jlが存在することで他のエディターにも利益がある

そしてVS Code上のデバッガー機能をデモを通して紹介を行った。

VS Codeでデバッグを実施。ターミナルの出力や変数の値を確認できる

VS Codeでデバッグを実施。ターミナルの出力や変数の値を確認できる

ブレークポイントからステップ実行によって変数や配列がダイナミックにアロケーションされていることが確認できる。

またVS Code内部でエラーを確認し、修正の候補を表示してくれる機能やWorkspaceとして変数、配列、関数、マクロなどの状態を確認できる機能も紹介された。

エラーを確認

エラーを確認

Workspaceで変数や関数の中身を確認

Workspaceで変数や関数の中身を確認

また関数の呼び出しの関係などを表示するProfilerも、開発途中ながら用意されていることが紹介された。

まだFinal版ではないがProfilerを紹介

まだFinal版ではないがProfilerを紹介

VS Codeの機能を利用してリモートホストでの開発も

さらにVS Codeのエクステンションとして実行されることで、リモートホストにSSHで接続して、リモートホスト上で開発を行うことも可能になっている。

Remote SSHでJuliaの開発を続けられる

Remote SSHでJuliaの開発を続けられる

リモートホストを使って開発。ターミナルもリモートホストのもの

リモートホストを使って開発。ターミナルもリモートホストのもの

Pythonの開発にも劣らない環境となるためには、Notebookサポートは必須だが、そこも忘れていない。データサイエンティスト必須のツールであるJupyter NotebookでもJuliaはサポートされており、グラフなどの可視化の機能も使うことができることがデモで紹介された。

Jupyter Notebook上でJuliaを開発

Jupyter Notebook上でJuliaを開発

さらに、開発の内幕とも言えるJuliaのエクステンションの開発プロセスも紹介された。ここでは少人数のInsider Channelと外部に公開するRelease Channelを用意して、Insiderでバグをつぶしてから公開するという流れを解説した。

エクステンションの開発プロセスを紹介

エクステンションの開発プロセスを紹介

またドキュメンテーションについても、VS Code上でドキュメントやコメント、さらにサンプルコードを表示する機能を紹介した。

ドキュメントやサンプルコードを表示できる

ドキュメントやサンプルコードを表示できる

今後の開発予定

最後に将来計画として、VS Code上で複数の環境を利用できるようにすることが解説された。これは複数のプロジェクトに対応できることを意味しており、テスト環境とドキュメントを書く環境を分けるといった応用が期待できる。

またJuliaの拡張機能であるPackageのリポジトリーに対して、インデクシングを行うことで素早く検索が可能になる機能の提供を予定しているという。

今後の拡張計画

今後の拡張計画

さらに公式のドキュメントサイトも、デザインを一新して行く予定だと語った。

Atomをベースにした拡張機能であるJunoが、方向転換の末にVS Codeのサポートに落ち着いたというのは、VS Codeに慣れている圧倒的多数のエンジニアには朗報だ。またJupyter Notebookのサポートも、これからJuliaを触ろうとするエンジニアには大きな魅力だろう。JuliaがPythonを置き換えることができるのか、注目していきたい。ちなみにJunoという名前は変更となる予定だという。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

システム開発イベント

OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは

2021/3/2
レッドハット株式会社のクラウドソリューションアーキテクト、北山晋吾氏によるCI/CDのセッションを紹介。
働き方イベント

オンラインならではの工夫でリアル開催を凌ぐ盛り上がりに! 「3年後の未来を描け! 悩み爆発 クリエイター1000人祭り」レポート

2021/2/9
2020年12月にオンラインで開催された「3年後の未来を描け!悩み爆発クリエイター1000人祭り」を紹介します。
ITインフライベント

ビルドからリリースまでを抽象化するWaypointにディープダイブ

2021/2/4
HashiCorpがリリースしたWaypointの内部構造など詳細について解説されたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています