JuliaをVS Codeから利用するエクステンションを紹介
MITの研究者が開発したプログラミング言語Juliaは、高速な実行と高度な数式がシンプルに記述できるハイレベル言語として、徐々に認知を広めている。データサイエンスや機械学習のカテゴリーで比較の対象となるPythonはすでに多くの企業が採用し、多種多様なユースケースがあるのは事実だ。一方で、Juliaのエコシステムも拡大するに従って開発をサポートするツールが徐々に登場している。その背景には、Juliaの高速性が評価されている点が挙げられるだろう。
前回の記事ではPluto.jlという対話型開発環境を紹介したが、今回の記事ではMicrosoftが開発するエディターであるVisual Studio Code(以下、VS Code)をベースにして、Juliaのエクステンションを開発しているコミュニティのセッションをJuliaCon 2020から紹介する。
Pluto.jlの紹介記事:MIT発の高度な数値処理をプログラミングできるJuliaの最新情報を紹介
対象プラットフォームをAtomからVS Codeに切り替え
開発言語にとってエディターやデバッガーなどのツールは非常に重要だ。JuliaにもGitHubが開発していたAtom用のエクステンション「Juno」と呼ばれる開発環境が存在し、機能の追加が進められていた。しかしMicrosoftがGitHubを買収した結果、VS Codeの競合となるAtomの開発スピードは明らかに減速してしまった。この状況に対し、Junoの開発チームはAtomへのコミットから方向を転換し、JunoをVS Codeのエクステンション「Julia for VSCode」として生まれ変わらせるという判断を下したというわけだ。
今後は、VS CodeのエクステンションとバックエンドとなるLanguageServer.jlの開発に注力することが明かされた。
Microsoftに買収されたGitHubにとって、Microsoft製品の競合となるAtomの開発継続が困難ということは、IT業界にいるエンジニアであれば理解できることだろう。
そしてVS Code上のデバッガー機能をデモを通して紹介を行った。
ブレークポイントからステップ実行によって変数や配列がダイナミックにアロケーションされていることが確認できる。
またVS Code内部でエラーを確認し、修正の候補を表示してくれる機能やWorkspaceとして変数、配列、関数、マクロなどの状態を確認できる機能も紹介された。
また関数の呼び出しの関係などを表示するProfilerも、開発途中ながら用意されていることが紹介された。
VS Codeの機能を利用してリモートホストでの開発も
さらにVS Codeのエクステンションとして実行されることで、リモートホストにSSHで接続して、リモートホスト上で開発を行うことも可能になっている。
Pythonの開発にも劣らない環境となるためには、Notebookサポートは必須だが、そこも忘れていない。データサイエンティスト必須のツールである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という名前は変更となる予定だという。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- MIT発の高度な数値処理をプログラミングできるJuliaの最新情報を紹介
- 【Atom、Sublime、Visual Studio Code、Vimの人気エディタを徹底比較】ベストなテキストエディタはこれだ!
- コードエディタ「Visual Studio Code 1.59」リリース
- Kubernetes上で機械学習のパイプラインを実装するKubeflowを紹介
- 機械学習でJupyter NotebookからHeatWave MLを使ってみよう
- de:code 2017セッションレポート:CNTKでディープラーニングを始めるには
- IBM、新しいAIサポート機能を搭載した「Db2 version 11.5」を発表
- AIとRPAの連携
- OpenShiftでデータサイエンティストとアプリ開発者が協調する流れをデモを交えて紹介
- 開発の生産性の向上と開発プロセスの効率化をもたらす開発ツールの活用法