Alan Kay, pencipta OOP, babagan pembangunan, Lisp lan OOP

Alan Kay, pencipta OOP, babagan pembangunan, Lisp lan OOP

Yen sampeyan wis tau krungu saka Alan Kay, sampeyan wis paling krungu kuotasi misuwur kang. Contone, kutipan iki saka 1971:

Cara paling apik kanggo prédhiksi masa depan yaiku nyipta.
Cara paling apik kanggo prédhiksi masa depan yaiku nyipta.

Alan duwe karir sing warni banget ing ilmu komputer. Dheweke nampa Hadiah Kyoto и Penghargaan Turing kanggo karyane ing paradigma pemrograman berorientasi obyek. Dheweke dadi salah sawijining pionir ing bidang komputer pribadi lan antarmuka grafis, dheweke dikembangake Omongan cilik minangka salah sawijining basa pamrograman sing paling berpengaruh ing kabeh wektu.

Kita wis ing Hexlete, utamané ing chatting, Pitakonan "apa OOP" lan "apa Alan Kay tenan tegese" terus wungu. Kiriman iki ngemot kutipan menarik saka Alan babagan kahanan pangembangan modern, OOP lan basa Lisp.

Babagan pangembangan piranti lunak

Alan Kay percaya yen revolusi komputer durung teka (Revolusi Komputer Nyata Durung Kelakon), lan pangembangan piranti lunak berkembang kanthi proporsi terbalik karo Hukum Moore: hardware nambah saben taun, nanging piranti lunak dadi kembung:

masalah banget, gagasan lan alat sing ora bisa diukur, kesed, kurang kawruh, lsp.

Nggambarake kahanan iki kanthi apik guyon singkat:

Apa Andy menehi, Bill njupuk adoh
Andy menehi, Bill njupuk

Andy Grove, CEO Intel, lan Bill Gates, banjur CEO Microsoft.

Ngapikake kahanan pembangunan saiki minangka tujuan proyek riset LANGKAH Menuju Reinvention of Programming (pdf). Tujuane kanggo nggayuh "Hukum Moore" kanthi ekspresif kanthi "ngurangi jumlah kode sing dibutuhake kanthi 100, 1000, 10000 kaping utawa luwih."

Ing laporan mbukak mripat Pemrograman lan Skala (video) Topik iki dibahas kanthi luwih rinci. Miturut Alan, rekayasa piranti lunak wis mandheg lan dadi ilmu sing lali sing ora bisa ngetutake hardware lan ilmu liyane lan disiplin teknik. Proyèk gedhe wis dadi dumps kode lan wis tekan titik ngendi ora ana ora bisa ngerti 100 yuta baris kode MS Vista utawa MS Word. Nanging ing kasunyatane, kudu ana urutan kode sing luwih cilik ing proyek kasebut.

Alan nganggep Internet, protokol TCP/IP, interpreter LISP, Nil (DSL Matematika kanggo Grafik Vektor) lan OMeta (OO PEG) (PDF) conto piranti lunak elegan kanthi kode minimal.

Dheweke nyebut Internet (TCP / IP) minangka salah sawijining proyek piranti lunak skala gedhe sing dirancang kanthi bener, lan tingkat kerumitan kasebut seimbang karo tingkat kerumitan (komplikasi vs kerumitan). Kanthi kurang saka 20 baris kode, proyek kasebut beroperasi minangka sistem dinamis sing urip lan bisa ndhukung milyaran node, lan ora nate offline wiwit diluncurake ing September 1969. Kita mung mandheg nganggep Internet minangka proyek piranti lunak normal sing digawe dening wong:

Internet wis dikembangake kanthi apik nganti akeh wong sing nganggep minangka sumber daya alam, kaya Samudra Pasifik, tinimbang produk tenaga kerja manungsa. Kapan pungkasan kita ndeleng teknologi sing stabil, cetha, lan tanpa kesalahan? Miturut comparison, Web iku omong kosong. Web digawe dening amatir.

Babagan pemrograman berorientasi obyek

Wangsulan: Bab ingkang pisanan sing kasengsem kula kang wiwitan visi OOP. Pengalaman ing mikrobiologi nduweni peran penting:

Aku mikir obyek kaya sel biologi, lan / utawa komputer individu ing jaringan sing mung bisa komunikasi liwat pesen.

lan pengalaman ing matématika:

Pengalamanku ing matematika nggawe aku ngerti yen saben obyek bisa duwe sawetara aljabar, bisa digabung dadi kulawarga, lan iki bisa migunani banget.

Gagasan kanggo fitur meta-fitur pungkasan lan kuat saka LISPa:

Fase kapindho yaiku mangerteni LISPa lan nggunakake pangerten kasebut kanggo nggawe struktur sing luwih gampang, luwih cilik, luwih kuat lan mengko naleni.

Lan rauh Alan wiwit ndhukung idea sing basa dinamis masa depan pangembangan piranti lunak (pdf). Utamane, gampang owah-owahan penting kanggo dheweke:

Late binding ngidini gagasan sing teka ing proses pangembangan bisa digabung menyang proyek kanthi kurang gaweyan (dibandhingake karo sistem kaiket sadurungé kaya C, C ++, Java, lsp.)

Lan potensial kanggo owah-owahan kanthi cepet lan iterasi sing luwih cepet:

Salah sawijining ide utama yaiku sistem kasebut kudu terus digunakake sajrone tes, utamane nalika owah-owahan ditindakake. Malah owah-owahan utama kudu bertahap lan njupuk ora luwih saka pamisah detik.

kang ilang ing basa sing diketik statis:

Yen sampeyan nggunakake basa-basa sing ngiket awal, kaya sing ditindakake dening umume wong, sampeyan bakal ngunci apa sing wis sampeyan tulis. Ora bakal bisa dirumusake maneh kanthi gampang.

Kaget, pikirane babagan OOP diwatesi mung:

OOP kanggo kula pesen, ditahan lokal lan nglindhungi, negara ndhelikake lan pungkasan naleni kabeh. Iki bisa ditindakake ing Smalltalk lan ing LISP.

Lan apa-apa bab warisan. Iki dudu OOP sing kita kenal saiki:

Muga-muga aku wis suwe nggunakake istilah "obyek" kanggo topik iki amarga nyebabake akeh wong fokus ing ide sing luwih sithik.

Gagasan gedhe sing ora ana ing basa OO sing diketik statis modern:

Ide gedhe yaiku "pesen"

Dheweke percaya yen fokus ing pesen, kopling longgar, lan interaksi modul tinimbang ing internal obyek:

Kunci kanggo nggawe sistem skalabel sing apik yaiku nggarap mekanisme komunikasi ing antarane modul, lan ora nggarap sifat lan prilaku internal.

Basa sing diketik statis katon kanggo dheweke risak:

Aku ora nglawan jinis, nanging aku ora ngerti sistem jinis sing ora nyebabake lara. Dadi aku isih seneng ngetik dinamis.

Sawetara basa populer saiki nggunakake gagasan liwat pesen Smalltalk, late binding, lan ora NgertimajuInvocation в Objective-Cmethod_missing в Ruby и oraMetodhe ing Google Dart.

Numpes kabeh lan nggawe sing luwih apik

Alan nduweni teori sing menarik babagan perkembangan ilmu komputer:

Kayane aku mung siji jinis ilmu komputer, lan ilmu iku kaya mbangun jembatan. Ana sing nggawe jembatan, lan ana sing ngrusak lan nggawe teori anyar. Lan kita kudu tetep mbangun jembatan.

Babagan LISP

Alan Kay percaya Lisp

basa pemrograman paling apik kabeh wektu

Lan saben lulusan ilmu komputer kudu sinau:

Umume wong sing nggayuh gelar CS ora ngerti pentinge Lisp. Lisp minangka ide paling penting ing ilmu komputer.

Babagan atmosfer lan konteks sing bener

Dheweke kerep ngelingi atmosfer unik ing Xerox PARK и ARPA, ing ngendi "sesanti luwih penting tinimbang gol" lan "mbiayai wong, dudu proyek."

Sudut pandang worth 80 poin IQ.

Alan Kay ngandika:

Crita ARPA/PARC nduduhake carane kombinasi visi, pendanaan sederhana, konteks lan proses sing bener bisa ngasilake teknologi anyar sing ora mung mengaruhi peradaban nanging uga nggawe nilai gedhe kanggo masyarakat.

Lan iku bener. Deleng dhaptar panemuan PARC sing apik banget, akeh sing main peran penting banget ing pembangunan donya kita. Tuladhane:

  • Printer laser
  • Pemrograman Berorientasi Objek / Smalltalk
  • Komputer pribadi
  • Ethernet / komputasi sing disebarake
  • GUI / mouse komputer / WYSIWYG

Lan ing ARPA digawe ARPANET, sing dadi leluhur Internet.

PS Alan Kay mangsuli pitakon saka komunitas Hacker News.

Source: www.habr.com

Add a comment