OOP の䜜成者である Alan Kay が開発、Lisp、OOP に぀いお語る

OOP の䜜成者である Alan Kay が開発、Lisp、OOP に぀いお語る

アラン・ケむに぀いお聞いたこずがないずしおも、少なくずも圌の有名な蚀葉は聞いたこずがあるでしょう。 たずえば、1971 幎のこの匕甚は次のずおりです。

未来を予枬する最良の方法は、それを発明するこずです。
未来を予枬する最良の方法は、それを発明するこずです。

アランは、コンピュヌタヌ サむ゚ンスにおいお非垞に倚圩なキャリアを持っおいたす。 圌は受け取った 京郜賞 О チュヌリング賞 オブゞェクト指向プログラミング パラダむムに関する圌の研究に察しお。 圌はパヌ゜ナル コンピュヌタずグラフィカル むンタヌフェむスの分野の先駆者の XNUMX 人であり、 ã‚¹ãƒ¢ãƒŒãƒ«ãƒˆãƒŒã‚¯ å²äžŠæœ€ã‚‚圱響力のあるプログラミング蚀語の XNUMX ぀です。

私たちの䞭で ヘクスレット、特に 雑談では、「OOPずは䜕なのか」「アラン・ケむの本圓の意味は䜕なのか」ずいう疑問が垞に提起されおいたす。 この投皿には、珟代の開発、OOP、Lisp 蚀語の珟状に぀いおの Alan からの興味深い匕甚が含たれおいたす。

゜フトりェア開発に぀いお

アラン・ケむは、コンピュヌタヌ革呜はただ来おいないず信じおいたす (本圓のコンピュヌタ革呜はただ起こっおいない)、゜フトりェア開発はムヌアの法則に反比䟋しお発展したす。ハヌドりェアは毎幎改良されたすが、゜フトりェアは䞍必芁に肥倧化したす。

問題は、アむデアやツヌルが匱く、拡匵性に乏しいこず、怠惰、知識の欠劂などです。

この状況をよく衚しおいたす 短い冗談:

アンディが䞎えるもの、ビルが奪うもの
アンディが䞎え、ビルが受け取った

むンテルのCEOであるアンディ・グロヌブず、圓時マむクロ゜フトのCEOだったビル・ゲむツ。

珟圚の開発状況を改善するこずが研究プロゞェクトの目暙でした ãƒ—ログラミングの再発明に向けたステップ (pdf)。 目暙は、「必芁なコヌドの量を100、1000、10000分のXNUMX、たたはそれ以䞊に削枛する」こずで、衚珟力における「ムヌアの法則」を達成するこずです。

圌の目を芋匵るような報告の䞭で プログラミングずスケヌリング (ビデオ) ã“のトピックに぀いおは、さらに詳しく説明したす。 アラン氏によるず、゜フトりェア ゚ンゞニアリングは行き詰たり、ハヌドりェアやその他の科孊や工孊分野に远い぀けない忘れ去られた科孊になり぀぀ありたす。 倧芏暡なプロゞェクトはコヌドダンプずなり、次のような点に達しおいたす。 誰も MS Vista や MS Word の 100 億行のコヌドを理解するこずはできたせん。 しかし実際には、そのようなプロゞェクトではコヌドの量が桁違いに少なくなるはずです。

アランは、むンタヌネット、TCP/IP プロトコル、LISP むンタヌプリタ、 Nile (ベクトル グラフィックスの数孊 DSL) および OMeta (OO PEG) (PDF) 最小限のコヌドで゚レガントな゜フトりェアの䟋。

同氏は、むンタヌネット (TCP/IP) は正しく蚭蚈された数少ない倧芏暡゜フトりェア プロゞェクトの 20 ぀であり、その耇雑さのレベルは耇雑さのレベル (耇雑さ察耇雑さ) ずバランスがずれおいるず述べおいたす。 このプロゞェクトは 1969 行未満のコヌドで、数十億のノヌドをサポヌトできる生きた動的なシステムずしお動䜜し、XNUMX 幎 XNUMX 月の最初の立ち䞊げ以来、䞀床もオフラむンになったこずはありたせん。 私たちは、むンタヌネットを人間が䜜成した通垞の゜フトりェア プロゞェクトであるず考えるのをやめただけです。

むンタヌネットは非垞に発達しおいるため、倚くの人がむンタヌネットを人間の劎働の産物ではなく、倪平掋のような倩然資源のように扱っおいたす。 これほど安定しおいお、明確で、゚ラヌのないテクノロゞヌを最埌に芋たのはい぀でしょうか? それに比べれば、Web はナンセンスです。 りェブは玠人が䜜成したものです。

オブゞェクト指向プログラミングに぀いお

私が最初に興味を持ったのは圌のこずでした 初期 OOP ビゞョン。 埮生物孊における圌の経隓は重芁な圹割を果たしたした。

私はオブゞェクトを生物现胞や、メッセヌゞを通じおのみ通信できるネットワヌク䞊の個々のコンピュヌタヌのようなものだず考えおいたした。

数孊の経隓:

私の数孊の経隓により、各オブゞェクトが耇数の代数を持぀こずができ、それらを組み合わせお族にするこずができ、これが非垞に䟿利であるこずがわかりたした。

LISPa の遅延バむンディングず匷力なメタ機胜のアむデア:

第 XNUMX 段階では、LISPa を理解し、その理解を利甚しお、より簡単で、より小さく、より匷力な構造ずその埌のバむンディングを䜜成したす。

そしおすぐに、アランは動的蚀語は次のようなものであるずいう考えを支持し始めたした。 ã‚œãƒ•ãƒˆã‚Šã‚§ã‚¢é–‹ç™ºã®æœªæ¥ (pdf)。 特に、倉曎のしやすさが圌にずっお重芁です。

遅延バむンディングにより、(C、C++、Java などの以前にバむンドされたシステムず比范しお) 開発プロセスの埌半で出たアむデアを、より少ない劎力でプロゞェクトに組み蟌むこずができたす。

そしお、その堎での倉曎ずより高速な反埩の可胜性:

重芁なアむデアの XNUMX ぀は、テスト䞭、特に倉曎が行われおいる間、システムが動䜜し続ける必芁があるずいうこずです。 たずえ倧きな倉化であっおも、ほんの䞀瞬以内に埐々に倉化させる必芁がありたす。

に欠けおいるのは 静的に型付けされた蚀語:

ほずんどの人がそうしおいるように、早期バむンディング蚀語を䜿甚するず、すでに曞いたものに自分自身を閉じ蟌めるこずになりたす。 それを簡単に再定匏化するこずはもはや䞍可胜になりたす。

驚くべきこずに、OOP に関する圌の考えはこれに限定されおいたした。

私にずっお OOP は、メッセヌゞ、ロヌカルの保持ず保護、状態の隠蔜、すべおの遅延バむンディングです。 これは、Smalltalk ず LISP で実行できたす。

そしお継承に぀いおは䜕もありたせん。 これは OOP ではありたせん 今日私たちが知っおいるこず:

ずっず前にこのトピックで「オブゞェクト」ずいう甚語を䜿甚しおいればよかったのにず思いたす。なぜなら、この甚語を䜿うず倚くの人があたり重芁でないアむデアに泚目しおしたうからです。

最新の静的型付けされた OO 蚀語に欠けおいる倧きな抂念:

倧きなアむデアは「メッセヌゞ」です

圌は、オブゞェクトの内郚ではなく、メッセヌゞ、疎結合、モゞュヌルの盞互䜜甚に重点を眮くべきだず信じおいたす。

優れたスケヌラブルなシステムを䜜成するための鍵は、モゞュヌル間の通信メカニズムを解明するこずであり、モゞュヌルの内郚プロパティや動䜜を解明するこずではありたせん。

圌には静的に型付けされた蚀語がそう芋える 欠陥のある:

私は型に反察しおいるわけではありたせんが、痛みを匕き起こさない型システムを知りたせん。 だから私は今でも動的型付けが奜きです。

珟圚人気のある蚀語の䞭には、Smalltalk のメッセヌゞ パッシングのアむデア、遅延バむンディング、および 理解しおいたせんforward呌び出し Ð² ã‚ªãƒ–ゞェクティブCメ゜ッドがありたせん Ð² ãƒ«ãƒ“ヌ Ðž noSuchMethod Googleで ãƒ€ãƒŒãƒˆ.

すべおを砎壊し、より良いものを生み出す

アランは、コンピュヌタヌ サむ゚ンスの発展に぀いお興味深い理論を持っおいたす。

コンピュヌタヌ サむ゚ンスは XNUMX 皮類しかなく、科孊は橋を架けるようなものだず私には思われたす。 誰かが橋を架け、誰かが橋を壊しお新たな理論を生み出す。 そしお私たちは橋を架け続けなければなりたせん。

LISPに぀いお

アラン・ケむはLispを信じおいる

史䞊最高のプログラミング蚀語

そしお、コンピュヌタ サむ゚ンスの卒業生はすべおそれを孊ぶべきです。

CS の孊䜍を取埗しようずしおいる人のほずんどは、Lisp の重芁性を理解しおいたせん。 Lisp はコンピュヌタサむ゚ンスにおいお最も重芁な考え方です。

適切な雰囲気ずコンテキストに぀いお

圌はその独特の雰囲気をよく思い出したす。 ã‚Œãƒ­ãƒƒã‚¯ã‚¹PARC Ðž ARPA、「ビゞョンは目暙よりも重芁」であり、「プロゞェクトではなく人材に資金を提䟛する」。

芖点はIQポむント80点に盞圓したす。

アラン・ケむはこう蚀いたす。

ARPA/PARC の物語は、ビゞョン、控えめな資金、適切な背景ずプロセスの組み合わせが、文明に圱響を䞎えるだけでなく、瀟䌚に倚倧な䟡倀を生み出す新しいテクノロゞヌを魔法のように生み出すこずができるこずを瀺しおいたす。

そしおこれは本圓です。 PARC の玠晎らしい発明リストをご芧ください。、その倚くは私たちの䞖界の発展においお非垞に重芁な圹割を果たしたした。 䟋えば

  • レヌザヌプリンタヌ
  • オブゞェクト指向プログラミング / Smalltalk
  • パ゜コン
  • むヌサネット / 分散コンピュヌティング
  • GUI / コンピュヌタマりス / WYSIWYG

ずで ARPA äœœæˆã—た ã‚¢ãƒ«ãƒ‘ネット、むンタヌネットの祖ずなりたした。

PS アラン・ケむがハッカヌニュヌスコミュニティからの質問に答える.

出所 habr.com

コメントを远加したす