Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
Вообще определяя Объект нужно определить и Субъект, иначе это неполное описание мира, кроме того в более современных философских концепциях есть Траект с самостоятельным отнологическим статусом как промежуточное/связывающее звено между Объектом и Субъектом.
Вот тут никак без философской концепции обойтись нельзя. Просто обьединять функции и переменные не следуя продуманному "чертежу" Обьекта? Нам даны определенные инструменты: классы, структуры, модификаторы доступа... но, могут быть и другие инструменты... например состояние, выборка, связка... почему нет? Я к тому, что формат и инструментарий ООП может иметь версии...
В разных языках ООП имеет разные особенности.
Есть такое понятие как "оптимальная достаточность".
Почему у человека две ноги и две руки? Почему у собаки не пять лап? Потому и вопросы к вам возникают - зачем Франкенштейнов выдумываете? Причём на постоянной основе. Зудит? Если бы не выдумывали в попытках оставить свой след - уже давно бы оставили. Т.е., не в том направлении свои усилия прилагаете.
Очень понравилось следующее определение из Википедии:
Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования [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. Благодаря новым технологиям и новому представлению Объекта, программирование может выйти за рамки клавиатуры и стать намного более интерактивным.
Если эволюция продолжается, нам неизбежно придется пережить глобальные переделы, в числе которых исчезновение целых профессий и специализаций. И появление новых.