MLに関しては、JavaScriptの死の報道は誇張されている

Table of Contents

MLに関しては、JavaScriptの死の報道は誇張されている

機械学習は、開発者にとって急速に成長著しい分野の 1 つになりつつありますが、数多くの言語が存在する中で、どの言語を採用すべきでしょうか?

統計学者の言うことを信じるなら、多くの人にとって Python がデフォルトの選択肢です。

Developer Economicsが今年初めに2,022人を対象に実施した調査によると、データサイエンティストと開発者の50%がPythonを使用しており、33%が開発にPythonを優先しているという。

しかし、JavaScriptはどうなるのでしょうか?Pythonと同様に、JavaScriptは約20年間Web開発の最前線にありました。Webプログラミングとブラウザ向け開発の爆発的な増加により、JavaScriptは過去20年間、黄金時代を迎えました。

JavaScript は、世界最大の開発プラットフォームである Web の中核となり、モバイル向けのハイブリッド アプリは JS で記述されることが多く、移植性と開発者の可用性を理由に JavaScript でアプリを構築している暗号通貨もいくつかあります。

人々は JavaScript を非常に気に入ったため、Node.JS を使用してクライアント側からサーバー側に移植されました。

Python 革命に取り残されてしまったのでしょうか?

端的に言えば、答えは「イエス」です。Developer Economicsは、JavaScriptがどれほど人気を失っているかを明確に示しています。機械学習におけるJavaScriptの使用率は5位で、Python、C/C++、Java、Rに大きく遅れをとっています。

森の中に群生する背の高い木の天蓋から差し込む日光を下から見たところ

15 分で機械学習を学びたいですか? ここから始めましょう...

続きを読む

しかし、JavaScriptの将来がそれほど暗いわけではない兆候があり、この言語にはまだ可能性が残されています。Developer Economicsの調査によると、データサイエンスや機械学習にまだ馴染みがなく、この技術を試している開発者は、他のどの言語よりもJavaScriptを優先しています。

開発者はまた、統計プログラミングで使用されるオープンソース言語である R よりも JavaScript を優先しており、近年 SQL Server とともにレドモンドに取り入れられています。

Expero のシニア ソフトウェア コンサルタントである Steve Purves 氏は、JavaScript は言語としてはまだ行き詰まってはいないと示唆しています。

パーベス氏によると、機械学習開発者はより広い視野で物事を考えなければならない。「物事をどう実現するか、つまり実用的な応用について考え始める必要がある」と彼は言う。まさにそこが、Python以外の言語が真に重要な役割を果たす部分だと彼は言う。

オンラインスーパーマーケットのOcadoは、オフィスに届くメールにタグを付け、優先順位を付ける非常にシンプルなモデルを開発しました。このモデルはPythonを使用しています。このプロジェクトはビジネスを変革するものではなく、シンプルで役立つものであり、Pythonはプロジェクトのごく一部に過ぎません。

Purves 氏によると、これは JavaScript の使用方法を示す典型的な例です。

この場合、モバイル端末でクラウド上の小さなサーバーに接続し、その小さなサーバーが大きなサーバーに接続しています。デバイス上で何らかの処理を行い、興味深いデータがあれば次のレベルに送ることができます。問題は、高解像度画像では顔認識が難しいことです。画像サイズを縮小するか、単純なアルゴリズムを適用するかのどちらかですが、その精度は60%にとどまります。

「あるいは、どのフレームを次のレベルに送るかを計算することもできます。これは96%の精度で実現できます。つまり、次のレベルに送ることができるのです。しかし重要なのは、JavaScriptが計算のために他の場所に送信する前に、デバイス自体で使用されているということです。」

したがって、機械学習における大量の作業のほとんどが Python を呼び出すことになるのは事実ですが、JavaScript もその中に含まれることになります。

しかし、学術界、そして次世代のデータサイエンティストの教育方法において、JavaScriptは食物連鎖のかなり下位に位置している。ロンドン・スクール・オブ・エコノミクスの定量的社会調査法教授であるケン・ベノワ氏は、どちらを使うべきかはPythonとRのどちらかを選ぶしかないと述べている。

ベノワ氏は、JavaScriptは視覚化機能のおかげで確かにある程度の役割を果たしていると述べています。「JavaScriptには、機械学習を含め、ほぼあらゆるものに対応するライブラリがあります。JavaScriptが使われる主な理由は、その汎用性とブラウザでのレンダリング方法にあります。例えば、最も優れたグラフィックツールの一つであるD3というJavaScriptライブラリは、データ視覚化のほぼあらゆる用途に使用できます。しかし、例えば自動運転車の開発のためのニューラルネットワークを扱う場合、JavaScriptは役に立ちません」とベノワ氏は言います。

ひげを生やしたヒップスターの双子 - イラスト

GitHubの半分以上が重複コードだと研究者が発見

続きを読む

ここには、ある種の自己成就的予言がある。「なぜPythonは巨大なのか?」とパーベス氏は問う。「それは巨大なPythonライブラリがあるからだ。このエコシステムを排除するのは難しいだろう。」

Developer Economicsのガイダンスによると、機械学習の道を歩もうとする人は、人気があるかどうかに縛られるべきではないとのことです。「『機械学習に最適な言語』というものは存在せず、何を構築したいのか、どこから来たのか、そしてなぜ機械学習に携わるようになったのかによってすべてが決まる」とレポートは述べています。

Pythonが永続的に優位性を維持できる兆候はありません。Julia、Lua、Torchなど、他の言語が既に台頭し始めており、Pythonの影響力はいくらか低下する可能性があります。

ベノワ氏によると、Rは今後さらに重要になるだろう。「数学や統計学のバックグラウンドを持つ人の間で、Rを使うことに満足感を覚える人が分かれています。一方、コンピューターサイエンティストはPythonを選ぶ傾向があります」と彼は言う。

しかしパーベス氏は、JavaScriptにもまだ役割があり、将来はPython一辺倒になるわけではないと考えている。これまでと同様に、重要なのは仕事に「適切な」言語を選ぶことだ。この場合、機械学習や取り組んでいるプロジェクトの特定の側面に「適切な」言語を選ぶことだ。

「Webフロントエンドを備えた言語を構築するなら、JavaScriptを検討することになるでしょう。異なる目的には異なるツールが必要なのです」と彼は言います。®

Discover More