Python か Java か? 2020年、優秀なプログラマーが習得すべき7つのプログラミング言語

Python か Java か? 2020年、優秀なプログラマーが習得すべき7つのプログラミング言語

どのプログラミング言語が最適ですか?この質問には答えがないかもしれません。人によって好みは異なります。AI エンジニアや科学者は、プロジェクトのニーズに応じて、さまざまなプログラミング言語から最適なプログラミング言語を選択できます。

かつて誰かがプログラミングを料理に例えましたが、プログラミング言語は最初に準備する材料または調理器具です。

C: 包丁、フライパン、とても便利なコンロ、そして隣には野菜市場があります。

Java: 野菜チョッパー、野菜カッター、ミートグラインダー、生地ミキサー、オーブン、電子レンジ...

Python: 大きなスーパーマーケットの冷凍食品売り場には、完成品、半完成品、その他あらゆるものが揃っています。すぐにテーブルに食べられる料理を並べることができますが、味や調理時間を正しく決めるのは簡単ではありません。

C++: 肉を切ったり、スライスしたり、切り分けたりするための十数本のナイフが付いた最高級のキッチン用品セット。炒め物、蒸し煮、肉の揚げ物、オムレツ、スープ煮込み用の鍋もあります... 21日間でこのツールセットの使い方をマスターしようとする人もいますが、結局は怪我をしたり、キッチンを爆破したりしてしまうことがよくあります。

AI 開発を始めたばかりの頃のニーズを満たすプログラミング言語は数多くありますが、プロジェクトごとに目標が異なるため、特定のアプローチが必要になるため、AI プログラミングの問題をワンストップで解決できるプログラミング言語はありません。

料理をするときに慎重に選ぶのと同じように、「達人」になる過程で学ぶ必要があるのは、自分に最も適したプログラミング言語を見つけることです。

パイソン

Python は、読むことができる最も強力な言語です。 —ポー・デュボア

[[321333]]

Pythonプログラミング。画像出典: Unsplash.

Python は 1991 年に開発されましたが、世論調査によると、AI を開発する際には、開発者の 57% 以上が C++ ではなく Python を優先プログラミング言語として選択しています。 Python は学習が簡単なので、プログラマーやデータ サイエンティストが AI 開発の世界に参入しやすくなります。

Python は、プログラマーがどの程度の自由を求めるかを示す「実験」です。自由すぎると、誰も他の人のコードを理解できません。制限が多すぎると、表現力がなくなります。 —グイド・ヴァン・ロッサム

Python を使用すると、優れたコミュニティ サポートと幅広いライブラリ セットを利用できるだけでなく、柔軟性も得られます。おそらく、Python から得られる最大の利点は、プラットフォームの独立性と、ディープラーニングおよび機械学習のための幅広いフレームワークです。

Python でコーディングする楽しみは、多くの動作を少しの明確なコードで表現する、小さくて読みやすいクラスを見ることです (大量のコードで読者を退屈させるのではなく)。 ——グイド・ヴァン・ロッサム

Python コード スニペットの例:

よく使われるライブラリ

  • TensorFlow — 機械学習のワークロードとデータセットの操作に使用します。
  • scikit-learn — 機械学習モデルをトレーニングします。
  • PyTorch — コンピュータービジョンと自然言語処理。
  • Keras - 非常に複雑な数学的計算と操作のためのコード インターフェース。
  • SparkMLib - Apache Spark に似た機械学習ライブラリで、アルゴリズムやユーティリティなどのツールを通じて誰でも簡単に機械学習を行えます。
  • MXNet – ディープラーニングのプロセスを簡素化する Apache の別のライブラリ。
  • Theano - 数式を定義、最適化、評価するためのライブラリ。
  • Pybrain - 強力な機械学習アルゴリズム向け。

さらに、GitHub ライブラリの貢献により、Python は Java を上回り、世界で 2 番目に人気のある言語になりました。 Stack Overflow は、Python を「最も急速に成長している」主流のプログラミング言語と呼んでいます。

ジャワ

一度書けばいつでも実行できます。

Java は、過去 20 年間の使用実績からもわかるように、世界最高のプログラミング言語の 1 つとして広く認められています。

Java は、その使いやすさ、柔軟性、プラットフォームの独立性により、次のようなさまざまな方法で AI の開発に関わってきました。

  • TensorFlow – API を備えた Java も、TensorFlow でサポートされているプログラミング言語に含まれています。 Java は完全にサポートされている他の言語ほど機能が豊富ではありませんが、サポートされており、急速に改善されています。
  • Deep Java ライブラリ - Java でディープラーニング機能を作成および展開するために Amazon が開発したライブラリ。
  • Kubeflow — Kubeflow を使用すると、Kubernetes 上での機械学習スタックのデプロイと管理が容易になり、すぐに使用できる ML ソリューションも提供されます。
  • OpenNLP – Apache の OpenNLP は、自然言語処理用の機械学習ツールです。
  • Java 機械学習ライブラリ - Java-ML は、開発者にさまざまな機械学習アルゴリズムを提供します。
  • Neuroph - Neuroph は、Java オープン ソース フレームワークを使用して、Neuroph GUI の助けを借りてニューラル ネットワークを設計します。
  • Java がガベージコレクションされた場合、ほとんどのプログラムは実行時に自分自身を削除することになります。 ——ロバート・シーウェル

Java コード スニペットの例:

R

ロス・イハカとロバート・ジェントルマンは 1995 年に R 言語の最初のバージョンを公開しました。現在、R 開発コア チームによって管理されている R は、統計ソフトウェアの開発とデータ分析に使用される S プログラミング言語の実装です。

R の基本的な特徴は、大量のデータの処理に優れていることです。Python の不完全な NumPy パッケージと比較すると、R はより良い選択肢です。R を使用すると、関数型プログラミング、ベクトル コンピューティング、オブジェクト指向プログラミングなど、さまざまなプログラミング パラダイムを処理できます。

R 用の AI プログラミング パッケージ:

  • Gmodels - モデルをフィッティングするためのツールセットを提供します。
  • Tm - テキストマイニングアプリケーション用のフレームワーク。
  • RODBC – R 用の ODBC インターフェース。
  • OneR - 機械学習モデルに適した、単一ルールの機械学習分類アルゴリズムを実装するために使用されます。

データ マイナーと統計学者の間で広く使用されている R の機能は次のとおりです。

  • 拡張機能のためのさまざまなライブラリとパッケージ。
  • アクティブなサポートコミュニティ。
  • C、C++、Fortran で作業できます。
  • 機能拡張に役立ついくつかのパッケージ。
  • 高品質なグラフィックスの生成をサポートします。

プロローグ

ロジックプログラミングの略語。 Prolog は 1972 年に初めて登場し、人工知能、特に自然言語処理の開発に適しています。 Prolog はチャットボットの作成に最適であり、ELIZA は Prolog を使用して作成された最初のチャットボットです。

最初の成功したチャットボット。

Prolog を理解するには、Prolog の動作をガイドするいくつかの基本的な用語に精通している必要があります。

  • 事実は真実の陳述を定義します。
  • ルールは条件が付加されたステートメントを定義します。
  • 目標は、知識ベースに従ってステートメントを送信する場所を定義します。
  • クエリは、ステートメントを正しくする方法と、事実とルールの最終的な分析を定義します。

Prolog は、長い間存在し、データ サイエンティストや研究者の間でよく知られている AI 実装の 2 つのアプローチを提供します。

  • 記号的手法には、ルールベースのエキスパート システム、定理証明、制約ベースの手法が含まれます。
  • 統計的手法には、ニューラル ネットワーク、データ マイニング、機械学習などがあります。

リスプ

Lisp を使用して、n 入力と m ユニットを持つ 1 層パーセプトロンを作成します。

リスト処理の略。これは Fortran に次いで 2 番目に古いプログラミング言語です。 AIの創設言語の1つとしても知られ、1958年にジョン・マッカーシーによって作成されました。

Lisp は不可能を可能にする言語です。 ——ケント・ピットマン

プログラミングのための実用的な数学表記法である Lisp は、すぐに開発者が選ぶ AI プログラミング言語になりました。 Lisp は、次のような独自の機能を備えているため、機械学習 AI プロジェクトに最適な選択肢の 1 つです。

  • ラピッドプロトタイピング;
  • 動的オブジェクトを作成します。
  • ガベージコレクション。
  • 柔軟性。

他の競合プログラミング言語が大幅に改善されるにつれて、他の言語にも Lisp の独自の機能がいくつか取り入れられるようになりました。 Lisp に関連する有名なプロジェクトには、Reddit や HackerNews などがあります。

Lisp といえば、少なくとも Haskell が登場するまでは、世界で最も美しい言語でした。 ——ラリー・ウォール

ハスケル

Haskell は 1990 年に作成され、有名な数学者 Haskell Brooks Curry にちなんで名付けられました。 Haskell は、遅延評価と短いコードに適した、純粋に機能的で静的に型付けされたプログラミング言語です。

Haskell は他のプログラミング言語に比べてエラーが少ないため非常に安全なプログラミング言語であり、エラー処理の柔軟性が高くなります。エラーが発生した場合でも、ほとんどの非構文エラーは実行時ではなくコンパイル時に検出できます。 Haskell が提供する機能は次のとおりです。

  • 強い抽象能力。
  • 組み込みのメモリ管理。
  • コードの再利用性;
  • わかりやすいです。

私が知る限り、タイピングではなく考えることに時間を費やせるプログラミング言語は、SQL、Lisp、Haskell だけです。 ——フィリップ・グリーンスパン

Haskell の機能はプログラマーの生産性の向上に役立ちます。 Haskell は他のプログラミング言語と非常に似ていますが、ごく一部の開発者によってのみ使用されています。課題はさておき、開発者コミュニティでの採用が拡大するにつれて、Haskell は AI 向けの他の競合言語と同様に優れていることが証明される可能性があります。

ジュリア

Julia は、ほぼすべてのアプリケーションを作成できる高性能な汎用動的プログラミング言語ですが、数値解析と計算科学に最適です。 Julia で使用されるその他のツールは次のとおりです。

  • Vim や Emacs などの人気のエディター。
  • Juno や Visual Studio などの IDE。

Julia ソースコードの構成。

Julia には、AI プログラミング、機械学習、統計、データ モデリングに最適な機能がいくつかあります。これらの機能は次のとおりです。

  • 動的型システム。
  • 組み込みパッケージマネージャー。
  • 並列および分散コンピューティングが可能。
  • マクロおよびメタプログラミング機能。
  • 複数のディスパッチをサポートします。
  • C 関数の直接サポート。

Julia は他のプログラミング言語の弱点を解消するように構築されており、TensorFlow.jl、MLBase.jl、MXNet.jl などの他のツールと統合することで機械学習に使用でき、Julia のスケーラビリティを利用してさらに多くのことを行うことができます。

Google トレンド - Julia の使用傾向。

要約する

AI エンジニアや科学者は、プロジェクトのニーズに応じてさまざまなプログラミング言語を選択できます。すべての AI プログラミング言語には長所と短所があります。これらの言語が改良され続けるにつれて、AI 開発はより快適な体験となり、より多くの人々がこのイノベーションの波に参加できるようになります。優れたコミュニティ サポートにより、新しい人にとって物事が容易になり、パッケージや拡張機能へのコミュニティの貢献により、全員の仕事が容易になります。

<<:  自己教師あり学習:AI技術の将来の方向性

>>:  フェイフェイ・リー氏のチームは、一人暮らしの高齢者のCOVID-19症状を監視する家庭用AIシステムを開発

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

世界中でデータ損失を防ぐ先進技術の役割

デジタル時代が進化するにつれ、世界的なデータ損失を防ぐための高度なテクノロジーの役割がますます重要に...

機械学習分野における社内競争について:博士号を取得しないと就職する資格はないのでしょうか?

[[390714]]機械学習は複雑化していますか? 「博士号なしで機械学習の仕事を得るのはますます...

予測によると、人工知能市場は急速に成長し続けるだろう

スペイン紙エル・ムンドのウェブサイトが2月20日に報じたところによると、ソフトウェア、ハードウェア、...

...

...

スポットロボット犬が古代ポンペイの警備員として活躍!墓泥棒を防ぐだけでなく、宙返りや3Dモデリングもできる

ボストン・ダイナミクスのロボット犬は、ダンスビデオを毎年リリースしているほか、さまざまな産業や警察署...

30秒で署名、上海の核酸採取ロボットが登場!

COVID-19の流行が続き、核酸検査が広範囲で徐々に常態化している中、複数の組織が核酸検査用ロボ...

二足歩行ロボット「キャシー」が機械学習を使って5kmのジョギングを完走

ロボット工学の世界では 4 年というのは長い期間ですが、特にオレゴン州立大学 (OSU) が開発した...

AI脳を搭載したドローン:群衆の中の暴力的な人々を正確に識別できる

[[233174]]もしある日私を殴りたくなったら、ただ殴って終わりにできると思いますか?今はそんな...

...

自動車技術が新たな時代を切り開きます!メルセデス・ベンツ、BMW、Google、Amazon、Qualcommの次世代レイアウト!

編纂者:ヤン・ジェン制作:51CTO テクノロジースタック(WeChat ID:blog)次世代のス...

携帯電話の顔認識は、単に顔を見せることだけだと思っていませんか?あまりにもナイーブだ!女の子は注意しなければならない

今日は古い知識を学んだのですが、普段私たちが使っている携帯電話の顔認識は顔の部分だけを認識するもので...

ガートナーの2020年のトップ10戦略的テクノロジートレンド: ハイパーオートメーション、分散クラウド、AIセキュリティなど

ハイパーオートメーション、ブロックチェーン、AI セキュリティ、分散クラウド、自律デバイスは、今年の...

...

絶えず繰り返されるアルゴリズムとプログラミング技術が若者の発達を促している

人間の進化と発達は、脳の潜在能力を最大限に活用して世界を変えるプロセスです。その中で、インターネット...