Alan Kay, OOP yaradıcısı, inkişaf, Lisp və OOP haqqında

Alan Kay, OOP yaradıcısı, inkişaf, Lisp və OOP haqqında

Alan Kay haqqında heç eşitməmisinizsə, ən azı onun məşhur sitatlarını eşitmisiniz. Məsələn, 1971-ci ildən bu sitat:

Gələcəyi təxmin etməyin ən yaxşı yolu onu icad etməkdir.
Gələcəyi təxmin etməyin ən yaxşı yolu onu icad etməkdir.

Alanın kompüter elmində çox rəngli karyerası var. Aldı Kyoto mükafatı и Turinq Mükafatı obyekt yönümlü proqramlaşdırma paradiqması üzərində işinə görə. Fərdi kompüterlər və qrafik interfeyslər sahəsində qabaqcıllardan biri idi, inkişaf etdirdi Kiçik söhbət bütün zamanların ilk ən təsirli proqramlaşdırma dillərindən biridir.

Bizim Hexlete, xüsusən də söhbət, “OOP nədir” və “Alan Kay həqiqətən nə demək istəyirdi” sualları daim qaldırılır. Bu yazıda Alandan müasir inkişafın vəziyyəti, OOP və Lisp dili haqqında maraqlı sitatlar var.

Proqram təminatının inkişafı haqqında

Alan Kay hesab edir ki, kompüter inqilabı hələ qarşıdadır (Əsl kompüter inqilabı hələ də baş verməyib) və proqram təminatının inkişafı Mur qanunu ilə tərs mütənasib olaraq inkişaf edir: hardware hər il təkmilləşir, lakin proqram təminatı lazımsız yerə şişirilir:

problem zəif, zəif genişlənən ideya və alətlər, tənbəllik, bilik çatışmazlığı və s.

Bu vəziyyəti yaxşı təsvir edir qısa zarafat:

Andy nə verirsə, Bill də götürür
Andy verdi, Bill aldı

Andy Grove, Intel-in baş direktoru və o zaman Microsoft-un baş direktoru Bill Qeyts.

Tədqiqat layihəsinin məqsədi hazırkı inkişafın vəziyyətini yaxşılaşdırmaq idi Proqramlaşdırmanın Yenidən İxtirasına Doğru ADDIMLAR (pdf). Məqsəd “tələb olunan kodun miqdarını 100, 1000, 10000 dəfə və ya daha çox azaltmaqla” ifadəlilikdə “Mur qanunu”na nail olmaqdır.

Göz açan hesabatında Proqramlaşdırma və Ölçmə (video) Bu mövzu daha ətraflı müzakirə olunur. Alanın fikrincə, proqram mühəndisliyi dayanıb və unudulmuş bir elmə çevrilir, aparat və digər elmlər və mühəndislik fənləri ilə ayaqlaşa bilmir. Böyük layihələr kod zibilliyinə çevrildi və bir nöqtəyə gəldi heç kim 100 milyon sətir MS Vista və ya MS Word kodunu başa düşə bilmir. Amma reallıqda bu cür layihələrdə daha az kod sırası olmalıdır.

Alan İnterneti, protokolları nəzərdən keçirir TCP/IP, LISP tərcüməçiləri, Nil (Vektor Qrafikası üçün Math DSL) və OMeta (OO PEG) (PDF) minimal kodlu zərif proqram nümunələri.

O, İnternetə zəng edir (TCP/IP), mürəkkəbliyi mürəkkəblik səviyyəsi ilə balanslaşdırılmış şəkildə düzgün dizayn edilmiş azsaylı irimiqyaslı proqram təminatı layihələrindən biridir. 20 sətirdən az kodlu bu layihə milyardlarla qovşağı dəstəkləyə bilən canlı, dinamik bir sistem kimi fəaliyyət göstərir və 1969-cu ilin sentyabrında ilk dəfə istifadəyə verildiyindən bəri heç vaxt bağlanmayıb. Biz sadəcə İnterneti insanlar tərəfindən yaradılan normal bir proqram təminatı layihəsi hesab etməyi dayandırdıq:

İnternet o qədər inkişaf edib ki, bir çox insanlar ona insan əməyinin məhsulu deyil, Sakit Okean kimi təbii resurs kimi yanaşırlar. Biz axırıncı dəfə belə sabit, aydın, səhvsiz texnologiyanı nə vaxt görmüşük? Müqayisə üçün, İnternet cəfəngiyatdır. Veb həvəskarlar tərəfindən yaradılmışdır.

Obyekt yönümlü proqramlaşdırma haqqında

Məni maraqlandıran ilk şey onun idi orijinal OOP görmə. Onun mikrobiologiya sahəsində təcrübəsi mühüm rol oynamışdır:

Mən obyektləri bioloji hüceyrələr və/yaxud yalnız mesajlar vasitəsilə əlaqə saxlaya bilən şəbəkədəki fərdi kompüterlər kimi düşünürdüm.

və riyaziyyat üzrə təcrübə:

Riyaziyyatdakı təcrübəm mənə hər bir obyektin bir neçə cəbri ola biləcəyini, ailələrə birləşdirilə biləcəyini və bu çox faydalı ola biləcəyini başa düşməyə vadar etdi.

LISPanın gec bağlanması və güclü meta-xüsusiyyətləri üçün fikirlər:

İkinci mərhələ LISP-ı başa düşmək və bu anlayışdan daha asan, daha kiçik, daha güclü strukturlar yaratmaq və sonradan bağlamaq üçün istifadə etməkdir.

Və tezliklə Alan dinamik dillərin olması fikrini dəstəkləməyə başladı proqram təminatının inkişafının gələcəyi (pdf). Xüsusilə, dəyişiklik asanlığı onun üçün vacibdir:

Gecikmiş bağlama, inkişaf prosesində sonradan gələn fikirləri daha az səylə layihəyə daxil etməyə imkan verir (C, C++, Java və s. kimi əvvəlki bağlı sistemlərlə müqayisədə).

Və tez dəyişikliklər və daha sürətli iterasiya potensialı:

Əsas ideyalardan biri odur ki, sistem sınaq zamanı, xüsusən də dəyişikliklər edilərkən işləməyə davam etməlidir. Hətta böyük dəyişikliklər tədricən olmalı və bir saniyədən çox çəkməməlidir.

hansı ki yoxdur statik tipli dillər:

Əksər insanlar kimi, erkən məcburi dillərdən istifadə edirsinizsə, o zaman artıq yazdığınız şeylərə özünüzü kilidləyirsiniz. Artıq onu asanlıqla yenidən formalaşdırmaq mümkün olmayacaq.

Təəccüblüdür ki, onun OOP haqqında fikirləri bununla məhdudlaşdı:

Mənim üçün OOP mesajlar, yerli saxlama və qoruma, dövlətin gizlədilməsi və hər şeyin gec bağlanmasıdır. Bu Smalltalk və LISP-də edilə bilər.

Və miras haqqında heç nə. Bu OOP deyil bu gün bildiyimiz:

Kaş ki, bu mövzu üçün çoxdan “obyekt” ifadəsini işlədəydim, çünki bu, bir çox insanın fikirlərin daha kiçik hissəsinə diqqət yetirməsinə səbəb olur.

Müasir statik tipli OO dillərinin olmaması ilə bağlı böyük fikir:

Böyük ideya "mesajlardır"

O, obyektin daxili hissələrinə deyil, mesajlara, boş birləşmələrə və modul qarşılıqlı təsirlərə diqqət yetirməyə inanır:

Yaxşı miqyaslana bilən sistemlər yaratmağın açarı modullar arasında əlaqə mexanizmlərinin işlənib hazırlanması və onların daxili xassələrinin və davranışlarının işlənməməsidir.

Statik şəkildə yazılmış dillər ona görünür qüsurlu:

Mən tiplərin əleyhinə deyiləm, amma ağrıya səbəb olmayan hər hansı bir tip sistemi bilmirəm. Buna görə də dinamik yazmağı xoşlayıram.

Bu gün bəzi məşhur dillər Smalltalk-ın mesajlarını ötürən fikirlərdən, gec bağlamadan və istifadə edir başa düşmürirəli çağırış в Məqsəd-Cüsul_itkin в yaqut и noSuchMethod Google-da Mizraq.

Hər şeyi məhv edin və daha yaxşısını yaradın

Alanın kompüter elminin inkişafı ilə bağlı maraqlı bir nəzəriyyəsi var:

Mənə elə gəlir ki, kompüter elminin yalnız bir növü var və elm körpü qurmaq kimidir. Kimsə körpülər qurur, kimsə onları dağıdıb yeni nəzəriyyələr yaradır. Və biz körpülər tikməyə davam etməliyik.

LISP haqqında

Alan Kay Lispa inanır

bütün zamanların ən yaxşı proqramlaşdırma dili

Və hər bir kompüter elmləri məzunu bunu öyrənməlidir:

CS-də dərəcə alan insanların çoxu Lisp-in əhəmiyyətini başa düşmür. Lisp kompüter elmində ən vacib ideyadır.

Düzgün atmosfer və kontekst haqqında

O, tez-tez unikal atmosferi xatırlayır Xerox PARK и Harp, burada “görmə məqsədlərdən daha vacibdir” və “layihələri deyil, insanları maliyyələşdirmək”.

Baxış nöqtəsi 80 IQ balına bərabərdir.

Alan Kay deyir:

ARPA/PARC hekayəsi, görmə, təvazökar maliyyələşdirmə, düzgün kontekst və prosesin birləşməsinin sehrli şəkildə nəinki sivilizasiyaya təsir edən, həm də cəmiyyət üçün böyük dəyər yaradan yeni texnologiyalar yarada biləcəyini nümayiş etdirir.

Və bu doğrudur. PARC-nin təsirli ixtiralar siyahısına nəzər salın, bunların bir çoxu dünyamızın inkişafında çox mühüm rol oynamışdır. Misal üçün:

  • Lazer printerlər
  • Obyekt yönümlü proqramlaşdırma / Smalltalk
  • Fərdi kompüterlər
  • Ethernet / paylanmış hesablama
  • GUI / kompüter siçanı / WYSIWYG

Və Harp yaratdıq ARPANET, İnternetin banisi oldu.

PS Alan Kay Hacker News icmasının suallarını cavablandırır.

Mənbə: www.habr.com

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster