Алан Кей, OOP түзүүчүсү, өнүгүү, Lisp жана OOP жөнүндө

Алан Кей, OOP түзүүчүсү, өнүгүү, Lisp жана OOP жөнүндө

Алан Кэй жөнүндө эч качан укпасаңыз, жок дегенде анын белгилүү цитаталарды уккансыз. Мисалы, 1971-жылдагы бул цитата:

Келечекти алдын ала айтуунун эң жакшы жолу - аны ойлоп табуу.
Келечекти алдын ала айтуунун эң жакшы жолу - аны ойлоп табуу.

Алан компьютер илиминде абдан түстүү мансапка ээ. Ал алды Киото сыйлыгы и Тюринг сыйлыгы объектиге багытталган программалоонун парадигмасы боюнча иши үчүн. Ал персоналдык компьютерлер жана графикалык интерфейстер тармагындагы пионерлердин бири болгон, ал иштеп чыккан Smalltalk бардык убактагы эң биринчи эң таасирдүү программалоо тилдеринин бири.

Биздин Hexlete, айрыкча баарлашуу, "OOP деген эмне" жана "Алан Кэй чындыгында эмнени билдирген" деген суроолор тынымсыз көтөрүлөт. Бул пост Аландан заманбап өнүгүүнүн абалы, OOP жана Lisp тили жөнүндө кызыктуу цитаталарды камтыйт.

Программалык камсыздоону иштеп чыгуу жөнүндө

Алан Кей компьютердик революция али алдыда деп эсептейт (Чыныгы компьютердик революция азырынча боло элек) жана программалык камсыздоону иштеп чыгуу Мур мыйзамына тескери пропорцияда өнүгөт: аппараттык камсыздоо жыл сайын жакшырып баратат, бирок программалык камсыздоо керексиз көбөйүп кетет:

көйгөй алсыз, начар масштабдалуучу идеялар жана куралдар, жалкоолук, билимдин жетишсиздиги ж.б.

Бул жагдайды жакшы сүрөттөйт кыска тамаша:

Энди эмне берсе, Билл алып кетет
Энди берди, Билл алды

Интелдин башкы директору Энди Гроув жана Microsoftтун ошол кездеги башкы директору Билл Гейтс.

Учурдагы өнүгүү абалын жакшыртуу илимий долбоордун максаты болгон Программалоону кайра ойлоп табууга карай кадамдар (pdf). Максаты - "талап кылынган коддун көлөмүн 100, 1000, 10000 XNUMX эсеге же андан көпкө кыскартуу" аркылуу экспрессивдүүлүктө "Мур мыйзамына" жетүү.

Анын көз карашын ачкан баяндамасында Программалоо жана масштабдоо (видео) Бул тема кененирээк талкууланат. Аландын айтымында, программалык камсыздоо токтоп калды жана аппараттык жана башка илимдер жана инженердик дисциплиналар менен тең келе албаган унутулган илимге айланууда. Ири долбоорлор коддуу таштандыларга айланып, бир чекитке жетти эч ким MS Vista же MS Word кодунун 100 миллион саптарын түшүнө албайт. Бирок, чындыгында, мындай долбоорлордо азыраак коддун тартиби болушу керек.

Алан Интернетти, TCP/IP протоколдорун, LISP котормочуларын, Nile (Vektor Graphics үчүн Math DSL) жана OMeta (OO PEG) (PDF) минималдуу код менен жарашыктуу программалык камсыздоонун мисалдары.

Ал Интернетти (TCP/IP) туура иштелип чыккан бир нече масштабдуу программалык долбоорлордун бири деп атайт жана анын татаалдык деңгээли татаалдыктын деңгээли менен тең салмакта (татаалдуулукка каршы татаалдык). 20 1969ден аз код саптары менен долбоор миллиарддаган түйүндөрдү колдоого жөндөмдүү жандуу, динамикалык система катары иштейт жана XNUMX-жылы сентябрда алгачкы ишке киргизилгенден бери эч качан оффлайн режимине өткөн эмес. Биз жөн гана Интернетти адамдар тарабынан түзүлгөн кадимки программалык долбоор катары кароону токтоттук:

Интернет ушунчалык жакшы өнүккөндүктөн, көптөгөн адамдар ага адам эмгегинин продуктусу эмес, Тынч океан сыяктуу табигый ресурс катары карашат. Мындай туруктуу, так, катасыз технологияны акыркы жолу качан көрдүк? Салыштыруу үчүн, Интернет нонсенс. Желе ышкыбоздор тарабынан түзүлгөн.

Объектке багытталган программалоо жөнүндө

Мени биринчи кызыктырган нерсе - анын оригиналдуу OOP көрүнүш. Анын микробиологиядагы тажрыйбасы маанилүү ролду ойногон:

Мен объекттерди биологиялык клеткалар жана/же билдирүүлөр аркылуу гана байланыша турган тармактагы жеке компьютерлер сыяктуу ойлочумун.

жана математика боюнча тажрыйбасы:

Математикадагы тажрыйбам мага ар бир объектиде бир нече алгебра болушу мүмкүн экенин, аларды үй-бүлөлөргө бириктирсе болот жана бул абдан пайдалуу болушу мүмкүн экенин түшүндүм.

LISPанын кеч байланышы жана күчтүү мета-функциялары үчүн идеялар:

Экинчи этап - LISPаны түшүнүү жана аны жеңилирээк, кичине, күчтүү структураларды түзүү жана кийинчерээк байланыштыруу үчүн колдонуу.

Көп өтпөй Алан динамикалык тилдер деген идеяны колдой баштады программалык камсыздоону өнүктүрүү келечеги (pdf). Атап айтканда, өзгөртүү жеңил, ал үчүн маанилүү:

Кеч байлашуу, иштеп чыгуу процессинде кийин келген идеяларды долбоорго азыраак күч менен киргизүүгө мүмкүндүк берет (C, C++, Java ж.б.

Жана тез жана тезирээк итерациялардагы өзгөрүүлөрдүн потенциалы:

Негизги идеялардын бири система тестирлөө учурунда, өзгөчө өзгөртүүлөр киргизилип жаткан учурда иштей бериши керек. Ал тургай, негизги өзгөрүүлөр акырындык менен болушу керек жана бир секунддан ашпашы керек.

кайсысы жок статикалык түрдө терилген тилдер:

Эгер сиз көпчүлүк адамдардай эле, алгачкы тилдерди колдонсоңуз, анда сиз буга чейин жазган нерселериңизге камалып каласыз. Эми аны оңой-олтоң кайра түзүү мүмкүн болбой калат.

Таң калыштуусу, анын OOP жөнүндө ойлору ушуну менен чектелди:

Мен үчүн OOP бул билдирүүлөр, жергиликтүү кармоо жана коргоо, мамлекеттик жашыруу жана бардыгын кеч байлоо. Бул Smalltalk жана LISPте жасалышы мүмкүн.

Ал эми мурас жөнүндө эч нерсе. Бул OOP эмес биз бүгүн билебиз:

Мен бул тема үчүн "объект" деген терминди көптөн бери колдонгум келет, анткени бул көптөгөн адамдардын идеялардын кичинесине көңүл бурушуна алып келет.

Заманбап статикалык терилген OO тилдеринде жок деген чоң идея:

Чоң идея - бул "билдирүүлөр"

Ал объекттин ички түзүлүштөрүнө эмес, билдирүүлөргө, бош туташууларга жана модулдардын өз ара аракетине көңүл бурууга ишенет:

Жакшы масштабдалуучу системаларды түзүүнүн ачкычы модулдар ортосундагы байланыш механизмдерин иштеп чыгуу жана алардын ички касиеттерин жана жүрүм-турумун иштеп чыгуу эмес.

Статикалык терилген тилдер ага көрүнөт бузулган:

Мен типтерге каршы эмесмин, бирок оорутпаган кандайдыр бир системаны билбейм. Ошентип, мен дагы эле динамикалык терүүнү жакшы көрөм.

Бүгүнкү күндө кээ бир популярдуу тилдер Smalltalk'тун билдирүүлөрүн идеяларды өткөрүп, кеч байланыштырат жана колдонушат түшүнбөйталдыга чакыруу в Максат-Cметод_сатып алуу в лаал и noSuchMethod Google'да Дарт.

Баарын жок кылып, жакшыраак нерсени жарат

Алан информатиканын өнүгүшү жөнүндө кызыктуу теориясы бар:

Мага информатиканын бир гана түрү бар жана илим көпүрө куруу сыяктуу. Кимдир бирөө көпүрөлөрдү курат, ал эми кимдир бирөө аларды бузуп, жаңы теорияларды жаратат. Ал эми көпүрөлөрдү курууну уланта беришибиз керек.

LISP жөнүндө

Алан Кей Лиспке ишенет

бардык убактагы мыкты программалоо тили

Жана ар бир информатика бүтүрүүчүсү аны үйрөнүшү керек:

CS даражасын көздөгөн адамдардын көбү Лисптин маанилүүлүгүн түшүнүшпөйт. Lisp - информатикадагы эң маанилүү идея.

Туура атмосфера жана контекст жөнүндө

Ал көп учурда өзгөчө атмосфераны эстейт Xerox PARK и АРПА, бул жерде "максаттардан көрө көрүү маанилүү" жана "долбоорлорду эмес, адамдарды каржылоо".

Көз караш 80 IQ упайга барабар.

Алан Кей мындай дейт:

ARPA/PARC окуясы көз караштын, жөнөкөй каржылоонун, туура контексттин жана процесстин айкалышы кантип сыйкырдуу түрдө цивилизацияга таасир этпестен, коом үчүн эбегейсиз баалуулуктарды жаратуучу жаңы технологияларды жаратарын көрсөтөт.

Бул чындык. PARCтин укмуштуудай ойлоп табуу тизмесин карап көрүңүз, алардын көбү биздин дүйнөнүн өнүгүшүндө абдан маанилүү ролду ойногон. Мисалы:

  • Лазердик принтерлер
  • Объектке багытталган программалоо / Smalltalk
  • Персоналдык компьютерлер
  • Ethernet / бөлүштүрүлгөн эсептөө
  • GUI / компьютер чычкан / WYSIWYG

жана АРПА түзүлгөн Arpanet, Интернеттин түпкү атасы болуп калды.

PS Алан Кей Hacker News коомчулугунун суроолоруна жооп берет.

Source: www.habr.com

Комментарий кошуу