ООП

Парадигмы программирования: объекты или функции?

Боль­ше 10 лет про­дол­жа­ет­ся мое осо­зна­ное зна­ком­ст­во с Ocaml и око­ло 18 лет зна­ком (на уров­не лю­би­те­ля) с лиспом. Пожа­луй, се­йчас мож­но раз­ре­шить се­бе ска­зать пуб­лич­но: я счи­таю ООП лиш­ним в боль­шинст­ве за­дач. И се­йчас объ­яс­ню по­че­му. Любое про­ек­ти­ро­ва­ние си­сте­мы на­чи­на­ет­ся на де­кла­ра­тив­ном язы­ке ин­тер­фей­сов. В тер­ми­нах это­го язы­ка про­ек­ти­ро­ва­ния мы де­кла­ри­ру­ем (опи­сы­ва­ем) за­да­чу, наш про­ект. И толь­ко по­том, на язы­ке ре­али­за­ции, мы рас­су­жда­ем о тер­ми­нах язы­ка ин­тер­фей­са. В па­ра­диг­ме ООП на этом язы­ке ин­тер­фей­са удоб­но опи­сы­вать уст­ро­йст­во ми­ра, пря­мо как пи­шут в кни­жках: вот это класс всех об­ъек­тов, а эти име­ют ра­диус, и они кру­ги.