AIがプログラミングを変える?高性能入力補完を実現するTabNineを試す

AIや機械学習がどれだけ優秀になったとしても、それを組み上げるのは人であるという考えが根底にあります。計算能力が高いので、一旦組み上げてしまえば人よりも高性能に働くものの、それ自体を生み出すことはできない、そう考えられているかも知れません。

しかし、プログラミングにおいてもAIの力が使われるようになってきたようです。そんな新しい時代を予感させるのがTabNineです。

TabNineとは

プログラミングエディタには入力補完と呼ばれる機能が付いています。例えばドット(.)を入力した瞬間に、そのオブジェクトが持っているメソッドをリストアップしてくれたり、関数の引数を提示してくれる機能です。この入力補完を使うことで、プログラマーの入力ミスを防いだり、生産性を高めることができるのです。

TabNineはそんな入力補完の高機能版といえます。深層学習を用いることで、より精度の高い入力補完を実現します。なんと、200万にもおよぶGitHub上のファイルをベースに学習を行っており、その中でよく使われるパターン、最適な構文を提示してくれます。

TabNineが対応している言語は下記の通りです。大抵のプログラミング言語は含まれるのではないでしょうか。

  • Python
  • JavaScript
  • Java
  • C++
  • C
  • PHP
  • Go
  • C#
  • Ruby
  • Objective-C
  • Rust
  • Swift
  • TypeScript
  • Haskell
  • OCaml
  • Scala
  • Kotlin
  • Perl
  • SQL
  • HTML
  • CSS
  • Bash

TabNineが利用できるプログラミングエディタは次の通りです。こちらもメジャーなものは大抵含まれています。特にVisual Studio Codeと相性がいいようです。

  • Visual Studio Code
  • IntelliJ Platform (IntelliJ IDEA, PyCharm, Android Studioなど)
  • Sublime Text
  • Vim
  • Emacs
  • Atom
  • Jupyter Notebook

試してみる

今回は簡単な例としてVue CLIでシンプルなTodoリストを作成するハンズオン① – Qiitaで試してみました。元々Vueプラグインでもコード補完が提供されていますが、TabNineでは定型ではない候補が表示されるようになります。右側にはパーセンテージが出ます。機械学習らしく、パーセンテージで表示されるのが面白いです。

下のように、インストールしていない時の入力補完と比べると、ずいぶん内容が違うのが分かるかと思います。

特に興味深いのは、一度書いたコードを覚えていて、候補に含めてくれることです。 this.lists.splice はキャプチャ前に一度試しで書いているので、候補にコードがそのまま出現しています。

プロジェクトの規模が大きくなり、定番の書き方のようなものを学習してくれると、さらに候補の精度が高くなりそうです。

まとめ

TabNineは個人ではとても不可能な200万というソースコードからプログラミングを学んでいます。プログラミング初学者にとっても、この入力補完は役立ちそうです。他の入力補完ライブラリが不要になる訳ではなく、組み合わせて使うとさらに効果的な印象です。

TabNineは有料版もありますが、無料から利用もできます。ぜひ皆さんのプログラミングに役立ててください。

Home | TabNine

TabNineの動作原理を詳しく知りたい方はこちらのツクレル作って学ぶ人工知能がオススメです!

]]>

上部へスクロール