LINUX.ORG.RU

Чем обусловлена мощность ООП подхода

 , ,


0

1

Я решил посмотреть на это с точки зрения, как бы семантики.

Чем является исполнитель языка? Возьмем для простоты интерпретатор. Он является процессором, который берет на вход строки программы. Также, его можно рассматривать как актор, принимающий на вход сообщения, это, практически, то же самое.

Что представляет из себя программа на *обычном* языке? набор строк-комманд для единственного процессора. Либо, набор сообщений для единственного актора.

Чем, в этом смысле отличается ООП/агентный/акторный подход? Тем, что у нас, в нашей среде программирования, не один, а множество таких процессоров. Каждый актор является, фактически, независимым процессором. Независимым от других, и независимым от «верхнего». И мы, реализуя любой актор/объект, де-факто, пишем свой собственный процессор. Таким образом мы можем произвольным образом расширять систему произвольным количеством процессоров.

Отсюда и принципиальное различие парадигм, в одном случае мы пишем программу, а в другом — реализуем систему. И между этими двумя подходми, на самом деле, пропасть.

Ради справедливости, надо добвить, что наличие множества метациклических интерпретаторов в пределах одной программы, в языках лисп-семейства, создают похожий эффект, так что, такой подход можно тоже считать частным случаем ООП. Остальные же подходы принципиально бедны, они не реализуют систему, там происходит все на уровне инструкция/исполнение



Последнее исправление: fuckYankee (всего исправлений: 1)

слишком много буков и философии..

ООП хорош тем что имеет низкий порог вхождения и высокую скорость разработки при приемлемом качестве. Всё.

тут вам не там - здесь реальный мир.

MKuznetsov ★★★★★
()

Читай Б.Мейра.

anonymous
()

Тем что он позволяет создавать более-менее приемлимые модели проблем из реального мира.

loz ★★★★★
()
Ответ на: комментарий от loz

Все верно. А в реальные системы — это системы акторов. Поэтому реальный мир напрямую отображается в ООП. Другие парадигмы не могут адекватно описывать реальность.

fuckYankee
() автор топика
Ответ на: комментарий от fuckYankee

Например, Хеллоу Ворлд.

Бля, ну Горлов отдыхает

anonymous
()

повторное использование, изменение поведения, просто порядок. но это сферическом вакууме.

exception13 ★★★★★
()

Я решил посмотреть на это с точки зрения, как бы семантики.

Какой именно?

Deleted
()

Чем является исполнитель языка?

Это класс

Возьмем для простоты интерпретатор

А это наследник, реализующий часть методов. Остальное реализовано базовым классом.

anonymous
()

кэп сказал, что полиморфизм, инкапсуляция, наследование

anonymous
()

ООП хорош тем, что позволяет разбивать код на логические составляющие и организовывать их между собой объедения в единые сущности от простого к сложному. К примеру: элементарные частицы -> атом, молекулы -> вещество.

nikolnik ★★★
()

Отсюда и принципиальное различие парадигм, в одном случае мы пишем программу, а в другом — реализуем систему. И между этими двумя подходми, на самом деле, пропасть.

Это не различие парадигм, а различие между скриптом и программой. Как только начинается декомпозиция, так сразу и переходим к системе. Даже чисто процедурный модуль можно рассматривать как «независимый процессор», если он достаточно изолирован. Касаемо линейного набора команд, посмотри на Tcl - классический линейный интерпретатор, тем не менее реализует семантику сообщений в полный рост. И никакой это не частный случай ООП, как и в лиспах. Скорей ООП - частный случай реализации такой семантики, основанный на позднем связывании. Что дает гибкую диспетчеризацию в рантайме, чем оно и ценно.

nkdm
()
Ответ на: комментарий от nkdm

Ну если ты реализовал на тикле ООП — это и есть ООП. Неважно, поддерживает ли язык прадигму нативно или нет. суть в том, что мы рассуждаем в терминах ООП.

fuckYankee
() автор топика

Забаньте уже это чучело по ip. Или дайте мне права забанщика этого чучела лично.

unt1tled ★★★★
()
Последнее исправление: unt1tled (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.