おそらく、第一線で活躍してきたプログラマー、特にフルスタックエンジニアはこの肩書きを嗅ぎつけているのでしょう。この記事は主にアイデアを紹介し、将来の技術的方向性を予測することを目的としています。また、記事中に間違った表現があるかもしれませんが、修正をお願いします。未来だけを見たい場合は、途中から始めてください。
コンピューターの出現後、業界は急速に発展し、新しい問題を解決するために新しいテクノロジーが絶えず生み出されています。ここではコンピュータ言語のアップグレードは技術の変化とはみなされません。コンピュータープログラミング言語は、新しい問題を解決するだけでなく、一部の言語の出現と普及には歴史的な理由もあります。
コンピューターが最初に作られたとき、コンピューターはコンピューティングの問題を解決しました。多くの人が数か月かかる計算を数日で完了します。この世代のエンジニアは、ハードウェアの問題を解決することに重点を置いています。プログラマー (またはソフトウェア エンジニア) は、問題をコンピューター言語に翻訳します (実際、これはプログラマーが常に行ってきたことです)。これは段ボールのようなものです。おそらくプログラマーは当時のコンピュータシステムの中核的な役割を果たしていなかったと思われます。なぜなら、問題や課題のほとんどはハードウェア システムとアルゴリズムにあるからです。
世界大戦後、コンピューターのコストが下がるにつれて戦争の必要性が減り、経済発展が活発に始まりました。ハードウェア ソリューションのコストが問題になり始め、汎用コンピュータが生産され始めました。汎用コンピュータは徐々にハードウェア標準を統一し、ソフトウェアにさらなる柔軟性をもたらしました。基本モデルは次のとおりです。ビッグマックのハードウェアメーカーはコンピューティングリソースを提供する責任を負い、プログラマーは問題を解決する責任を負います。このとき、プログラマーの春がやって来ます。同時に、ソフトウェア開発理論は常に進化しています。さまざまな言語の出現により、命令、データ、基本的なプログラムの流れ、ライブラリ関数など、基本的にはコンピュータのさまざまな概念を誰もが認識するようになりました。
今後、コンピューターのアプリケーションの範囲がますます広くなるにつれて、課題はますます多くなるでしょう。システムの複雑さの増大により、多くのシステムはもはや数人、あるいは数十人のプログラマーだけでは完成させることができなくなっています。 (今日のオペレーティング システムと検索エンジンは、何千人、場合によっては何万人もの人々による数十年にわたる努力の結果です。)ソフトウェア エンジニアリング、複雑なシステムをより効率的かつ予測どおりに開発および保守する方法という新たな課題も生まれています。ここでの課題には、従来のプロジェクト管理の経験をソフトウェア プロジェクト管理に組み込む方法、プログラマーにさまざまな標準化されたプログラミング スタイルを採用させる方法、適切なチーム構造を構築する方法などが含まれます。現在、プログラマーの重要性がクローズアップされており、業界内での地位も高まっています。歴史を通じて、かつては何万人もの人々が肉体労働や戦争のために集まりました。人類がその知性を結集してこれほど大規模な問題を解決したことはかつてありませんでした。
同時に、解決される問題の規模と種類もさらに増加しました。その中でも、人間とコンピューターの対話は、人気があり、挑戦的な方向性です。入力に関しては、タイプライターから派生したキーボードに加えて、マウス、ディスプレイ、スピーカーなどのさまざまな人間とコンピュータの対話装置も発明されました。プログラマーは、基礎となるドライバー コードの実装に加えて、人間とコンピューターの対話レベルで便利で使いやすい対話エクスペリエンスも実装する必要があります。現時点では、アルゴリズムと設計の課題に加えて、人間工学的および文化的な課題もあります。たとえば、中国人は広く使用されている中国語キーボードと一般的な入力方法を作成するまでに長い年月を要し、最終的には英語キーボード + ピンインが最も主流の入力方法になりました。これは漢字自体の特性に起因するものであり、プログラマーはこれらの文化法則を実現するために多大な人的資源と物的資源を費やしてきました。さらに、インターネットもまたホットな話題です。プログラマはコンピュータを最下位レベルで接続し、強力なネットワーク機能を利用して人々がリモートで通信できるようにします。
近年、ビッグデータやモノのインターネットなどの人気のある方向性が現れています。プログラマは、ビッグデータのバッチ処理、送信、保存をボトムレベルから実装し、パフォーマンスや信頼性などのさまざまな問題を解決します。ビッグデータの精度と完全性は通常 100% に達しないため、多くのプログラマーはビッグデータを利用して不確実な問題の解決を開始することもできます。
他の人々のプログラマーが、さまざまな分野や種類の問題を解決してきました。開発とテストからアーキテクチャ設計、エクスペリエンス最適化、フロントエンド開発、バックエンド開発、ドライバー開発、データベース開発、IT などに至るまで、プログラマーの役割が分化し始めています (そして多くの役割がプログラマーから分化しています)。は無数にあります。プログラマーという職業のそれほど長くない歴史を通じて、これらの役割は絶えず生まれては消えていきます。これは、世代から世代へとプログラマーが学び続けるか、業界を去るかのどちらかであることを意味します(それは何も悪いことではありません。多くの裕福な人がプログラマーになりました)。歴史的に、プログラマーが解決する問題、プログラマーが使用するコンポーネント、およびプログラマーの考え方は常に変化しています。しかし、プログラムの基本的な流れやデザインパターン、ソフトウェアエンジニアリングなど、変わらないものもいくつかあります。非常に多くのプログラマーは、新しい問題を解決できるように常に新しいことを学習しています。
では、現在、そして将来的にはどのような変化が起こるのでしょうか?ここで私が議論したいのは 1 つだけです。それは、人間とコンピューターの対話方法と人間とコンピューターの対話レベルの革命を含む、人間とコンピューターの対話における革命です。 (人間らしく言えば!) そう、これは Kinect、HoloLens、Cortana によってもたらされた新しい状況です。これらの新製品が統合されると、既存の人間とコンピューターの相互作用に破壊的な革命を引き起こすことになります。一文の要約: 将来的には、人々がテクノロジーの使用方法を学ぶのに費やす時間は減り、プログラマーは人々がテクノロジーに適応するのではなく、テクノロジーを人々に適応させることにもっと多くの時間を費やす必要があります。たとえば、一輪車は片輪でバランスをとる方法を学ぶ必要がなく、クアッドコプターは回転したり安定したりする方法を学ぶ必要はありません。これらはすべて良い例です。
1. 人間とコンピューターの対話方法。人々は 3 次元空間に住んでおり、プログラマーはさまざまな入出力方法で常に 3 次元空間をシミュレートしています。まず、表示画面は 2 次元出力であるため、マウスやさまざまなタッチ方法も 2 次元になるように設計されています。ここでの二次元性は、単に平面的な入出力であるというだけではなく、実際には単なる物理的な平面です。モニターはどこにでも置かれ、タッチはモニター上で完了する必要があり、マウスも必要です。飛行機で移動すること。キーボードはどうですか?その次元は一次元ですらないとも言えます。
未来の入力デバイスとは何ですか?これには、ホログラフィック入出力デバイスとハンズフリー入力方法が含まれます。
(1) ホログラフィック入力デバイス。 Kinect などの体性感覚およびジェスチャ入力デバイスは、ホログラフィック入力デバイスです。 Kinect はクールですが、ホログラフィック入力デバイスのプロトタイプにすぎないと言わざるを得ません。これは、現状がぬるいというだけではなく、まだ改善の余地がたくさんあるからでもあります。一方で、デバイス自体の精度が十分ではなく、使用範囲が 360 度死角なしではありません。他方では、それをサポートする強力な人工知能がありません (人工知能についてはインタラクティブ レベルのセクションで説明します)。ここではホログラフィック入力デバイスについてのみ説明します)。将来の入力デバイスは、空間全体をカバーし、人々の微小な動きや微表情を正確に検出し、さらには人々の健康状態を検出できるようにする必要があります(セキュリティとプライバシーは考慮する必要がある側面です)。単一のテクノロジーの観点から見ると、克服できない問題はないはずですが、それらを統合して完璧なデバイスを作成するには、依然として巨額の投資が必要です。
(2) ホログラフィック出力デバイス。ホログラフィック ディスプレイ技術は、多くの SF 映画で実証されています。 HoloLens などの拡張現実デバイスやさまざまな仮想現実デバイスは、ホログラフィック ディスプレイ デバイスです。これらのデバイスはまだ初期段階にありますが、すでに大きな話題を呼び始めています。物理テクノロジーが画期的に進歩する前は、この種のウェアラブル デバイスがホログラフィック テクノロジーの主な担体です。さらに、さまざまな味覚や触覚のデバイスも登場し、これらは人間のすべての感覚器官をカバーし、ホログラフィック出力デバイスと呼ぶことができます。
(3) Cortana などの音声アシスタント。これの最も革新的な点は、両手がさらに解放されることです (なぜ、これほど馴染みのある言葉に聞こえるのでしょうか?)。これは人間が両手を自由に自由に直立して歩けるのとは比べものになりませんが、その革新性もまた注目に値します。繰り返しになりますが、このタイプの音声アシスタントはまだ初期段階にあり、音声認識に加えて、その主な課題は主に後述する対話のレベルにあります。 Cortana はマウスやキーボードとは異なり、使用方法を学ぶ必要がある一方で、使用するには固定された位置または固定姿勢に移動する必要があります。現在、Cortana を使用するには携帯電話を手に取る必要がありますが、モノのインターネットのさらなる発展によってさらに発展する可能性があります。
ここでプログラマーにとっての課題がやってきます:
(1) これらのデバイスの製造、統合、さらには新しいデバイスの発明。これらのデバイスは、完璧な体験を提供し、人間の動きや感覚とシームレスに統合し、人々が自然に感じられるようにする必要があります。
(2) より高いレベルでは、あいまいで大量の入力を収集し、それをコンピューターが処理できる明確なコマンドに変換する方法。従来の入力方法に比べ、空間が立体化したことに加え、情報量も桁違いに増加しました。
(3)インプット効率を高めて学習コストを削減するには?プログラマーが考慮する必要があるのは、入力効率を破壊的に向上させる方法です。マウスと画面の座標が二次元から三次元に変わっただけではありません。アイアンマンがどのようにしてそこに入ったか考えてみてください?
(4) デバイスの出力を最も自然なエクスペリエンスにする方法は?特にホログラフィック表示装置の場合、めまいなどの問題を解決するには多くのデバッグと調査が必要です。
(5). 最も重要なことは、これらのデバイスを使用して新しい体験モデルを構築する方法です。たとえば、さまざまな種類のアプリケーションをどこに配置し、どのように表示する必要がありますか?最も効率的で自然な動作操作とはどのようなものでしょうか?新しいエクスペリエンスについての理解を深め、新世代のホログラフィック デバイスの機能を解放するには、世代から世代へと製品を継続的に反復する必要があります。
2. 人間とコンピューターの対話レベル。現在の人間とコンピュータの対話方法に関して言えば、多くの製品が非常に優れたエクスペリエンスを実現すると主張していますが、人間は依然として機器に適応する必要があります。入力と出力の方法だけでなく、考え方においても、現在の人間とコンピュータのインタラクション体験には改善の余地がたくさんあります。
たとえば、旅行に行きたいときは、まずオンラインで行き先を調べるか、他の人の話を聞くか、旅行代理店に直接行って予約する必要があります。もちろん旅行代理店に行くのが一番簡単ですが、経験がないと費用は高くなります。自分で調べ、場所を選択し、日付を確認し、航空券やホテルを購入し、ガイドを見つけたい場合は、その過程で多くの検索エンジンやさまざまな予約 Web サイトを使用し、電子メールを送信する必要があります。最初から基本的には最低でも数日はかかりますし、各種ツールを使用する場合も数時間はかかります。では、富裕層はどうでしょうか?プロセス全体が完了するまでにかかる時間はわずか 5 分です。アシスタントに「遊びに行きたい」と伝えてください。アシスタントは、どこに行きたいかを尋ねるだけかもしれません (特定の場所ではないかもしれません)。何日間プレイできますか?いつ行きますか?あとは基本的に段取りが確認できたら報告するだけです。 2 つのプロセスの主な違いは、相互作用のレベルです。普通の人はコンピュータに依存してタスクレベルで対話しますが、裕福な人は意図レベルで対話します。これは、さまざまな相互作用レベルが効率に及ぼす影響です。
Cortana のような音声アシスタントは手を解放するだけでなく、非常に自然な入力方法でもあります。これにより、プログラマーや科学者は人間の言語の背後にある意図についてさらに研究し始めることができ、それによってコンピューターと人間の間の相互作用のレベルが向上します。
Project Oxford や Azure Machine Learning のようなオープン人工知能コンポーネントは、長年研究室にあったおもちゃを真に世界にもたらしました。これは当時の Siri のリリースとまったく同じです。最高ではありませんが、これがなければ Google Now や Cortana の迅速な起動はありませんでした。さて、もう一度行きましょう。Project Oxford はプロトタイプにすぎませんが、Project Oxford の立ち上げにより、業界向けの人工知能コンポーネントのより高いレベルのインターフェイス標準が定義され、人工知能の学習と応用の敷居が低くなりました。特に言語モデル。人工知能コンポーネントのオープン化に加えて、大手企業によるビッグデータに基づくさまざまなデータモデルが間もなく共有されることが予想されます。これらに基づいて、人工知能アプリケーションは間もなくあらゆる場所で開花し、すべてのプログラマーがよりスマートなアプリケーションを作成できるようになり、誰もが自分のパーソナルアシスタントを持つことができるようになります。パーソナル アシスタントの価値がよく理解できない場合は、映画「Her」を見て、人工知能が電話や電子メールの処理にどのように役立つかを確認してください。
その一方で、この人工知能ブームの波の下で、ハードウェア企業も人工知能アルゴリズムを使用したプロセッサの製造を開始しています。これは、新世代のプログラミング言語と概念の人気の始まりでもあります。
インタラクション レベルの点では、プログラマにとってはさらに大きな課題があります:
(1) 最大の課題は、新しいプログラミングの概念を学習して適応することです。以前のプログラムはすべて、if..else + while のような決定論的な構造のプログラムでした。プログラマはメタプログラムの書き方を学び始める必要があります。すべてのユーザーに適応できるプログラムを作成するのではなく、個々のユーザーのニーズに適応できるプログラムを作成します。プログラマーのコードは、詳細の積み重ねではなく、方向性があり、調整されたものになります。
(2) ホログラフィック インタラクションやモノのインターネットなどのテクノロジーを組み合わせて、人間とコンピューターのインタラクションのレベルを向上させる方法について想像力を広げます。人々が 10 ステップと 5 ステップ、5 ステップと 1 ステップで物事を行えるように支援します。たとえば、具体的な行動がなくても、手を上げて水を飲みたいことを示したり、頭を上げて電気をつけたいことを示すことができるのはどのような状況ですか? 、単なるスケジュールではありません。
全体として、ここで説明されている未来には 10 年、20 年、あるいはそれ以上かかる可能性があります。おそらく私たちの世代のプログラマーは世界から撤退しているのでしょう。ホットな話題は、もはやさまざまな言語の発明や、さまざまなエンジニアリング管理手法やソフトウェア設計モデルの発見ではなく、テクノロジーがどのように人間をさらに第一に考え、生産性の向上を促進できるかということになるでしょう。プログラマーにとっての課題は、新しい入出力方法を学び探究することだけでなく、人工知能などのまったく異なるプログラミング概念を学ぶことでもあります。
LAMP BrothersオリジナルのPHPビデオチュートリアルCD/「Essential PHP in Detail」を無料でプレゼント 詳細は公式サイトカスタマーサービスまでお問い合わせください:
http://www.lampbrother.net
|