Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 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
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 16:05  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от taras atavin Посмотреть сообщение
Не правда. С разной скоростью они лишь пляшут на граблях, а думают одинаково.
Цитата Сообщение от taras atavin Посмотреть сообщение
Если цвета выбраны правильно, а не по-инопланетянски.
Цитата Сообщение от taras atavin Посмотреть сообщение
Нет. Он просто хочет переписать венгерский код по-японски и также по-японски воспитать коллег.
Извините, мой мозг уже устал от ассоциаций. Я не понимаю, что значит по-японски программировать. Может это наоборот круто? Давайте лучше говорить прямо, обосновывая. А то у Вас метлы танцуют, кони едят радуги и какают бабочками. Без обид.

Цитата Сообщение от pycture Посмотреть сообщение
еще раз. это давно уже случилось
Уже не в первый раз в этой теме читаю ответ "Это уже 10 лет как внедрено", "Это проходили еще в школе" и т.д. Между тем, я вижу иное. Можно примеры реализаций?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 16:13
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Извините, мой мозг уже устал от ассоциаций.
Ну автор венгерской нотации на вопрос коллег: "Почему Ваши программы так странно выглядят?" отвечал, что они написаны по-венгерски.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Может это наоборот круто?
Может и круто, но непонимание со стороны русских с евреями гарантировано. Как минимум со стороны части русских и части евреев.

Добавлено через 5 минут
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Можно примеры реализаций?
Какой реализации? Я спокойно пишу без префиксов с 1995-го. Был примерно месяц в году в 2003-м, когда маялся префиксами, потом надоело. Оборин Михаил Всеволодович, Верёвкин Сергей Велерьевич, Тимирбулатова Ольга Михйаловна, Штайгер пишут без префиксов. Да и на этом форуме что то я не видел ни одного поста с префиксами. Это поддерживается во всех средах всех версий начиная с древнейших и до современных.
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 16:23  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Какой реализации?
Это не к Вам вопрос был. Это вопрос к pycture. Я прошу пример реализации, где вместо GetName, SetName, IsEmpty программисты работают только с основой идентификатора Name, Name, Empty...
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 16:26
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Это не к Вам вопрос был. Это вопрос к pycture. Я прошу пример реализации, где вместо GetName, SetName, IsEmpty программисты работают только с основой идентификатора Name, Name, Empty...
Чукча не читатель?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.10.2014, 16:28
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Я прошу пример реализации, где вместо GetName, SetName, IsEmpty программисты работают только с основой идентификатора Name, Name, Empty...
Страницей ранее разговор был о венгерской нотации, теперь о префиксах get/set/is... Что тут вообще происходит...
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 16:28  [ТС]
По поводу префиксов. Чтобы не путали мое отношение к префиксам с отношением к ним Венгра или Джоэла Сполски. Я терпеть не могу те префиксы, которые надо набивать с клавиатуры! Я считаю, что префиксы должен автоматически добавлять компилятор. Зачем каждый раз при использовании имени метода каждый раз компилятору напоминать, что этот метод возвращает булевый тип (IsEmpty). Компилятор разве тупой?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.10.2014, 16:30
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Зачем каждый раз при использовании имени метода каждый раз компилятору напоминать, что этот метод возвращает булевый тип (IsEmpty).
Как бы это для разразботчика.
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 16:33  [ТС]
0x10, про венгерские префиксы - это отдельное направление топика. Следи!

Добавлено через 2 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Как бы это для разразботчика.
Ну смотри: ты набрал "Empty", компилятор добавил "Is" или по моей версии - специальный иероглиф, например... Могут быть конфликты между IsEmpty и чистым Empty, но я думаю эта проблема решаемая.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 16:35
Цитата Сообщение от Mikhaylo Посмотреть сообщение
По поводу префиксов. Чтобы не путали мое отношение к префиксам с отношением к ним Венгра или Джоэла Сполски. Я терпеть не могу те префиксы, которые надо набивать с клавиатуры! Я считаю, что префиксы должен автоматически добавлять компилятор. Зачем каждый раз при использовании имени метода каждый раз компилятору напоминать, что этот метод возвращает булевый тип (IsEmpty). Компилятор разве тупой?
Он отлично понимает имя Empty, set и get юзаются только из-за того, что с Name надо выполнять два действия и чтоб разобрать, какой иероглиф автоматически подставить к Name, надо знать замысел, без этого ни какая острость не поможет. Но и то Name может быть просто public членом-данным, тогда ни какие префиксы тоже не нужны. Или можно принимать присваивание значений типа string, а Name будет только возвращать имя. Это реализовано везде, только используй. Но если программист - венгр, то он и иероглифические префиксы продублирует символьными и все, кто к его коду будет обращаться, будут вынуждены соблюдать ту же нотацию.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.10.2014, 16:38
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Следи!
Учитывая характер потока сознания на последних страницах, это становится не так просто.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Ну смотри: ты набрал "Empty", компилятор добавил "Is" или по моей версии - специальный иероглиф, например...
Вижу следствие, не вижу причину.
1. Речь о конкретном компиляторе или о каком-то абстрактном, который даже не написан? Мыслительный эксперимент для второго случая не особо интересен, ибо неясно какая проблема решается, нет формальных требований или предложений, не говоря уже о прототипе.
2. Зачем компилятор добавил Is?
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 17:23  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
с Name надо выполнять два действия и чтоб разобрать, какой иероглиф автоматически подставить к Name, надо знать замысел, без этого ни какая острость не поможет.
Свойство (property) легко определяет, где set, а где get. С чего вдруг компилятор-то не сможет понять?
Цитата Сообщение от taras atavin Посмотреть сообщение
Но и то Name может быть просто public членом-данным, тогда ни какие префиксы тоже не нужны.
Согласен. Это конфликт, который для своего разрешения требует один-два бита информации. Один удар клавиши или один двиг мышкой...

Цитата Сообщение от 0x10 Посмотреть сообщение
1. Речь о конкретном компиляторе или о каком-то абстрактном, который даже не написан? Мыслительный эксперимент для второго случая не особо интересен, ибо неясно какая проблема решается, нет формальных требований или предложений, не говоря уже о прототипе.
В этом случае шла речь конечно об абстрактном идеальном компиляторе. Реальный Intellisense добавит всякой ненужной хрени типа BoxEmpty, хотя ты это не набирал.

Вопрос:
Цитата Сообщение от 0x10 Посмотреть сообщение
2. Зачем компилятор добавил Is?
Ответ:
Цитата Сообщение от 0x10 Посмотреть сообщение
Как бы это для разразботчика.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 17:30
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Ответ:
Цитата Сообщение от 0x10 Посмотреть сообщение
Как бы это для разразботчика.
А ему это зачем? Если префикс можно подставить автоматически, то он не нужен. А длина строки в три ширины экрана и так - нормальное явление в модели всего лишь одного аспекта одной части одного объекта.

Добавлено через 2 минуты
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Свойство (property) легко определяет, где set, а где get. С чего вдруг компилятор-то не сможет понять?
Ну ка где свойство имеет префиксы set и get?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
28.10.2014, 17:31
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Между тем, я вижу иное. Можно примеры реализаций?....Я прошу пример реализации, где вместо GetName, SetName, IsEmpty программисты работают только с основой идентификатора Name, Name, Empty...
возможно вы просто не туда смотрите. во первых с своей венгерской нотации съехали на свойства. современные языки вполне разрешают писать ... = Name & Name = ... если конкретно в вашем окружении пишут по другому, то это проблема всетаки вашего окружения, застрявшего непонятно в каком веке, а не индустрии. во вторых рекомендации не пользоваться венгеркой можно найти в каждой второй книге для чайников (ну если конечно 10-летний хлам не читать). в третьих (напоминаю прописные истины почему пишут Is...) программы пишут не для компьютеров, а для людей. и чем более понятный текст будет написан, тем легче эта программа будет читаться, пониматься и сопровождаться в предельном случае все вообще уходит в DSL. ваши цвета, крючки и закорючки никак не способствуют улучшению прочтения текста программ.
а теперь... вопрос знатокам... как ваша чудо-утилита будет помагать при программирование на языках у которых тип известен только в рантайме? или мы такие не рассматриваем и все упрется в один никому не нужный самопальный язык?
0
820 / 579 / 75
Регистрация: 20.09.2014
Сообщений: 3,814
28.10.2014, 18:19  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну ка где свойство имеет префиксы set и get?
Кстати, где? Где гет и сет? Надо их добавить! В виде иероглифов...

Цитата Сообщение от pycture Посмотреть сообщение
ваши цвета, крючки и закорючки никак не способствуют улучшению прочтения текста программ.
Это требует серьезной оценки.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 18:25
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Кстати, где? Где гет и сет? Надо их добавить! В виде иероглифов...
Признаёте?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.10.2014, 19:34
Цитата Сообщение от pycture Посмотреть сообщение
а теперь... вопрос знатокам... как ваша чудо-утилита будет помагать при программирование на языках у которых тип известен только в рантайме? или мы такие не рассматриваем и все упрется в один никому не нужный самопальный язык?
У меня этот вопрос вертелся в голове, но просто не знал куда тут можно воткнуть.
А к тезису о приближении кода к абстракции в голове программиста легко можно еще набросить. Научились писать последовательный код? Ок, а теперь давайте его распараллелим. Или посмотрим как инструментарий ляжет на асинхронный код. Далее - к распределенным системам. И на каждом таком переходе идеализированные представления об абстрактном инструменте только больше трещат по швам.
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
28.10.2014, 19:50
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Это требует серьезной оценки.
ну оценивайте. вот мечта вашей жизни. http://blogs.msdn.com/b/abhina... 30799.aspx
набор непонятных закорючек, которые надо обязательно выучить чтоб понимать для чего они. правда читабельность в разы выросла? только не говорите что вы не это имели ввиду
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
28.10.2014, 19:52
Нет. Там некто его мечту переплюнул, а до моей недотянул. В результате не угодил обоим.
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
30.10.2014, 13:06
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Пора прекратить мучения с проблемой, которую я назвал ранее "анализ операторных скобок". Если программист решил создать условный переход, то он добавляет объект IF нажатием на кнопку "Add IF"/"Добавить ЕСЛИ". Правой кнопкой можно добавить к этому условному переходу ELSE. Или при необходимости убрать. Все операторные скобки создаются и уничтожаются автоматически и только автоматически. Объект невозможно разрушить, нельзя стирать букву F в ключевом слове IF, т.к. это единый объект (супер-токен) с условием, действиями, операторными скобками. Либо нельзя что-то удалять, либо удалить весь объект. Мучения прекратятся не только у программиста, но и у компилятора, т.к. не нужен будет никакой парсинг.
Дежа вю, дежа вю.... Встроенного Бейсика на ZX-Spectrum, я так понимаю, ты уже не застал?
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.10.2014, 13:18
Цитата Сообщение от pycture Посмотреть сообщение
а теперь... вопрос знатокам... как ваша чудо-утилита будет помагать при программирование на языках у которых тип известен только в рантайме? или мы такие не рассматриваем и все упрется в один никому не нужный самопальный язык?
А как приплюснутая подсветка синтаксиса работает с прологом?

Добавлено через 1 минуту
Цитата Сообщение от CheshireCat Посмотреть сообщение
Дежа вю, дежа вю.... Встроенного Бейсика на ZX-Spectrum, я так понимаю, ты уже не застал?
Не он, а ты. Там then был отдельным токеном.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.10.2014, 13:18

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
сукцессия 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