Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/79: Рейтинг темы: голосов - 79, средняя оценка - 4.72
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814

О более новых парадигмах программирования, чем ООП

20.09.2014, 06:55. Показов 19677. Ответов 230
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
К сожалению не нашел другого более подходящего раздела для этой новой темы.

Немного о себе: я не считаю себя программистом, так как я не создавал программы с более сложными объектами, чем стандартные визуальные (кнопки, лэйблы, окна и т.д.). Если уделить программированию годы, то наверняка я освою любую методологию программирования. Ведь у меня за плечами: Spectrum48k (Basic, Assembler), немного Delphi7 (Pascal), программирование в промышленных логических языках LD, FBD, SFC. Сейчас пытаюсь освоить С++ (готовность уже на 70%) и среду Qt. Именно в таком порядке я осваивал методологии/технологии программирования.
Из всего ряда особенным образом выделяются языки LD, FBD, SFC. Эти языки привносят в программирование нечто новое, что я постоянно пытаюсь осмыслить. FBD - близок к модели взаимодействия UML. SFC - это аналог модели состояний UML. Помимо этих особенных языков программирования в сфере промышленности используется кибернетическое мышление, системный подход - это тоже отразилось существенно на моем мировоззрении.

При изучении С++ (в версии 99) я пока для себя выяснил следующее: ООП - это парадигма, которая содержит в себе некоторые элементы системного подхода, но пока некоторые ее очень важные фишки не поддерживаются.

Что я хочу получить от общения в этой теме?
1) Я хочу узнать о более новых парадигмах, нежели стандартный ООП. Мне нужны ссылки. Когда-то давно меня обрадовали некоторой парадигмой под названием "Аспектно-ориентированное программирование". Интересная штучка! Она некоторым образом соотносится с моим ходом мысли, но к сожалению нет хорошей литературы, которая бы раскрывала, что собственно дает среда разработки с АОП.
2) Я хочу узнать о более развитых средах разработки нежели QtDesigner и IDE Delphi7. Какая среда в настоящий момент позволяет более эффективно работать с объектами, библиотеками объектов? Где можно более удобно структурировать и переструктурировать приложение?
3) Я хочу рассказать о своих простых и непростых идеях, которые можно было бы применить для повышения эффективности программирования. Но это чуть позже, т.к. может быть я чего-то не знаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.09.2014, 06:55
Ответы с готовыми решениями:

Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП)
1. Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20. Найти произведение ненулевых...

Изучение новых языков программирования
Всем привет! Я знаю C++ на уровне ООП (классы, наследование, шаблоны, исключения, перегрузка операторов, STL). Каждый раз, когда я...

Копирование более новых файлов
Есть папка, в ней у меня куча скриптов, на ноуте и на компе, я то тут что-то поделаю, то там, и мне периодически нужно синхронизировать...

230
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
22.01.2015, 19:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от locm Посмотреть сообщение
Диалектов бейсика очень много и не стоит их ставить в один ряд.
ценное замечание. не будем ставить диалекты бейсика в один ряд с оригиналом. оригинал имеет номера строк и не структурирован. все остальное вторично
0
Эксперт по электронике
7139 / 3319 / 341
Регистрация: 28.10.2011
Сообщений: 13,046
Записей в блоге: 7
22.01.2015, 19:50
Тогда уточните какой диалект бейсика вы называете оригиналом? Самый первый бейсик?

Бейск появился в 1964 году, а C++ в 1983 и их некорректно сравнивать, хотя бы потому что бейсик появился почти сразу после появления ЯВУ и возможно в то время, когда программы были небольшими из-за малого объема памяти компа, такой синтаксис с нумерацией был приемлем.

Давайте сравнивать современные версии ЯП, а не те что давно устарели и для практической разработки уже не используются.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
23.01.2015, 06:05
тему не читал - сразу отвечал?
при чем тут сравнение языков?
один товарищь заявил что все процедурные языки также структурные. ему указали на бейсик. вопросы ?
0
Эксперт по электронике
7139 / 3319 / 341
Регистрация: 28.10.2011
Сообщений: 13,046
Записей в блоге: 7
23.01.2015, 10:56
Цитата Сообщение от pycture Посмотреть сообщение
все процедурные языки также структурные. ему указали на бейсик. вопросы ?
Из вики.
В соответствии с данной методологией любая программа строится без использования оператора goto из трёх базовых управляющих структур: последовательность, ветвление, цикл; кроме того, используются подпрограммы. При этом разработка программы ведётся пошагово, методом «сверху вниз».
Что мешает в бейсике написать структурную программу? Ведь согласно определению в нем есть ветвления, циклы и подпрограммы.
Напомню что в Сях имеется оператор Goto и на них можно написать быдлокодную неструктурную программу. Так что же давайте и C++ назовем неструктурным языком из-за того что в нем можно использовать оператор Goto и получить сложно читаемый код?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
23.01.2015, 12:55
Цитата Сообщение от locm Посмотреть сообщение
Из вики.
https://en.wikipedia.org/wiki/BASIC
Unstructured, later procedural, later object-oriented
https://en.wikipedia.org/wiki/... anguage%29
Imperative (procedural), structured
еще вопросы?
0
Эксперт по электронике
7139 / 3319 / 341
Регистрация: 28.10.2011
Сообщений: 13,046
Записей в блоге: 7
23.01.2015, 13:09
Цитата Сообщение от pycture Посмотреть сообщение
еще вопросы?
На даты создания языков смотрели? Ничего что бейсик старше Си?
Выше уже доказал что на бейсике можно писать структурированный код, а в Си есть все для создания неструктурированного кода.

К тому же, по вашей ссылке есть раздел Structured BASIC.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
23.01.2015, 13:48
Цитата Сообщение от locm Посмотреть сообщение
На даты создания языков смотрели? Ничего что бейсик старше Си?
последний раз повторяю. никто це с басиком не сравнивает. изучают начальные парадигмы заложенные в языки. изначально басик неструктурирован, хотя процедуры в нем присуствуют, следовательно процедурный. каким он стал или что могут его диалекты или что там в Second-generation BASICs ни к теме, ни к оригинальному басику не относится
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
23.01.2015, 18:09
Немного возвращаясь к теме, чел со смешными волосами и автор Clojure рассказывает, почему «программирование с изменяемыми состояниями» (к которому относится и ООП) устарело и не соответствует человеческому способу мышления:

0
24.01.2015, 11:52

Не по теме:

korvin_, опять на английском. :cry: Ну, хоть сабы есть.

0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.01.2015, 07:14
Цитата Сообщение от pycture Посмотреть сообщение
последний раз повторяю. никто це с басиком не сравнивает. изучают начальные парадигмы заложенные в языки. изначально басик неструктурирован, хотя процедуры в нем присуствуют, следовательно процедурный. каким он стал или что могут его диалекты или что там в Second-generation BASICs ни к теме, ни к оригинальному басику не относится
Процедуры там понарошечные. А чего ещё от неоформленных ждать?
0
0 / 0 / 0
Регистрация: 21.10.2014
Сообщений: 4
01.09.2015, 17:57
идея такой парадигмы для ооп
не знаю насколько она была бы применима в реальной жизни
просто люблю подумать :)

назвал её monoref

суть в том, что в любом месте кода любого потока мы можем получить единоличный доступ к любому объекту или N объектов (заблокировать их), причём неважно в какой последовательности они до этого были заблокированы и в каких потоках, и в какой последовательности вы их блочите

решается это путём переписывания под себя обработки блокировок, т.к. свой код нужен внутри цикла ожидания, чего не получить стандартными средствами

так вот суть алгоритма

когда мы получаем monoref = из некоего global_ref ( по monoref можно уже работать с объектом )
и если объект заблочен, то пытаемся заблочить поток владеющий этим объектом,
поидее заблочить другой поток можно, когда он сам ожидает кого-либо, т.е. сам находится внутри цикла ожидания и получает команду заморозиться, при этом он сам пытается заморозить другой поток, т.к. ожидает свой объект

в итоге даже при 10 потока работающих с одними и теми же объектами, "выживет" 1 поток который не заморозится и успешно проработает со всеми объектами.

есессно по destructor локального monoref будет также анфризиться и поток владеющий им
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
01.09.2015, 18:14
Цитата Сообщение от korvin_ Посмотреть сообщение
не соответствует человеческому способу мышления
Ну да, конечно, человеческому мышлению так странно, что, например, сумма денег в кошельке изменяется после покупки. Гораздо проще каждый раз выкинуть старый кошелек и завести новый.

Человеку вообще свойственно непрерывно подгонять реальность под свои схемы мышления.
1
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
01.09.2015, 19:43
Цитата Сообщение от iperov Посмотреть сообщение
назвал её monoref
в DirectX как понимаю lock буфера именно так и работает. причем есть варианты когда лочится не весь буфер а какая то его часть.

Добавлено через 2 минуты
Цитата Сообщение от korvin_ Посмотреть сообщение
Немного возвращаясь к теме, чел со смешными волосами и автор Clojure рассказывает, почему «программирование с изменяемыми состояниями» (к которому относится и ООП) устарело и не соответствует человеческому способу мышления:
Объяснять он может много чего. Но почему-то человеческое мышление как раз в основном и старается выделять именно системы состояний. Взять ту же диалектику.

Добавлено через 3 минуты
Ну и еще вопрос к ФП-никам: почему как только просишь ФП-ников показать ФП аналог какой либо реальной софтины реализованной с помощью ООП(даже если и довольно примитивной), ФП-ники почему то сразу сбегают в другую ветку?

Добавлено через 2 минуты
Цитата Сообщение от iperov Посмотреть сообщение
поидее заблочить другой поток можно то пытаемся заблочить поток владеющий этим объектом
По идее процессор квантует время и перебирает активные потоки в порядке приоритета и отведенных им квантов времени, поэтому заблочить можно любой поток в любой момент времени.

Добавлено через 33 минуты
Цитата Сообщение от korvin_ Посмотреть сообщение
почему «программирование с изменяемыми состояниями» (к которому относится и ООП) устарело
Врет и не краснеет. Кроме размеров RAM существует еще и актуальность данных. И никому не надо например позавчерашнее показание датчика угла поворота коленвала автомобиля. Оно нужно исключительно в текущий момент времени. А насчет RAM - так тоже вранье сплошное. На старых компах ОЗУ была на магнитной ленте, что по большому счету не RAM а SAM которую мотать долго, а до этого вообще была перфолента - т.е. SAM с однократной записью. Оттуда все эти идеи про то что нельзя изменять значения переменных и змеятся. С появлением RAM весь этот ФП-бред действительно устарел. А все эта байда смахивает на заказ производителей CPU и RAM которые уже не знают как мотивировать необходимость увеличения быстродействия и объемов. Некуда девать вычислительную мощность - подскажу куда - трассировка лучей и фотонные карты в реальном времени. Так что того на что убить гигагерцы и гигабайты хватит и без ФП.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
01.09.2015, 20:38
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну и еще вопрос к ФП-никам: почему как только просишь ФП-ников показать ФП аналог какой либо реальной софтины реализованной с помощью ООП(даже если и довольно примитивной), ФП-ники почему то сразу сбегают в другую ветку?
Ну, ООПшники пока не только не предоставили аналог зависимых типов, но и даже не поняли, что это такое.
Или может предоставишь ООПшный аналог Erlang/OTP?

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
И никому не надо например позавчерашнее показание датчика угла поворота коленвала автомобиля. Оно нужно исключительно в текущий момент времени.
Ага, после аварии анализировать историю состояний автомобиля будешь по хрустальному шару. Потом ООПшники начинают наворачивать кучу громоздких паттернов, а ля Command с Undo/Redo. Создали себе проблему и превозмогли.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Оттуда все эти идеи про то что нельзя изменять значения переменных и змеятся.
Очередной поток отсутствия хоть каких бы-то ни было знаний в вопросе.

http://c2.com/cgi/wiki?Advanta... rogramming
http://stackoverflow.com/a/1637137
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
01.09.2015, 22:35
Цитата Сообщение от korvin_ Посмотреть сообщение
Ага, после аварии анализировать историю состояний автомобиля будешь по хрустальному шару
Это так ФП-ники баги вылавливают? Хрустальным шаром? Кстати давайте не будем забывать что расчет управляющего воздействия и логгирование данных это разные задачи, тогда и аварии не предвидятся. Кстати "черные ящики" данные тоже переписывают.

Добавлено через 2 минуты
Цитата Сообщение от korvin_ Посмотреть сообщение
Или может предоставишь ООПшный аналог Erlang/OTP?
Который работает на базе виртуальной машины основанной на системе состояний?

Добавлено через 6 минут
Да кстати, если Erlang настолько хорош для создания софта для систем связи то почему Sony Ericson штампует смартфоны под андроид софт на которые пишется на объектно-ориентированной яве?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
03.09.2015, 14:28
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Да кстати, если Erlang настолько хорош для создания софта для систем связи
то почему Sony Ericson штампует смартфоны под андроид софт на которые пишется на объектно-ориентированной яве?
системы связи это сотовые коммутаторы (а не быдлофоны), и там он как раз используется чтобы обрабатывать миллионы запросов. Sony Ericson делает мобилки им никакой скорострельности, надежности и рилтайма близко не надо, лишь бы дешего и работало.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
03.09.2015, 14:47
Цитата Сообщение от pycture Посмотреть сообщение
системы связи это сотовые коммутаторы (а не быдлофоны), и там он как раз используется чтобы обрабатывать миллионы запросов.
Дешего - это когда не надо перепроектировать протокол обмена при внесении каждой мелочи. Оно же еще и надежно. К приемру DCOM в этой области вооще прекрасная штука. Фактически нет разных процессов на клиенте и сервере. Есть процесс выполняемый как клиентом так и сервером, каждым свою часть. А система запрос/ответ в этом плане далеко не фонтан.
Цитата Сообщение от pycture Посмотреть сообщение
Sony Ericson делает мобилки им никакой скорострельности, надежности и рилтайма близко не надо, лишь бы дешего и работало.
А так же язык Erlang. Кстати оные быдлофоны без скорострельности/надежности/риалтайма трындеть не будут а только квакать. Хотя на самом деле это не телефоны а терминалы, и задача коммутаторов не запросы обрабатывать, а синхронизация данных между терминалами. На одном в микрофон трындят, буфер синхронно появляется на другом. Без терминалов все эти коммутаторы ничего не стоят. А по надежности и риалтайму - так Siemens лет 20 как минимум в каждой линейке мобил держит терминал под АСУ-ТП. Итнересно, а те кто пишут что Erlang сверхпродвинутая технология в плане синхронизации данных на разных девайсах ее с DirectPlay сравнивали?
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,114
Записей в блоге: 2
03.09.2015, 15:17
Ну вот, появился еще эрудит - и троллинг вспыхнул с новой силой

Очевидно что ругая ООП человек хвалит сам себя. Типа "смотрите, все (ну или большинство) парятся с отсталыми технологиями - а вот Я не такой, Я умный, прозорливый и иду верным путем". Все это просвечивает "белыми нитками" в постах умников

Но вот "а что же взамен" - и тут как-то сразу становится очень тихо. Да, на предыдущих 10 листах что-то упоминалось, но разве ж в такой свалке найдешь? В лучшем случае это технология занимающая "свою нишу", а то и вовсе проприетарная. Или языки типа хаскел - да, интересно, оригинально, но что-то все на него не побежали, хотя существует не один год. Ах ну да, у ООП мощное "лобби" и все такое - да вообще "от людей правду скрывают" Но, как говорится, "вода дырочку найдет", если новое так уж хорошо - переходить на него будут, причем массово. А пока все эти разговоры - лишь (неуклюжие) попытки выпендрежа - не болнн того
1
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
03.09.2015, 16:47
Цитата Сообщение от Igor3D Посмотреть сообщение
Очевидно что ругая ООП человек хвалит сам себя. Типа "смотрите, все (ну или большинство) парятся с отсталыми технологиями - а вот Я не такой, Я умный, прозорливый и иду верным путем".
С огромной долей вероятности он вообще никаким путем не идет. А только ведет. Холивары.

Добавлено через 11 минут
Цитата Сообщение от Igor3D Посмотреть сообщение
Ах ну да, у ООП мощное "лобби" и все такое - да вообще "от людей правду скрывают"
Хотя в ООП тоже нужны кое какие изменения на уровне компиляторов. К примеру возможности мутации объектов. Как возможность замены указателя на VMT без пляски с бубном, так и к примеру возможность делать часть VMT локальной, с возможностью перезаписей указателей на отдельные методы. т.е. Дать объектам функции мутирования. Оно во многих местах жизню бы облегчило. А то ручками таких мутантов организовывать - обычно та еще пляска с бубном.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
03.09.2015, 17:52
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
К примеру возможности мутации объектов. Как возможность замены указателя на VMT без пляски с бубном, так и к примеру возможность делать часть VMT локальной, с возможностью перезаписей указателей на отдельные методы. т.е. Дать объектам функции мутирования. Оно во многих местах жизню бы облегчило. А то ручками таких мутантов организовывать - обычно та еще пляска с бубном.
В нормальных ОО-системах (CLOS, SmallTalk и т.п.) это есть из коробки без необходимости хакать компилятор.

Цитата Сообщение от Igor3D Посмотреть сообщение
Очевидно что ругая ООП человек хвалит сам себя. Типа "смотрите, все (ну или большинство) парятся с отсталыми технологиями - а вот Я не такой, Я умный, прозорливый и иду верным путем". Все это просвечивает "белыми нитками" в постах умников
Очевидно, что, ругая процедурное программирование, человек хвалит сам себя...
Ну ты понял, да?

Цитата Сообщение от Igor3D Посмотреть сообщение
Или языки типа хаскел - да, интересно, оригинально, но что-то все на него не побежали, хотя существует не один год. Ах ну да, у ООП мощное "лобби" и все такое - да вообще "от людей правду скрывают" Но, как говорится, "вода дырочку найдет", если новое так уж хорошо - переходить на него будут, причем массово. А пока все эти разговоры - лишь (неуклюжие) попытки выпендрежа - не болнн того
Я тебе открою страшную тайну: ООП "появилось" аж в 67-м году (Simula 67), но "массово побежали на него" лишь в 90-х, ближе к середине и после. Выводы сам сделаешь?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2015, 17:52

Отличие модульного программирования от ООП
Добрый день! Подскажите пожалуйста, чем отличается парадигма модульного программирования от ООП? Определение на Википедии описывает модуль,...

Выбор языка программирования ООП
Программирую на php&mysql. Знаю Си. (Си изучал чтобы написать модулей для php). Хотелось бы изучить ООП вот только в качестве...

Ajax_result замена в более новых версиях
Здравствуйте. У меня используется jquery последней версии, и старый js перевожу на новую версию. В старой версии используется -...

Переструктурировать исходник в структуру программирования ООП
Не так давно изучаю C++ и вот столкнулся с проблемой Написал исходник в C::B который работает со строками и от меня теперь потребовали...

Найти вероятность того, что событие А происходит: а)точно 220; б) менее чем 240 и более чем 100 раз.
В каждом из 500 независимых испытаний событие А происходит с постоянной вероятностью 0,4.Найти вероятность того, что событие А происходит:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
200
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru