AIとビッグデータの時代に、最初の開発言語となるのは誰でしょうか?これは議論の余地のない質問です。 3年前は、Matlab、Scala、R、Java、Pythonはそれぞれ独自のチャンスがあり、状況はまだ不明瞭でしたが、3年後、特に2日前にFacebookがPyTorchをオープンソース化して以来、傾向は非常に明確になりました。 AI時代のトップ言語としてのPythonの地位は基本的に確立されました。今後の唯一のサスペンスは、誰がしっかりと2位に座ることができるかです。 しかし、サウンド市場にはまだ多少のノイズが残っています。最近、データサイエンスの学習に興味を持っている女の子が、Hadoop などのビッグデータ インフラストラクチャは Java で書かれているので、Java から始めるように友人から勧められたと私に話しました。 偶然にも、先月 IBM developerWorks は、求人ウェブサイト Indeed のデータを使用して統計分析を行った個人ブログを公開しました。この記事自体は客観的で公平かつ現実的であると考えられるが、中国で流布された際、一部の評論家は本来の意味を誤解し、Pythonの優位性はまだ確立されておらず、誰が勝つかはまだ不明であると述べた。学習者は盲目的に流行に従うのではなく、複数の当事者に賭け、止まることなくコショウを振りかけ続ける必要がある。 ここで明確にしておきたいのは、AI およびビッグデータ業界に参入したい開発者にとって、Python に投資することは安全であるだけでなく、必要不可欠でもあるということです。言い換えれば、将来この業界で働きたいのであれば、他のことは考えず、目を閉じて Python を学んでください。 もちろん、Python には問題や欠点がないわけではなく、別の言語や複数の言語と組み合わせることもできますし、そうすべきですが、Python がデータ分析と AI の第一言語としての地位を維持することは間違いありません。 Python がこの地位をしっかりと確立していること、この業界が将来的に多数の実践者を必要とすること、そして Python が世界中の大学、短大、小中学校の入門プログラミング コースで急速に好まれる教育言語になりつつあることを考えると、このオープン ソースの動的スクリプト言語は近い将来、最初の真のプログラミング言語になる可能性が非常に高いと私は考えています。 プログラミング言語の長所と短所、盛衰を議論することは、常に口論の話題とみなされ、上級者からは軽蔑されてきました。しかし、私はこの Python の台頭は大きな出来事だと考えています。 15年後、中国や海外を問わず、医師から建設エンジニア、事務員から映画監督、作曲家から営業職まで、40歳以下のすべての知識労働者が、基本的なデータ処理に同じプログラミング言語を使用し、クラウド上の人工知能APIを呼び出し、インテリジェントロボットを操作し、互いにアイデアを伝達できるとしたら、このユニバーサルプログラミングコラボレーションネットワークの重要性は、プログラミング言語をめぐるあらゆる論争をはるかに超えるものとなるでしょう。 現時点では、Python がこの役割を果たす可能性が最も高いと思われます。 Python の欠点は明らかなので、Python の勝利は驚きです。その構文は独特で、多くのベテランを不安にさせます。「裸の」Python は非常に遅く、さまざまなタスクにおいて C よりも数十倍から数千倍遅くなります。 グローバルインタープリターロック (GIL) の制限により、単一の Python プログラムを複数のコアで同時に実行することはできません。 Python 2 と Python 3 は長い間並行して使用されており、多くのモジュールが 2 つの異なるバージョンを同時に維持する必要があり、開発者に多くの不要な混乱とトラブルをもたらしています。 Python はどの企業にも管理されていないため、サポートする意思のあるテクノロジー大手はありません。そのため、Python の幅広い応用と比較すると、そのコア インフラストラクチャに対する投資とサポートは実際には非常に弱いです。 今日に至るまで、26 年の歴史を持つ Python には公式の標準 JIT コンパイラがありません。対照的に、Java 言語はリリース後 3 年以内に標準 JIT を取得しました。 もう一つはもっとわかりやすいことです。 Python の GIL コア コードは、言語の作成者である Guido van Rossum によって 1992 年に作成されましたが、それ以来 18 年間、この重要なコードは 1 バイトたりとも変更されていません。 18 年! 2010 年になってようやく Antoine Pitrou が 20 年近くぶりに GIL に改良を加え、Python 3.x バージョンでのみ使用されました。つまり、現在 Python 2.7 を使用しているほとんどの開発者にとって、作成するすべてのプログラムは、26 年前に作成されたコードによって依然として厳しく制約されていることになります。 Python の欠点といえば、私に起こったちょっとした逸話を思い出します。何年も前に、私は Python については楽観的だが Ruby についてはそうではないと記事で述べました。 約2年前、あるネットユーザーがWeiboで私を見つけて、その年に私の記事を読んだために誹謗中傷を聞いて執着し、Pythonに集中し、Rubyから遠ざかっていると厳しく批判しました。 彼はPythonに精通しているものの、最近Rubyを習得し、それがとても美しくて素敵だったので、彼は喜びに圧倒されたようです。しかし同時に、彼は私に完全に騙され、最も美しいプログラミング言語を最盛期に逃してしまったことに怒りを覚えました。当時、私は彼とそれ以上議論しませんでしたが、彼が今日、Python バックエンド、ビッグデータ分析、機械学習、AI エンジニアから Rails 高速開発の専門家にうまく転身できたかどうかはわかりません。 何かの価値を本当に理解するのは簡単ではないと思うだけです。 Python は、さまざまな問題を抱えながらトップクラスに躍り出たレーサーですが、数年前でさえ、Python が栄冠を勝ち取るチャンスがあると信じている人は多くありませんでした。Java の地位は揺るぎないと考える人も多く、すべてのプログラムが JavaScript に書き直されるだろうと言う人もいました。 しかし今日では、Python はすでにデータ分析と AI の第一言語、ネットワーク攻撃と防御の第一ハッカー言語であり、入門プログラミング指導の第一言語、クラウド コンピューティング システム管理の第一言語になりつつあることがわかります。 Python は長い間、Web 開発、ゲーム スクリプト、コンピューター ビジョン、IoT 管理、ロボット開発の主流言語の 1 つになっています。Python ユーザー数の増加が予想されるため、複数の分野でトップに到達するチャンスがあります。 また、将来の Python ユーザーの大多数はプロのプログラマーではなく、現在も Excel、PowePoint、SAS、Matlab、ビデオ エディターを使用しているユーザーになることを忘れないでください。 AI を例に挙げてみましょう。まず、AI の主力はどこにあるのかを尋ねる必要があります。今日このトピックを静的に話すと、AI の主力は研究機関の AI 科学者、博士号を持つ機械学習の専門家、アルゴリズムの専門家であると考えるかもしれません。 しかし、前回私が言及した李開復の「AI配当三部作」は、もう少し長期的な視点で見れば、3年から5年後にはAI業界全体の労働力が徐々に巨大なピラミッド構造を形成することがわかると明確に述べています。前述のAI科学者はトップのほんの一部に過ぎません。AI技術者の95%以上は、AIエンジニア、アプリケーションエンジニア、AIツールユーザーになります。 これらの人々のほとんどは Python に捕らえられ、Python 陣営の巨大な予備軍になるだろうと私は信じています。これらの潜在的な Python ユーザーはまだテクノロジー界の外にいるが、AI アプリケーションの発展に伴い、何百万人もの教師、会社員、エンジニア、翻訳者、編集者、医師、営業、管理者、公務員がそれぞれの分野の業界知識とデータ リソースを持ち込み、Python と AI の波に加わり、IT 全体、または DT (データ テクノロジー) 業界の全体的なパターンと外観を大きく変えることになるだろう。 Python がトップになったのはなぜでしょうか? 一般的な観点から言えば、簡潔で洗練された言語設計、プログラマーにとっての使いやすさ、高い開発効率など、Python の利点を簡単に挙げることができます。しかし、他の言語もこの点では同様に優れているため、これが根本的な原因であるとは思いません。 Python の利点は、豊富なリソース、堅牢な数値アルゴリズム、アイコン、データ処理インフラストラクチャ、非常に優れたエコシステム環境の構築にあり、それがさまざまな分野の多数の科学者や専門家を引き付け、Python の人気がどんどん高まっていると考える人もいます。しかし、これは原因と結果を結びつけていると思います。 Python が、なぜ人々を惹きつけ、優れたインフラストラクチャを構築する言語なのでしょうか? 世界最高の言語である PHP には、なぜ numpy、NLTK、sk-learn、pandas、PyTorch と同レベルのライブラリがないのでしょうか。JavaScript が繁栄するにつれてライブラリが不均一で乱雑になったのに、Python のライブラリは繁栄し、整然としており、高いレベルを維持できるのはなぜでしょうか。 最も根本的な理由はただ一つ、Python は多くの主流言語の中で、明確な戦略的ポジショニングを持ち、常に本来の戦略的ポジショニングを順守している唯一の言語であるということだと思います。 ** 対照的に、あまりにも多くの言語が、戦術的かつ無原則な勤勉さによって、自らの戦略的ポジショニングを絶えず侵食し、曖昧にしており、最終的には劣るものにしかなりません。 Python の戦略的位置づけは何でしょうか? 実は、それは非常に簡単です。それは、シンプルで使いやすく、かつ専門的で厳密な汎用結合言語、つまりグルー言語を作成し、一般の人が簡単に使い始め、さまざまな基本プログラム コンポーネントを組み立てて操作を調整できるようにすることです。 まさにこの位置付けのため、Python は常に、トリックやガジェットよりも言語自体の美しさと一貫性を優先し、CPU 効率よりも開発者の効率を優先し、垂直方向のディープ ダイブ機能よりも水平方向の拡張機能を優先します。これらの戦略的選択を長期にわたって順守することで、Python は他の言語では実現できない豊かなエコシステムを実現しました。 たとえば、学ぶ意欲のある人なら誰でも、数日で Python の基礎を習得し、さまざまなことが可能になります。この入出力比率は、他のどの言語にも匹敵しないかもしれません。 たとえば、Python 言語自体が遅いため、頻繁に使用されるコア プログラム ライブラリを開発するときには、C 言語を広く使用して Python と連携します。その結果、システムによって実行されるコードの 80% 以上が C で記述されている可能性が非常に高いため、Python で開発された実際のプログラムは非常に高速に実行されます。 逆に、Python が譲歩せず速度競争に固執した場合、結果として生の速度は数倍に向上するが、C モジュールを開発する意欲を持つ人は誰もおらず、最終的な速度はハイブリッド モードよりもはるかに遅くなる可能性が高い。さらに、言語はより複雑になり、遅くて見苦しい言語になる可能性が高い。 さらに重要なのは、Python はパッケージング、構成、埋め込み性に優れていることです。さまざまな複雑さを Python モジュールにパッケージ化し、美しいインターフェースを公開できます。多くの場合、ライブラリは C/C++ で記述されますが、環境設定からインターフェイスの呼び出しまで、C または C++ を使用してライブラリを直接呼び出すのは非常に面倒です。代わりに、Python ラッパー ライブラリを使用すると、よりクリーンで、整然としていて、高速で、美しくなります。 これらの特性は、AI 分野における Python の強力な利点となります。 Python は、AI とデータ サイエンスの助けを借りて、プログラミング言語エコシステムの頂点にまで上り詰めました。 Python は AI と結びついています。電子商取引、検索エンジン、ソーシャル ネットワーク、スマート ハードウェアなど、AI にとって将来は、エコシステムの下流にあるデータの牛、電子神経、実行ツールに過ぎず、すべて従うことになります。 プログラミング言語開発の歴史についての知識が不足している人は、Python の戦略的ポジショニングが冷笑的で野心がないと感じるかもしれません。しかし、シンプルでありながら厳密であり、使いやすくかつ専門的であることは難しく、グルー言語のポジショニングに固執することはさらに難しいことがわかりました。 一部の言語は、最初から実用的な目的ではなく学術的な目的のために設計されており、学習曲線が急すぎるため、一般の人々がアプローチするのが困難です。いくつかの言語は、資金提供者の商業的支援に過度に依存しています。うまくいっているときは非常に人気がありますが、いったん脇役に追いやられると、存続さえ問題になります。 一部の言語は、大規模な並行処理を解決するため、行列演算を解決するため、または Web ページのレンダリング テンプレートを作成するためなど、明確な仮想シナリオを念頭に置いて設計されています。このシナリオから外れると、あらゆる種類の不快感が発生します。 多くの言語は、ちょっとした成功を収めると、すぐに万能のチャンピオンになりたくて、四方八方に必死に触手を伸ばすようになります。特に、表現力の向上やパフォーマンスの向上に過度に積極的になり、コア言語を認識できないほど変更することをためらわず、最終的には誰も制御できない巨大なものに変えてしまいます。 対照的に、Python は現代のプログラミング言語の設計と進化の成功例です。 Python が戦略的ポジショニングにおいて非常に明確であり、戦略的持続性が堅固である理由は、結局のところ、Python のコミュニティが模範的な意思決定とガバナンスのメカニズムを構築しているからです。 このメカニズムは Guido van Rossum (BDFL、Python ユーザーはこれが何を意味するかはご存じでしょう)、David Beazley、Raymond Hettinger などが中心となり、PEP が組織プラットフォームとして機能しています。民主的で秩序があり、集中化されていてオープンな考え方です。この仕組み自体が維持される限り、Python は今後も着実に成長し続けるでしょう。 Python に最も対抗する可能性のある言語は、もちろん Java です。 Java は大規模なユーザーベースを持ち、明確で確固とした戦略的ポジショニングを持つ言語でもあります。しかし、Java は本質的に大規模で複雑なシステムを構築するために設計されているため、あまりチャンスはないと思います。 大規模複雑システムとは何でしょうか? それは、人間によって明確に記述され構築され、その規模と複雑さが外生的、つまり外界によって与えられるシステムです。 AI の本質は、自己学習型、自己組織型システムです。その規模と複雑さは内生的であり、データによって供給される数学モデルから生まれます。 そのため、Java の言語構造のほとんどは、ビッグデータ処理や AI システム開発には効果がないと思われます。あなたの得意分野はここでは活かされておらず、ここで必要なことを行うのが不便だと感じています。 Python のシンプルさとデータ処理のパワーは、昔から誰もが知っています。同じ機能を持つ 2 つの Java と Python の機械学習プログラムを比較すると、普通の人は 2 度見ただけで、Python プログラムの方が新鮮で楽しいはずだと判断できます。 2003年か2004年頃、ブラジル人が書いたPythonの本を購入しました。 Python を選んだ理由は、子供の頃、将来の世界は巨大なニシキヘビ (python は英語でニシキヘビ) に支配されるだろうとよく夢見ていたからだと彼は言いました。当時、私は彼がそのような恐ろしい光景を夢に見ることができたことをとても気の毒に思いました。しかし、今から見れば、彼はマトリックスの、偶然未来へ旅して世界の真実を垣間見たプログラマーのアンダーソンのようなのかもしれない。 |
<<: 1 つの記事で RNN (リカレント ニューラル ネットワーク) の基礎を理解する
>>: 明らかにした! BBC は 365 の職業を分析し、これが機械によって排除される可能性が最も低い職業であると判明しました。
Chat GPTのリリース以来、AIはプログラミングをはじめ、さまざまな分野で素晴らしい製品を生み出...
編集:王昊、千山企画丨張傑新型コロナウイルス感染症の世界的大流行の発生と拡大により、過去2年間にわた...
四足歩行ロボットはもはや誰にとっても馴染みのない存在ではないはずです。ほとんどの人はメディアや企業の...
最近、同義千文がとても人気になってきました。少し前にネットユーザーの間で熱狂を巻き起こした国民的ダン...
ChatGPT を使用して有料の Web コンテンツに無料でアクセスすることは、まもなくできなくな...
9月末、OpenAIはChatGPTのマルチモーダル機能の禁止を解除すると発表しました。マルチモーダ...
今日まで人工知能は発展してきましたが、人工知能は意識を持っているのでしょうか?チューリング賞受賞者の...
近年、人口ボーナスの継続的な減少に伴い、無人作業の需要がますます顕著になり、ロボット産業は急速な発展...