この質問は comments から生じたもので、過去50年ほどのさまざまな種類のコンピューティングの進歩についてです。
他の参加者から、フォーラム全体への質問としてそれを提起するように依頼されました。
ここでの基本的な考え方は、物事の現在の状態を打ち負かすことではなく、根本的な新しいアイデアや原則を思い付くまでの進捗について何かを理解しようとすることです。
私は、コンピューティングのほとんどの分野で本当に新しいアイデアが必要だと主張し、最近行われた重要で強力なアイデアを知りたいと思っています。本当に見つからない場合は、「なぜ?」そして「私たちは何をすべきでしょうか?」
これについて考え始めるために、「イノベーション」の意味のモデルが必要です。
私が見た中で最高のモデルは、テクノロジー採用ライフサイクルです。概要はこちらでご覧いただけます Wikipedia Article 。
このモデルを使用して、私は自問し始めました...ライフサイクルのどの段階でソフトウェア自体ですか? 「ソフトウェア」は、機械がバベッジまで、あるいはより正確にはレディ・アダ・ラブレースまで遡る機械とは異なるテクノロジーと考えることができます。
しかし、少なくとも1951年頃までは確かに非常に初期の開拓段階にとどまりました。それは、コンピューター製品のモデルを販売し、そのモデルの多くのユニットを構築するという点でプログラムされたコンピューターが「商業化」された年です。 Univacが国勢調査局に販売した機械について考えています。
1951年から1985年頃まで、ソフトウェアの革新は数多くありました。彼らは主に、コンピューティングの範囲をこれまで以上に幅広い分野に広げることに関係していました。並行して、大量マーケティングと大量生産により、AppleとIBM-PCがプログラマブルデバイスを一般的なアプライアンスにするまで、エントリーコストを引き下げました。
1980年から1985年のどこかで、ソフトウェアがイノベーターのドメインから「アーリーマジョリティ」ドメインに移行したと思います。申し訳ありませんが、MS-DOS、Mac、Windows、C++、およびJavaにイノベーターというよりも大多数が参加しているすべての人になります。それは、あなたがあなた自身の芝生とあなた自身のプロジェクトで重要な革新をしたことを妨げるものではありません。それは、フィールド自体が最も早い段階から移動したことを意味します。
インターネットの前身は1970年代から存在していましたが、Al Goreがインターネットを発明するまでは誰もが接続しませんでした。その段階で、ソフトウェアはアーリーマジョリティからレイトマジョリティに移行しました。ベル曲線の上部が示唆するように、このシフトは微妙でした。すべてのショップが同時にアーリーマジョリティからレイトマジョリティに移行したわけではありません。
ソフトウェアはまだ「ラグガード」段階に移行したとは思いませんが、真のイノベーターは今日、さまざまな分野で進歩を遂げるという問題に取り組んでいると思います。
私が考えることができる2つの面は、バイオエンジニアリングと情報機器です。これらの分野はどちらもソフトウェアを必要としますが、主な目的はソフトウェアの革新ではありません。未知の領域にソフトウェアを適用しています。おそらく、私も気づいていない他の多くの面があります。
これらの答えの問題の一部は、それらが十分に研究されていないか、新しい実装または重要な「改善」を見た技術を試みていることだと思います。ただし、これは重要な発明ではありません。たとえば、関数型プログラミングやオブジェクト指向プログラミングについて話すと失敗するだけです。これらのアイデアのほとんどは、SOのほとんどの参加者が生まれる前から流通しています。
Debianユーザーとして、パッケージ管理に投票します。 OSXとWindows 7を原始的なアマチュアのおもちゃのように見せます。
しかし、パッケージ管理についてはすでに述べたので、私はXに投票します。ネットワーク透過ウィンドウサーバーは、多くのアプリケーションを可能にしました。異なるコンピューターで実行されているプログラムを同じ画面上で並べてシームレスに呼び出すことができるのは素晴らしいことです。
そして、それは80年代後半に少し印象的でした。
一般的な意味でこれに答える資格はありませんが、コンピュータープログラミングに制限されていますか?あまりない。
どうして?私はしばらくこれについて考えてきましたが、私たちには2つの事柄が欠けていると思います:歴史の感覚と私たちが生み出したすべてを客観的に判断する方法です。これはすべての場合に当てはまるわけではありませんが、一般的なことです。
歴史的には、これは一般的なライティングやコンピューターサイエンスプログラムでは十分に強調されていないものだと思います。たとえば、言語機能を取り上げます。正規のソースはHOPLかもしれませんが、特定の時点や、GCやクロージャーなどの機能が最初に登場した言語をマークできることは、プログラマーの間で一般的な知識ではありません。そしてもちろんその後、時間の経過に関する知識があります。Simula以来OOPはどのように変化しましたか?私たちの歴史の感覚を、おそらく政治学や哲学のような他の分野の感覚と比較して対比してください。
判断に関して言えば、これは実際に成功の客観的な尺度を模索する私たちの側の失敗です。 foobarが与えられた場合、foobarが設計パターン、アジャイル手法、TDDなどのいずれかであるプログラミングの動作において、測定可能な方法で何らかの側面が改善されました。これを測定しようとしましたか?何を測定したいのでしょうか?正確性、プログラマの生産性、コードの読みやすさなど?どうやって?ソフトウェアエンジニアリングは、これらの質問を本当に避けているはずですが、私はまだ見ていません。
FPGA sは、1980年以降に発明された大きなブレークスルーです。
StackOverFlow.com
保護されたメモリ。プログラムがミスを犯した場合、メモリを保護する前に、どこでもコードの実行を開始できます。事実上、常にマシン全体がハングします。そうです、リブート時間です!
ハードウェアの低コスト。私の最初のコンピューターは1978年に500ドルでしたが、当時は多額でした。コストを削減すると、すべてのデスクにPCが配置されます。
Paxosプロトコル。インターネット時代にどれほど価値があるかを説明するのは困難です。
Open Croquethttp://www.opencroquet.org -複数のユーザーが対話できる、Squeak、Smalltalkベースの3D環境環境自体を内部からプログラムします。インターネット上で効率的かつスケーラブルに環境を共有するための独自のオブジェクト複製プロトコルを備えています。 **リモートにそれのようなものは他にないので、説明するのは難しいです...
1)私はこれを提案しています。なぜなら、他の人にそれが何であるかを説明しようとすると、他のことと比較することを期待していることがわかります...そして、多くの要素が存在するにもかかわらず、それのようなものはまだ見つかりません他のシステム(Smalltalk、Open GL、etoys、仮想世界、リモートコラボレーション、オブジェクト指向レプリケーションアーキテクチャなど)からは、全体が部品よりもはるかに多くのようです...
2)ここで言及した多くの技術とは異なり、広く利用されている商業的ニッチに落ち着いていません...
両方のポイントは、初期段階の技術の兆候です。
アラン・ケイがそれに取り組み始めたとき、彼はそもそもこの質問のテーマについて考えていたのではないかと思う。
DBScan(from 1996) などの高速クラスタリングアルゴリズム(データポイント数のO(n log n))は、1980年以降のすべての日付のようです。
これらは、データマイニング技術の一般的な進歩の波の一部です。
これと対照的に、ハフのようなスケーリングが不十分な手法は依然として最新技術を表していると思われるライン検出の進歩がない。
パーソナルブロードキャストコミュニケーション
Facebook、Twitter、Buzz、Qaiku ...実装はさまざまで、管理対象者、簡潔さ、ディスカッションなどのさまざまな側面に焦点を当てています。特定のサービスは行き来しますが、コミュニケーションの新しい概念は残ります。ブログはもちろんこれを始めたものですが、新しいサービスはコミュニケーションを社会的に結びつけました。これは本質的な違いです。
ただし、これがcomputingの主題に正確に当てはまるかどうかはわかりませんが、それは重要なことであり、コンピューティングとネットワークによってのみ可能になりました。
トップ10のソフトウェアエンジニアリングのアイデア/ picture
量子コンピューティングの数学は1980年以前から存在していましたが、ハードウェアはまだ存在せず、今後何年も物理的および経済的に実行不可能になる可能性があります。
パソコン。
実を言うと、過去30年間のコンピューティングの最も重要な部分は、誰もがその一部になったことです。家庭用のコンピューターは、1977年程度までしか使用されておらず、80年代になるまで広く採用されました。今、幼稚園、シニアセンター、そしてあなたが持っているすべての隣人が所有しています。
接続マシン(大規模並列処理)を見てみましょう。
とにかく、彼はすべてを発明したので、この質問全体がアランケイにとってエゴブーのように思えます。
Linuxと最悪の哲学の具体化は言えると思いますが、それらは古いものであると言えます。つまり、量子、化学、ペプチド、DNA、膜コンピューティング、非アドホックおよび自動化された(リ)ファクタリング、アスペクト、汎用プログラミング、ある種の型推論、ある種のテスト、
新しいアイデアがない理由:sw特許(これは60年代後半から来ています...)、企業、教育。
1980年以来のコンピューティングにおける最大の発明はムーアの法則であると言わざるを得ません。 1960年代と1970年代には、非常にクールで革新的なものが大量に作成されましたが、非常に高価な1回限りのプロジェクトでした。そして、これらのプロジェクトのほとんどは、時間の霧の中で失われます。
今日、クールで革新的なプロジェクトは数ラウンドの資金を調達し、6か月ほどで全員のデスクトップまたはWebブラウザーで利用可能になります。
それが革新的でない場合、何ですか?
「機械学習」は、急速に発展している重要な新しい開発として既に誰かが答えているかどうかはわかりません。インテリジェントなスパムフィルタリング、株式市場の予測、ロボットなどのインテリジェントなマシンなど...
おそらく、マシンインテリジェンスは次の大きなものかもしれません。
インターネット。
それでおしまい。
コンピューターグラフィックス、特殊効果、3Dアニメーション