-
画像: iStock/monsitj
データサイエンスがあらゆる組織にとって不可欠なものとなるにつれ、それを習得するための適切なツールを見極めることも同様に重要になっています。データサイエンスの課題に取り組むための最も人気のある2つの言語は、PythonとRです。どちらもオープンソースで、大規模なコミュニティを擁しています。しかし、PythonとRはデータサイエンスにおいてそれぞれ独自の強みを持っているため、どちらを使用するかを決めるのは困難です。
R vs. Python: 主な違い
Rは、統計分析を行うためのオープンソースのインタラクティブな環境です。厳密にはプログラミング言語ではありませんが、分析を支援するプログラミング言語が含まれています。
Rプロジェクトのサイトで概説されているように、「Rは、データの操作、計算、グラフィカル表示のためのソフトウェア機能を統合したスイートであり、データ分析のための大規模で一貫性のある統合された中間ツールのコレクションが含まれています…」。Rはそのようなツールとしては最初のものではありませんが、データサイエンスの分野では早くから使用され、長い間学術界の定番となっています。
参照: 採用キット: Python 開発者 (TechRepublic Premium)
対照的に、Pythonはオープンソースで「動的セマンティクスを備えた、インタープリタ型のオブジェクト指向高水準プログラミング言語」であり、プロジェクトのウェブサイトにはそう記されています。しかし、この説明だけではPythonの真価を十分に表現できていません。Pythonは習得が容易な汎用言語であり、長年教育用言語として利用されてきたため、開発者が最初に学ぶ言語となることも少なくありません。
「使いやすく、習得も簡単です。子供でも使えますし、プログラミングを知らない人でも週末に習得できます」と、AnacondaのCEO、ピーター・ワン氏はかつて語った。「これは偶然ではなく、むしろ当初から設計の核心部分であり、非常に意図的なものだったのです。」
近い帰結として、Pythonは常にグルー言語としても優れた機能を発揮してきました。RedMonkのアナリスト、レイチェル・スティーブンス氏は、「その意味で、企業が既存のコードへの投資の一環としてPythonに投資することは非常に理にかなっています」と強調しています。言い換えれば、Pythonは企業がレガシーコードをデータサイエンスへの取り組みという新たな目標の一部に組み込むことを支援します。
おそらく、データ サイエンスにおける Python の主な利点は、誰もが知っている点にあります。
「Pythonはあらゆる用途で2番目に優れた言語です」と、Pythonソフトウェア財団の法務顧問であるヴァン・リンドバーグ氏は述べています。「統計分野ではR言語が最高かもしれませんが、Pythonは2番目です…そして機械学習、ウェブサービス、シェルツール、そして(ここにユースケースを挿入)でも2番目に優れた言語です。」
Lindberg 氏は、いくつかの領域における Python の強みを過小評価しているかもしれません。Python が常に 2 番目に優れているわけではないことは明らかですが、彼の指摘は方向性としては正しいです。「単なる統計以上のことをしたい場合、Python の幅広さは圧倒的な勝者です。」
言い換えれば、Pythonは開発者をはじめとする幅広いユーザーが幅広いユースケースで使用できるほど優れているということです。PythonはJavaと同様に汎用プログラミング言語ですが、Javaとは異なり、学習と使用が非常に容易です。そのため、あらゆる用途で使用され、Wang氏がかつて述べたように「爆発的な成長」につながっています。Terence Shin氏が行ったように、2019年から2021年にかけてのデータサイエンティストの求人におけるPythonとRの相対的な増減を分析すると、PythonがRの衰退によって成長していることは明らかです。
R vs. Python: データサイエンスにはどちらが適していますか?
PythonはRよりも人気が高いことが証明されていますが、必ずしも優れているとは限りません。テクノロジーの多くの分野と同様に、何を達成したいかによって異なります。Pythonは学習のハードルが低く、生産性向上のハードルが低い一方で、Rの非標準的なアプローチは習得が面倒な場合がありますが、タスクによってはRの学習に投資する価値があります。もちろん、データマイニングや基本的なデータ可視化など、特定のタスクではどちらを選んでも問題ない場合もあります。
ただし、何を選択するかは、あなたが取り組もうとしている問題と、あなたやあなたの会社が計画している長期投資から決まる必要があります。
例えば、Rは統計学者が大規模データセットの統計・数値解析を目的として開発しているため、統計計算やデータ可視化に適しています。Rでは、詳細な統計解析やデータ可視化を行うために多くのコードを書く必要はありません。
また、ライフサイエンスなどの分野では、Rパッケージが特に充実しているため、Rが適切な選択肢となる場合もあります。ただし、開発対象やバックグラウンドによって大きく異なります。Align BIのパートナーであるRyan Hobson氏はインタビューで、「プログラミングの経験がない統計学者にとって、Rはより扱いやすい言語だと思います」と述べています。
しかし、まさにその「プログラミングの背景」こそが、ビッグデータ、人工知能 (AI)、ディープラーニング アルゴリズムに興味のある開発者やその他の人にとって Python が明らかに勝者となる理由です。
「Pythonは最初からRよりも広い範囲をカバーしていました(エンジニアリングと科学のDNAがPythonのコアに深く根付いていたからです)」とWang氏は述べた。客観的に見て、PythonはRよりもはるかに幅広いユースケースで圧倒的に人気があり、その人気は日々高まっている。
さらに、データ サイエンスの本質が変化しているという現実もあります。
「従来のデータサイエンスチームのみだった領域にも、業務の拡大が見られます。例えば、Netflixではアルゴリズムプロダクトマネージャーという役割を担っています」と、Netflixのパーソナライズドエクスペリエンス担当イノベーションディレクター、クリスティン・ドイグ氏は述べています。デザインチームやクリエイティブチームとの連携も強化されています。
データ サイエンスの専門分野の拡大により、より多様な人材がデータ サイエンスのワークロードを支援することが必要となり、その結果、より幅広く使用される Python などの言語が有利になります。
したがって、比較的限定的なユースケースを解決するためにRに投資する価値があるのか、それとも幅広いユースケースに対応できるPythonに投資する価値があるのか、という現実的な疑問が生じます。答えは「イエス」かもしれませんが、慎重に検討する必要があります。
あるいは、待つ必要があるかもしれません。RとPythonのコミュニティはどちらも、それぞれの機能を積極的に改善し、パッケージやライブラリを追加することで、その有用性を深め拡張しています。しかし、この分野ではPythonが優位に立っています。それは、コミュニティの相対的な規模だけでなく、グルーコードの伝統も理由の一つです。
ワン氏によると、一部のユースケースでRを置き換えるのではなく、「誰かがRの機能を公開するための薄いシムを公開する、優れたPythonラッパーを構築する可能性が非常に高い」とのことです。言い換えれば、PythonがRのネイティブ要素を取り入れ、開発者やデータサイエンティストが選択する必要がなくなることは容易に想像できます。
RとPythonはどちらも、それぞれのユーザー層に十分に対応しています。確かにPythonコミュニティははるかに大きく、RパッケージをPythonエコシステムに取り込む可能性は、その逆よりも高いでしょう。しかし、どちらを使うかは、最終的には「どちらか一方」ではなく「両方」の問題になるかもしれません。
R と Python について詳しくは、TechRepublic Academyをご覧ください。
- 初心者のためのPython:Python開発の基礎
- 究極の Python プログラマー向けブートキャンプバンドル
- 完全なRプログラミング認定バンドル
- Rによるディープラーニング
開示: 私は MongoDB で働いていますが、ここで述べられている意見は私自身のものです。