ソフトウェア-生存のための闘争

プログラマーとして、私は少し動物行動学が好きです。それはチャールズ・ダヴィンによって発見された自然selectionの原理に基づいています。 そして、私は考えました-ダーウィニズムのプリズムを通して類似点を描き、ITの世界を見るとどうなりますか?



基本的な考え方は次のとおりです。技術の世界では、動植物の世界と同じ法律が適用されます-生き残るための条件は、変化する環境に容易に適応する能力です。







私は簡単に思い出します。自然の観点から(つまり、高い鐘楼から)、存在のための闘争は、個人や集団でさえも、遺伝子によって行われます。 世代から世代へとうまく伝わる遺伝子は繁栄し、残りは行き止まりです。 DNAの各個人には多くの遺伝子があります。 同じ遺伝子は、異なる種の動物または植物に見られます(人間と豚の遺伝子は98%一致すると言います)。



ソフトウェアの世界では、テクノロジーは遺伝子の類似物です。 各プログラムは一連のテクノロジーです。 いくつかの技術は数年にわたって成功裏に使用されていますが、他の技術は出生直後に死にます。



最も適切な個人が成功していることは明らかです。 しかし問題は、私たちを取り巻く世界の状況は常に変化しているため、今日順応している人々は明日不適応になる可能性があるということです。 したがって、 長期間にわたって本当に重要なのはフィットネスではなく、環境条件にすばやく適応する能力です。



成功した個人が今日の環境条件に依存しているほど、明日が変化したときに生き残る可能性は低くなります。



今ソフトウェアについて:時々ここでうまく機能するソフトウェアがあります。 しかし、明日または明後日に機能しますか? 私たちにも同じ状況があります。ソフトウェアがいつまでも幸せに生きるためには、環境に最小限に依存し、ストリームに参加するために絶えず変化するように準備する必要があります。



「最小限に依存する」-したがって、ソフトウェアを作りたいという願望





「絶えず簡単に変更できるように準備する」-ここから来ました:





絶えず変化する環境の要因は次のとおりです。





開発者は誰でも、主な頭痛の種は絶えず変化する顧客の欲求であると言うでしょう。 フォールトトレランスまたはパフォーマンスの要件、プラットフォームまたは設計の要件のいずれも、突然変更された顧客の希望のようにシステムを台無しにしません:)そして、開発者の成功は、主に彼によって作成されたソリューションの柔軟性と使用されるテクノロジーに依存します。



ところで、PCの成功(私の知る限り)は、そのモジュール性によって大部分が保証されていました-個々のブロックを変更することが可能であり、同時にPCはより良く機能しました。 つまり、PCは、当時のメインフレームモンスターが手に入れることができなかった技術の急速な発展により、容易に変更できます。



生物学の詳細:自然選択(捕食者が敗者を食べる場合)に加えて、性選択もあり、これは非常に重要な役割を果たします。 これは、ほとんどすべての子孫が最も成功した男性から来たときであり、残りの男性は本当に望んでいないふりをしなければなりません。 そのような選択をソフトウェアに結び付ける方法-私はまだそれを理解していません:)



要約:

ソフトウェアの世界は、(開発者の手によって)進化するアプリケーションの環境であり、冷酷な自然選択を伴います。 開発者が「遺伝子」に基づいた生命の仮想類似物、つまりテクノロジーを作成したとさえ言えます。 そして、キャリアだけに最大限の独立性と変更の容易さを提供するこれらの技術から生き残るのはそれらだけです。



All Articles