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

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

20.09.2014, 06:55. Показов 20020. Ответов 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
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
26.10.2014, 09:54  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от pycture Посмотреть сообщение
вы прежде чем абстрактно рассуждать где и у кого мучания, возмите и спроектируйте в своем абстрактном ide например змейку
Абстрактно рассуждаете ВЫ! Попробуйте все это проделать сами, а потом уже говорите.

Цитата Сообщение от mporro Посмотреть сообщение
Даю бесплатный совет: отправляйтесь на какой-нибудь политический или философский ресурс. Там наверняка ведётся дискуссия на тему "Почему в XXI веке люди ещё читают книги".
Вы только что провели аналогию между программированием и книгами. Для Вашего сведения: сейчас все больше и больше читают именно электронные книги. Поэтому я не могу Вас никак понять, к чему Вы клоните... ;-)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 10:02
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Абстрактно рассуждаете ВЫ!
Ёда, что с Вами?
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
26.10.2014, 10:07
Mikhaylo,
Для Вашего сведения: сейчас все больше и больше читают именно электронные книги.
Для сведения: на перфокартах никто не программирует.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
26.10.2014, 13:15  [ТС]
Цитата Сообщение от mporro Посмотреть сообщение
Для сведения: на перфокартах никто не программирует.
Молодой человек продолжает составлять ассоциации, а они никак не работают. Для сведения: бумажные книги читают! И с перфокартами аналогии не получается. Ваше ассоциативное мышление прямо удивляет! Как Вы вообще пишете программы? ))
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 13:21
Ну папирусы то из употребления вышли, не выдержав конкуренции с переплётами. И в переплётах читают меньше, чем раньше. И именно из-за конкуренции с электронными.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.10.2014, 16:14
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Ну если Вы говорите о других задачах, выполняемых программистом, то следовательно и разговор этот должен быть для другой темы.
Я говорю о том, что основные проблемы разработки выходят за пределы кодирования.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Пора прекратить мучения с проблемой, которую я назвал ранее "анализ операторных скобок".
Проблема надумана.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Мучения прекратятся не только у программиста, но и у компилятора, т.к. не нужен будет никакой парсинг.
В своем коллективе не встречал людей, испытывающих мучения от синтаксиса языка. А само высказывание о "ненужности парсинга" просто абсурдно.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Правой кнопкой можно добавить к этому условному переходу ELSE.
На правах троллинга: не на всех системах вообще есть "правая кнопка".
1
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
26.10.2014, 16:33
Mikhaylo,
Молодой человек продолжает составлять ассоциации, а они никак не работают.
Вы тоже продолжаете рассказывать нам, что люди не должны читать книг. Но это не работает, книги читают.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 17:27
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Пора прекратить мучения с проблемой, которую я назвал ранее "анализ операторных скобок". Если программист решил создать условный переход, то он добавляет объект IF нажатием на кнопку "Add IF"/"Добавить ЕСЛИ". Правой кнопкой можно добавить к этому условному переходу ELSE. Или при необходимости убрать. Все операторные скобки создаются и уничтожаются автоматически и только автоматически. Объект невозможно разрушить, нельзя стирать букву F в ключевом слове IF, т.к. это единый объект (супер-токен) с условием, действиями, операторными скобками. Либо нельзя что-то удалять, либо удалить весь объект. Мучения прекратятся не только у программиста, но и у компилятора, т.к. не нужен будет никакой парсинг.
То есть внутри операторных скобок нельзя написать ни одного оператора? Иначе же задача парсинга такого объекта ни куда не денется. А если надо вложить скобку в скобку?
0
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
26.10.2014, 17:43
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Попробуйте все это проделать сами, а потом уже говорите
что проделать то? змейку написать? она написана - ссылка приведена. теперь ваш через показать превосходство вашей идеи и иде, для кодинга этой _элементарной_ задачи. или все как я и предполагал? физически вы выполнить эту задачу (по изображению своей супер иде в графическом виде) вы не в состоянии и поэтому предлагаете сделать это другим. (какой же я оптимист был, надеясь что вы на половине бросите, вы ж даже не начав отказались). некрасиво
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
26.10.2014, 18:33  [ТС]
Цитата Сообщение от pycture Посмотреть сообщение
физически вы выполнить эту задачу (по изображению своей супер иде в графическом виде) вы не в состоянии и поэтому предлагаете сделать это другим.
Я потихоньку пытаюсь начать. Пока надо сделать так много, что я не знаю, с чего начать... Идеи не вырисовываются сразу в единую картину, потому что надо предусмотреть место каждому из объектов языка - классу, объекту, массиву, простым типам, функциям, переменным и т.д. Ну вообще разработка языка программирования - не банальное дело, которым запросто можно заниматься в свободное от работы время. Поэтому меня интересуют готовые идеи.
На самом деле есть готовая реализация - UML, но она меня не впечатляет. UML хорош своей универсальностью и признанием во всем мире, но не как язык программирования. Чего-то в нем, видимо, не хватает. Какие-то вещи, видимо, он неудобно описывает.

Вообще искомое решение меня интересует как хобби. К сожалению, в моей профессии оно не пригодится.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 18:50
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Я потихоньку пытаюсь начать.
А я уже начал и разметка исходника уже вырисовалась, причём:
1. if then - единый токен.
2. Парсер не только ни куда не делся, но и стал по этой причине сложнее парсера, для которого это два раздельных токена.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
26.10.2014, 19:43  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
А я уже начал и разметка исходника уже вырисовалась, причём:
1. if then - единый токен.
Это простое совершенствование императивного кода. Простейший пример. Про парсеры извольте не согласиться, и к тому же это не суть.
Кстати, я не предлагаю полностью уходить от императивных элементов языка. Наоборот, я считаю, что довольно большой объем кода должен укладываться в эту модель или в этот способ представления кода, ибо последовательная группа действий (императив) - это понятно, просто, нативно. Часто сложно и запутанно становится, когда появляются ссылки, вызовы, переходы. В этой части можно и нужно что-то усовершенствовать, визуализировать...

Посмотрим, что получится, если переложить некоторый реальный код в графическое представление. нет не чисто графическое представление, а конечно же в смесь графики и текста. Нужно взвесить плюсы и минусы, определить необходимый уровень детализации и т.п.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 20:12
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Это простое совершенствование императивного кода.
При чём здесь код, императивность и вообще парадигмы? Это только формат исходника и ничего более. Ну и вытекающая из формата особенность способа редактирования.

Добавлено через 2 минуты
Цитата Сообщение от Mikhaylo Посмотреть сообщение
ибо последовательная группа действий (императив) - это понятно, просто, нативно.
А разработчики компиляторов то и не знали, что перед ними задача вообще не стоит.

Добавлено через 1 минуту
Цитата Сообщение от Mikhaylo Посмотреть сообщение
определить необходимый уровень детализации и т.п.
При чём здесь вообще игровые текстуры?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
26.10.2014, 20:20
Цитата Сообщение от Mikhaylo Посмотреть сообщение
определить необходимый уровень детализации
Цитата Сообщение от taras atavin Посмотреть сообщение
При чём здесь вообще игровые текстуры?
Это пять) Убило)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
26.10.2014, 20:24
Цитата Сообщение от 0x10 Посмотреть сообщение
Это пять) Убило)
Вот именно это и убило.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
27.10.2014, 04:22  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Это пять) Убило)
Цитата Сообщение от taras atavin Посмотреть сообщение
Вот именно это и убило.
Вы не знаете слов "уровень" и "детализация"? DDD Для Вас это только картинки/графика???
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
27.10.2014, 04:34
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Вы не знаете слов "уровень" и "детализация"?
Понимаю.
Цитата Сообщение от Mikhaylo Посмотреть сообщение
DDD Для Вас это только картинки/графика???
1. Речь была о графике.
2. Если Вы не знаете слова "приближение" и считаете его синонимом зума, то это не моя проблема.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
27.10.2014, 05:30  [ТС]
Уровень детализации... В данном случае речь о том, сколько информации нужно выводить на экран. Вот, например, когда мы пишем вызов функции:
Code
1
Image2 := ResizeImage(Image1);
Мы не указываем типы данных Image1, Image2. Язык программирования позволяет, т.к. типы уже указаны в сигнатурах.
Среда разработки, дабы не нарушать "чистоту" языка программирования, не вносит никаких изменений в пресловутый "уровень детализации" кода.
Между тем, интересным был бы вариант, если бы под именами переменных уменьшенным шрифтом серым цветом был бы подписан тип данных. Примерно так:
Code
1
2
Image2 := ResizeImage(Image1);
TImage               TImage
Многие среды разработки решают эту проблему с помощью всплывающих хинтов. Это открытый вопрос, как лучше делать.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
27.10.2014, 06:19
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Уровень детализации... В данном случае речь о том, сколько информации нужно выводить на экран. Вот, например, когда мы пишем вызов функции:
Код Code
1
Image2 := ResizeImage(Image1);
Мы не указываем типы данных Image1, Image2. Язык программирования позволяет, т.к. типы уже указаны в сигнатурах.
При чём здесь детализация? Типы просто указаны выше. И даже когда пишешь
C++
1
s+='s';
, не указывая внутреннего представления строки (хоть на списке символов), это тоже уровень абстракции, а не детализация. Детализация же показывает, на сколько хорошо видно представленную информацию. Если в игре часть текстуры танка загорожена домом - это ведь оклюзия, а не детализация, а вот если танк ближе/дальше отъехал и в связи с этим на него наложена более грубая/подробная текстура - вот это уже детализация.

Добавлено через 41 минуту
Цитата Сообщение от Mikhaylo Посмотреть сообщение
Между тем, интересным был бы вариант, если бы под именами переменных уменьшенным шрифтом серым цветом был бы подписан тип данных. Примерно так:
Code
1
2
Image2 := ResizeImage(Image1);
TImage TImage
Во-первых это не парадигма. Текст то остаётся тем же самым. Просто под идентификаторами висят подсказки, но семантика любой лексемы остаётся прежней. А во-вторых это нафиг ни кому не нужно. Фокус в том, что при каждом обращении к каждой переменной нужен не только её тип, но и в первую очередь её назначение. Ну TImage. И что? Опираясь только на эту информацию ты отлично отресайзишь график по обеим осям к размеру шкалы под ним, а потом будешь удивляться, чего это нифига не видно. А если Image1 - это изображение шкалы, то уже и тип ясен, но человеку, благодаря пониманию самой задачи, программа же для того и пишется, чтоб объяснить машине, как решать задачу и пока она не написана ни каких выводов из назначения переменной компилятор всё равно не сделает. Писать и тип, и идентификатор, и назначение для разработчика избыточно, так как он то человек. А раз избыточно, то и неудобно. А тип и идентификатор писать надо. Значит что постараются выбросить? Правильно, выбросят назначение. А если умеют писать правильно, то пропишут назначение прямо в идентификаторе. При этом все эти серости увеличивают высоту текста, а высоты экрана и так давно и капитально не хватает. Вот потому и хинты при наведении только чтоб напомнить разрядность.
0
821 / 580 / 75
Регистрация: 20.09.2014
Сообщений: 3,825
27.10.2014, 16:02  [ТС]
Цитата Сообщение от taras atavin Посмотреть сообщение
Во-первых это не парадигма.
Позвольте поставить задачу более широко - разработать более удобный интерфейс, а не разработать новую парадигму. Это чтобы не спорить, парадигма это или не парадигма. Вполне возможно, что в целом такая постановка задачи может дать новую парадигму?.....
Цитата Сообщение от taras atavin Посмотреть сообщение
А во-вторых это нафиг ни кому не нужно.
Очень вероятно, но я бы попробовал в действии.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2014, 16:02

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru