Реter Konow: Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
transcendreamer: Вообще определяя Объект нужно определить и Субъект, иначе это неполное описание мира, кроме того в более современных философских концепциях есть Траект с самостоятельным отнологическим статусом как промежуточное/связывающее звено между Объектом и Субъектом.
Да, онтология занимается определением обьекта как такового. Очевидно, создатели ООП опирались на общепринятую в онтологии философскую модель. Но, она субьективна. И да, от обьекта, программирование идет к субьекту (ИИ).
Реter Konow: Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
И в определенных случаях, иная версия формата описания обьекта может быть эффективней.
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
Очень понравилось следующее определение из Википедии:
Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования[1].
Это чистая философия. Так что, те кто считает, что философии в программировании нет - ошибаются. Объектное программирование построено на философской основе и следовательно, программисты должны уметь мыслить абстрактно и философски. Я например, умею и у меня возникают философские вопросы к концепции. Это логично и закономерно. Никаких "Франкенштейнов". Я руководствуюсь вопросом "а вдруг Земля не плоская?"
Взаимодействие объектов происходит посредствомсообщений. Результатом дальнейшего развития ООП, по-видимому, будетагентно-ориентированое программирование, гдеагенты — независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменениясреды, в которой они находятся.
Языковые конструкции, конструктивно не относящиеся непосредственно к объектам, но сопутствующие им для их безопасной (исключительные ситуации, проверки) и эффективной работы, инкапсулируются от них в аспекты (васпектно-ориентированном программировании).Субъектно-ориентированное программированиерасширяет понятие объекта посредством обеспечения более унифицированного и независимого взаимодействия объектов. Может являться переходной стадией между ООП и агентным программированием в части самостоятельного их взаимодействия.
Первым языком программирования, в котором были предложены основные понятия, впоследствии сложившиеся в парадигму, былаСимула, но термин «объектная ориентированность» не использовался в контексте использования этого языка. В момент его появления в1967 годув нём были предложены революционные идеи: объекты, классы,виртуальные методыи др., однако это всё не было воспринято современниками как нечто грандиозное. Фактически, Симула была «Алголом с классами», упрощающим выражение впроцедурном программированиимногих сложных концепций. Понятие класса в Симуле может быть полностью определено через композицию конструкций Алгола (то есть класс в Симуле — это нечто сложное, описываемое посредством примитивов).
Взгляд на программирование «под новым углом» (отличным от процедурного) предложилиАлан КэйиДэн Ингаллсв языкеSmalltalk. Здесь понятие класса стало основообразующей идеей для всех остальных конструкций языка (то есть класс в Смолтоке является примитивом, посредством которого описаны более сложные конструкции). Именно он стал первым широко распространённымобъектно-ориентированным языком программирования.
В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Наиболее распространённые в промышленности языки (С++, Delphi, C#, Java и др.) воплощают объектную модель Симулы. Примерами языков, опирающихся на модель Смолтока, являются Objective-C, Python, Ruby.
Вышеприведенный отрывок из статьи в Википедии рассказывает как развивались идеи ООП. Сначала я считал, что концепцию просто кто то сел и придумал. Я ошибался. Это был процесс эволюционирования.
Возможно, концепция продолжит развиваться. Почему нет?
Еще отрывок из Вики подтверждающий субъективность концепции:
ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии[14]. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени. Кроме того, примерно с середины 1980-х годов термин «объектно-ориентированный» стал модным, в результате с ним произошло то же самое, что несколько раньше с термином «структурный» (ставшим модным после распространения технологии структурного программирования) — его стали искусственно «прикреплять» к любым новым разработкам, чтобы обеспечить им привлекательность. Бьёрн Страуструп в 1988 году писал, что обоснование «объектной ориентированности» чего-либо, в большинстве случаев, сводится к некорректному силлогизму: «X — это хорошо. Объектная ориентированность — это хорошо. Следовательно, X является объектно-ориентированным».
Таким образом, программа представляет собой набор объектов, имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений. Естественным образом выстраивается иерархия объектов: программа в целом — это объект, для выполнения своих функций она обращается к входящим в неё объектам, которые, в свою очередь, выполняют запрошенное путём обращения к другим объектам программы. Естественно, чтобы избежать бесконечной рекурсии в обращениях, на каком-то этапе объект трансформирует обращённое к нему сообщение в сообщения к стандартным системным объектам, предоставляемым языком и средой программирования.
Устойчивость и управляемость системы обеспечивается за счёт чёткого разделения ответственности объектов (за каждое действие отвечает определённый объект), однозначного определения интерфейсов межобъектного взаимодействия и полной изолированности внутренней структуры объекта от внешней среды (инкапсуляции).
Очень понравилось следующее определение из Википедии:
Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования[1].
Это чистая философия. Так что, те кто считает, что философии в программировании нет - ошибаются. Объектное программирование построено на философской основе и следовательно, программисты должны уметь мыслить абстрактно и философски. Я например, умею и у меня возникают философские вопросы к концепции. Это логично и закономерно. Никаких "Франкенштейнов". Я руководствуюсь вопросом "а вдруг Земля не плоская?"
отнюдь ни какая это не философия, это принципы управления транспортным средством (автомобилем), совокупность винтиков, шпунтиков, шестеренок образуют более сложные структуры и так до главной в этой иерархии - прокладки между рулем и сидением
так, что те кто считает, что вождение автомобиля отличается от программирования, смело идут лесом
дабы продолжить жонглирование понятиями и терминами, могу предложить ознакомиться в той же Вики с понятиями систематизация и/или классификация, ну и дальше по предложенным ссылкам в статьях Вики
Возможно, я ошибаюсь в прогнозах, но если концепция продолжает эволюционировать, появится новая модель Объекта, что потребует намного меньше усилий в сборке, а значит - системы будут расти быстрее. Это приведет к упразднению процесса программирования и исчезнованию множества языков, превратившихся в рудиментарные. Это будущее вполне вероятно, потому что логично.
Вот несколько тезисов распологающих к таким выводам:
1. От Объекта программирование идет к Субъекту (ИИ).
2. Для написания ИИ требуется значительно ускорить процесс программирования и уменьшить трудозатраты.
3. Благодаря новым технологиям и новому представлению Объекта, программирование может выйти за рамки клавиатуры и стать намного более интерактивным.
Если эволюция продолжается, нам неизбежно придется пережить глобальные переделы, в числе которых исчезновение целых профессий и специализаций. И появление новых.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
Вообще определяя Объект нужно определить и Субъект, иначе это неполное описание мира, кроме того в более современных философских концепциях есть Траект с самостоятельным отнологическим статусом как промежуточное/связывающее звено между Объектом и Субъектом.
Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
В разных языках ООП имеет разные особенности.
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
Очень понравилось следующее определение из Википедии:
Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования [1].
Это чистая философия. Так что, те кто считает, что философии в программировании нет - ошибаются. Объектное программирование построено на философской основе и следовательно, программисты должны уметь мыслить абстрактно и философски. Я например, умею и у меня возникают философские вопросы к концепции. Это логично и закономерно. Никаких "Франкенштейнов". Я руководствуюсь вопросом "а вдруг Земля не плоская?"
Вот полная статья:
https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование
Сплошная философия.
Из вики:
История[править | править код]
ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Для дальнейшего развития объектно-ориентированного программирования часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование, КОП).
Взаимодействие объектов происходит посредством сообщений. Результатом дальнейшего развития ООП, по-видимому, будет агентно-ориентированое программирование, где агенты — независимые части кода на уровне выполнения. Взаимодействие агентов происходит посредством изменения среды, в которой они находятся.
Языковые конструкции, конструктивно не относящиеся непосредственно к объектам, но сопутствующие им для их безопасной (исключительные ситуации, проверки) и эффективной работы, инкапсулируются от них в аспекты (в аспектно-ориентированном программировании). Субъектно-ориентированное программирование расширяет понятие объекта посредством обеспечения более унифицированного и независимого взаимодействия объектов. Может являться переходной стадией между ООП и агентным программированием в части самостоятельного их взаимодействия.
Первым языком программирования, в котором были предложены основные понятия, впоследствии сложившиеся в парадигму, была Симула, но термин «объектная ориентированность» не использовался в контексте использования этого языка. В момент его появления в 1967 году в нём были предложены революционные идеи: объекты, классы, виртуальные методы и др., однако это всё не было воспринято современниками как нечто грандиозное. Фактически, Симула была «Алголом с классами», упрощающим выражение в процедурном программировании многих сложных концепций. Понятие класса в Симуле может быть полностью определено через композицию конструкций Алгола (то есть класс в Симуле — это нечто сложное, описываемое посредством примитивов).
Взгляд на программирование «под новым углом» (отличным от процедурного) предложили Алан Кэй и Дэн Ингаллс в языке Smalltalk. Здесь понятие класса стало основообразующей идеей для всех остальных конструкций языка (то есть класс в Смолтоке является примитивом, посредством которого описаны более сложные конструкции). Именно он стал первым широко распространённым объектно-ориентированным языком программирования.
В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Наиболее распространённые в промышленности языки (С++, Delphi, C#, Java и др.) воплощают объектную модель Симулы. Примерами языков, опирающихся на модель Смолтока, являются Objective-C, Python, Ruby.
Вышеприведенный отрывок из статьи в Википедии рассказывает как развивались идеи ООП. Сначала я считал, что концепцию просто кто то сел и придумал. Я ошибался. Это был процесс эволюционирования.
Возможно, концепция продолжит развиваться. Почему нет?
Еще отрывок из Вики подтверждающий субъективность концепции:
ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии [14]. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени. Кроме того, примерно с середины 1980-х годов термин «объектно-ориентированный» стал модным, в результате с ним произошло то же самое, что несколько раньше с термином «структурный» (ставшим модным после распространения технологии структурного программирования) — его стали искусственно «прикреплять» к любым новым разработкам, чтобы обеспечить им привлекательность. Бьёрн Страуструп в 1988 году писал, что обоснование «объектной ориентированности» чего-либо, в большинстве случаев, сводится к некорректному силлогизму: «X — это хорошо. Объектная ориентированность — это хорошо. Следовательно, X является объектно-ориентированным».
Таким образом, программа представляет собой набор объектов, имеющих состояние и поведение. Объекты взаимодействуют посредством сообщений. Естественным образом выстраивается иерархия объектов: программа в целом — это объект, для выполнения своих функций она обращается к входящим в неё объектам, которые, в свою очередь, выполняют запрошенное путём обращения к другим объектам программы. Естественно, чтобы избежать бесконечной рекурсии в обращениях, на каком-то этапе объект трансформирует обращённое к нему сообщение в сообщения к стандартным системным объектам, предоставляемым языком и средой программирования.
Устойчивость и управляемость системы обеспечивается за счёт чёткого разделения ответственности объектов (за каждое действие отвечает определённый объект), однозначного определения интерфейсов межобъектного взаимодействия и полной изолированности внутренней структуры объекта от внешней среды (инкапсуляции).
Определить ООП можно и многими другими способами.
//-----------------------------------------------------------------------
Конец цитаты.
Очень понравилось следующее определение из Википедии:
Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования [1].
Это чистая философия. Так что, те кто считает, что философии в программировании нет - ошибаются. Объектное программирование построено на философской основе и следовательно, программисты должны уметь мыслить абстрактно и философски. Я например, умею и у меня возникают философские вопросы к концепции. Это логично и закономерно. Никаких "Франкенштейнов". Я руководствуюсь вопросом "а вдруг Земля не плоская?"
Вот полная статья:
https://ru.wikipedia.org/wiki/Объектно-ориентированное_программирование
Сплошная философия.
отнюдь ни какая это не философия, это принципы управления транспортным средством (автомобилем), совокупность винтиков, шпунтиков, шестеренок образуют более сложные структуры и так до главной в этой иерархии - прокладки между рулем и сидением
так, что те кто считает, что вождение автомобиля отличается от программирования, смело идут лесом
дабы продолжить жонглирование понятиями и терминами, могу предложить ознакомиться в той же Вики с понятиями систематизация и/или классификация, ну и дальше по предложенным ссылкам в статьях Вики
Возможно, я ошибаюсь в прогнозах, но если концепция продолжает эволюционировать, появится новая модель Объекта, что потребует намного меньше усилий в сборке, а значит - системы будут расти быстрее. Это приведет к упразднению процесса программирования и исчезнованию множества языков, превратившихся в рудиментарные. Это будущее вполне вероятно, потому что логично.
Вот несколько тезисов распологающих к таким выводам:
1. От Объекта программирование идет к Субъекту (ИИ).
2. Для написания ИИ требуется значительно ускорить процесс программирования и уменьшить трудозатраты.
3. Благодаря новым технологиям и новому представлению Объекта, программирование может выйти за рамки клавиатуры и стать намного более интерактивным.
Если эволюция продолжается, нам неизбежно придется пережить глобальные переделы, в числе которых исчезновение целых профессий и специализаций. И появление новых.