なぜR?R言語の長所と短所

Rプログラミング言語は、数値解析および機械学習の分野で開発するための重要なツールです。データジェネレータとしてマシンの重要性が増すにつれ、この言語の人気は高まると予想されます。しかし、Rには、開発者が知っておくべき長所と短所の両方があります。

TIobe、PyPL、Redmonkなどの言語人気指数に示されているように、言語の成長への関心とともに、Rは1990年代に初めて登場し、S統計プログラミング言語の実装として機能してきました。大学とCourseraオンラインプラットフォームの両方でRを教えている18年のRプログラミングベテランであるRogerPengは、「Rは統計の分野で使用される最も人気のある言語です」と述べています。

「私は[R]が好きです。なぜなら、よりコンピュータサイエンスのレベルからプログラムするのが非常に簡単だからです」とPengは言います。また、Rは時間の経過とともに高速化し、さまざまなデータセット、ツール、またはソフトウェアパッケージをつなぎ合わせるためのグルー言語として機能します。

「Rは、再現性のある高品質の分析を作成するための最良の方法です。データを処理するときに私が求めているすべての柔軟性とパワーを備えています」と、オンラインプログラミング教育を提供するCodeSchoolのデータサイエンティストであるMattAdamsは述べています。「私がRで作成するプログラムのほとんどは、実際にはプロジェクトに編成されたスクリプトのコレクションにすぎません。」

Rの強力なパッケージエコシステムとチャート作成のメリット

Rの利点には、パッケージエコシステムが含まれます。「パッケージエコシステムの広大さは、間違いなくRの最も強力な品質の1つです。統計的手法が存在する場合、そのためのRパッケージがすでに存在する可能性があります」とAdams氏は言います。

「統計学者のために構築された多くの機能が組み込まれています」とPeng氏は言います。Rは拡張可能であり、開発者がデータを分析するための独自のツールとメソッドを構築するための豊富な機能を提供します、と彼は言います。「時が経つにつれ、生物科学や人文科学を含む他の分野から、より多くの人々がそれに惹かれてきました」。

「人々は許可を求めることなくそれを拡張することができます。」実際、Pengは、Rの使用条件が何年も前に大きな助けになったと回想しています。「それが最初に発表されたとき、最大の利点はそれがフリーソフトウェアであったことでした。ソースコードとそれに関するすべてが見ることができました。」

アダムズ氏によると、Rのすべてのグラフィックスとチャート機能は「比類のない」ものです。データ操作とプロット用のdplyrパッケージとggplot2パッケージは、それぞれ「文字通り私の生活の質を向上させました」と彼は言います。

機械学習の場合、Rの利点は、主にRの学界との強い結びつきに関連しているとAdamsは言います。「この分野の新しい研究には、おそらく最初からそれに伴うRパッケージが付属しています。したがって、この点で、Rは最先端にとどまります」と彼は言います。「キャレットパッケージは、比較的統合されたAPIを介してRで機械学習を行う非常に気の利いた方法も提供します。」Pengはまた、多くの一般的な機械学習アルゴリズムがRに実装されていると述べています。

セキュリティとメモリ管理におけるRの欠点

そのすべての利点のために、Rには欠点があります。「メモリ管理、速度、効率は、おそらくRが直面する最大の課題です」とAdams氏は言います。「これらの面で進歩を遂げてきた-そして今もなお-進歩している。また、他の言語からRに来る人々は、Rを風変わりだと考えるかもしれない。」

Rの基本原理は、1960年代に構築されたプログラミング言語から発せられているとPeng氏は言います。「その意味で、それは元々設計されていた方法での一種の古い技術です。」言語の設計は、非常に大きなデータセットを扱う際に問題を引き起こすことがあると彼は言います。データは物理メモリに保存する必要があります。しかし、コンピュータがより多くのメモリを取得するにつれて、これはそれほど問題にならなくなった、とPeng氏は述べています。

セキュリティなどの機能はR言語に組み込まれていなかったとPeng氏は言います。また、RをWebブラウザに埋め込むことはできませんとPeng氏は言います。「Webのようなアプリやインターネットのようなアプリには使用できません。」Rは、Web上のセキュリティが不足しているため、計算を行うためのバックエンドサーバーとして使用することは基本的に不可能でした、と彼は言います。ただし、セキュリティの問題は、Amazon WebServicesクラウドプラットフォームでの仮想コンテナの使用などの開発によって軽減されたとPeng氏は言います。

長い間、言語には多くの双方向性がありませんでした、と彼は言います。JavaScriptなどの言語はまだ入ってこのギャップを埋める必要があります、とPengは言います。分析はRで行われるかもしれませんが、結果の表示はJavaScriptなどの異なる言語で行われる可能性があると彼は言います。

Rは上級プログラマーだけのものではありません

それでも、AdamsとPengはどちらも、Rをアクセシブルな言語と見なしています。「私はコンピューターサイエンスのバックグラウンドを持っていませんし、プログラマーになることを望んでいませんでした。プログラミングの基礎知識は、ツールボックスにRを追加するときに確かに役立ちますが、始める必要があるとは言えません」とAdams氏は言います。

「Rがプログラマー向けだとは言えません。プログラミングの適性に関係なく、解決しようとしているデータ指向の問題を抱えている人々に最適です」と彼は言います。