Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/114: Рейтинг темы: голосов - 114, средняя оценка - 4.73
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640

Какие РЕАЛЬНО есть причины НЕ использовать ООП?

21.07.2017, 22:08. Показов 38245. Ответов 696
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Появился такой вопрос. Все мы знаем о шумихе вокруг ООП, спорной идее наследования, других невнятных идей которых можно добиться альтернативами и прочее. Но что заставляет людей, так яро спорить о нем? Какие РЕАЛЬНО есть причины НЕ использовать ООП? И почему он стал таким популярным? Я не могу сказать что использовал ООП в своих маленьких проектах, так как не понимал его надобности. Мне он просто не нужен, он нечего не меняет в разработке, а только делает из меня Астронавта Архитектуры. Но я не хочу разжигать спор, т.к я еще слишком зеленый что бы не быть субъективным. Так получилось что моим первым языком был Паскаль, и спустя столько времени я испытываю к нему трепетные чувства. По этому, возможно, я согласен с мнением Никлауса Вирта. В частности, говоря об ООП, Вирт неоднократно отмечал, что оно является достаточно тривиальным расширением того же структурного подхода, сдобренным новой терминологией, и вряд ли может претендовать на звание «революционной методологии программирования». Прошу просто выразить свое мнение, и не спорить.

Добавлено через 5 минут
Помимо прочего, я хочу обсудить почему его так яро защищают. Как верующие свою религию.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.07.2017, 22:08
Ответы с готовыми решениями:

Есть ли какие то библиотеки, позволяющие использовать cout и cin
Здравствуйте! Хотелось бы узнать, есть ли аналоги cout или cin в C? Под аналогом я имею в виду ввод / вывод без всяких "%x". ...

Какие есть способы хранить на сервере пароли которые будет использовать сайт?
Собсно вопрос и стоит в том как возможно хранить пароли для использования на сайте?

Какие причины падения?
Люди добрые, подскажите что могло повлиять на поадение сайта? В общем сайт находился до обновления SERP 07.01 в яше на 26 позиции....

696
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
25.07.2017, 18:28  [ТС]
Студворк — интернет-сервис помощи студентам
На Лисп-машинах впервые были созданы многооконные интерфейсы, и реализовано прочее. А это на функц. Лиспе.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
25.07.2017, 19:31
Цитата Сообщение от Shamil1 Посмотреть сообщение
GUI - один из примеров задачи, которую проще/удобней решать с использованием ООП.
Спорное мнение. Миллионы веб-интерфейсов тому пример. Angular не особо-то ООП-шный, а React+Redux так вообще ближе к FRP.

Цитата Сообщение от Shamil1 Посмотреть сообщение
многие программисты привыкли любую задачу решать ОО средствами. А некоторые из них даже не представляют, как можно писать по-другому.
Вот это причина. Долгое отсутствие альтернатив, понапривыкали. Хотя не особо-то ООП-шный Tcl/Tk имел некоторую популярность, но недостаточную.

Добавлено через 1 минуту
Цитата Сообщение от Luke0208 Посмотреть сообщение
А это на функц. Лиспе.
Не на функциональном лиспе а на мультипарадигмальном лиспе (тогда ещё не стандартизованном до Common Lisp), с сильно развитым ООП.
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
25.07.2017, 21:02  [ТС]
Но ООП там представлено обобщенными функциями. Вы покажите их прогеру на Java, он лопнет. + GUI и без ООП возможно. А удобство или преимущество ООП в разроботке GUI - сомнительно.
0
Модератор
Эксперт функциональных языков программирования
3143 / 2291 / 469
Регистрация: 26.03.2015
Сообщений: 8,921
26.07.2017, 10:32
Цитата Сообщение от korvin_ Посмотреть сообщение
Спорное мнение. Миллионы веб-интерфейсов тому пример.
Согласен, требуется уточнение. Имеется ввиду создание ГУИ "классическим" способом. Типа такого:
Миниатюры
Какие РЕАЛЬНО есть причины НЕ использовать ООП?  
0
Модератор
Эксперт функциональных языков программирования
3143 / 2291 / 469
Регистрация: 26.03.2015
Сообщений: 8,921
26.07.2017, 10:46
Такой способ создания ГУИ считался настолько удобным, что даже Микрософт даже веб приложения пыталось создавать таким способом. Вместо нормальных WebClass в VB 6.0 они сделали мерзкий ASP.NET Forms в C#. Но потом одумались и сначала вернули нормальный способ создания веб приложений (ASP.NET MVC), а потом и десктопные приложения стали предлагать создавать через язык разметки (WPF).
0
Модератор
Эксперт функциональных языков программирования
3143 / 2291 / 469
Регистрация: 26.03.2015
Сообщений: 8,921
26.07.2017, 10:48
з.ы. Веб приложения по сути функциональные - запрос/ответ.
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
26.07.2017, 11:34  [ТС]
Но могут иметь побочные эффекты. Лучше из назвать декларативными что ли.
0
0 / 0 / 0
Регистрация: 20.07.2017
Сообщений: 3
26.07.2017, 12:52
Не используют например при программировании микроконтроллеров.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
26.07.2017, 15:00
Цитата Сообщение от Otvet123 Посмотреть сообщение
при программировании микроконтроллеров
Если для этих микроконтроллеров не разработан компилятор с объектно-ориентированного языка, то конечно, ООП можно сделать только после написания своего собственного компилятора
0
33 / 59 / 6
Регистрация: 22.01.2017
Сообщений: 640
26.07.2017, 19:06  [ТС]
Господи, вы что серьезно хотите писать под микроконтроллеры с использованием ООП?
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
26.07.2017, 19:37
Luke0208, если предполагаемое количество определённых функций превысит несколько тысяч, это будет вполне разумное решение. Другое дело что как правило производители микроконтроллеров поддерживают только ассемблер и компилятор на Си, так что такая альтернатива бывает редко.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.07.2017, 00:22
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Win api это не ООП. Как пример.
все что относится к гую - ещё как ооп.
у них там даже класс окна так и называется "класс окна".

gui - сама по себе предметная область
не возможна без оо-парадигмы.

Добавлено через 1 минуту
Цитата Сообщение от Luke0208 Посмотреть сообщение
На Лисп-машинах впервые были созданы многооконные интерфейсы
откуда звон?

Добавлено через 54 секунды
Цитата Сообщение от Luke0208 Посмотреть сообщение
Господи, вы что серьезно хотите писать под микроконтроллеры с использованием ООП?
и в чем проблема?
0
Эксперт .NET
 Аватар для Usaga
14836 / 9620 / 1369
Регистрация: 21.01.2016
Сообщений: 36,187
27.07.2017, 07:35
Цитата Сообщение от CoderHuligan Посмотреть сообщение
а без наследования, как мы все понимаем, ООП уже не ООП
Серьёзно? А я и не в курсе был...
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
27.07.2017, 10:25
Цитата Сообщение от hoggy Посмотреть сообщение
у них там даже класс окна так и называется "класс окна".
А в Хаскелле класс типа так и называется "класс типа". Теперь можно считать Хаскелл ООП?

Цитата Сообщение от hoggy Посмотреть сообщение
gui - сама по себе предметная область
не возможна без оо-парадигмы.
А мужики-то не знают...

Добавлено через 14 минут
Ещё информация к размышлению
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
27.07.2017, 14:25
Цитата Сообщение от Usaga Посмотреть сообщение
Серьёзно? А я и не в курсе был...
Буча почитать надо. А он писал, что если не используются все три кита ооп, как то: наследование, инкапсуляция, полиморфизм, то такую программу нельзя считать обьектноориентированной.
Цитата Сообщение от hoggy Посмотреть сообщение
все что относится к гую - ещё как ооп.
у них там даже класс окна так и называется "класс окна".
Смешно.
От слова халва во рту слаще не станет. Win API реализованы на чистых сях. Конечно можно назвать классом обычные структуры, но увы, они от этого не станут ближе к тем классам, которые реализованы в ооп языках. То есть там нет инкапсуляции методов, а есть обычные функции. Видимость имён реализована только при помощи тех же имён. И оно, я вам скажу, работает без всякого ооп. Единственно, что там используются указатели на функции сструктурах. Но можно ли это назвать обьектноореинтированностью? Не думаю. Обычные си..
Цитата Сообщение от hoggy Посмотреть сообщение
gui - сама по себе предметная область
не возможна без оо-парадигмы.
Возможна. Просто, кому-то легче решать проблемы в этом стиле.

Добавлено через 2 минуты
Я не против ооп как такового, и искренно пытаюсь познать данный подход, но пока не получается. Не получается именно понять его философию.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2017, 15:15
Цитата Сообщение от CoderHuligan Посмотреть сообщение
там используются указатели на функции структурах
ну вот представьте что вместе со структурой (или внутри структуры) передаются указатели на все функции, которые умеют работать с этой структурой. А внутри структуры есть вложенная структура тоже со своими указателями на функции. А внутри - ещё одна. Как матрёшка.
0
 Аватар для CoderHuligan
1754 / 1020 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
27.07.2017, 15:23
Цитата Сообщение от TRam_ Посмотреть сообщение
А внутри - ещё одна. Как матрёшка.
И получается наследование в чистом виде? Нет, не получается. Про виртуальные функции забыли, коих нет. И другие плюшки.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2017, 15:32
CoderHuligan, получится наследование в чистом виде, если запретить множественное наследование и вкладывать структуры одна в другую так, чтоб их начала совпадали. Тогда указатели на функции вложенной структуры окажутся с тем же смещением, что и у родительского.

Но плюшек конечно "просто так" не появится, ни множественного наследования, ни виртуальных функций, ни конструкторов, ни много чего ещё.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.07.2017, 16:25
Цитата Сообщение от korvin_ Посмотреть сообщение
А в Хаскелле класс типа так и называется "класс типа". Теперь можно считать Хаскелл ООП?
я не в курсе, что там в какацкеле.

Цитата Сообщение от korvin_ Посмотреть сообщение
А мужики-то не знают...
а хз, чего там лепят ваши полторы калеки.
но вот это:

Code
1
2
3
4
5
6
7
-- Records are used to hold values with named fields
book : { title : String, author : String, pages : Int }
book =
    { title = "Steppenwolf"
    , author = "Hesse"
    , pages = 237 
    }
чота как то мне напоминает одну из небезызвестных оо-парадигм.

и да, когда я пишу:
"оо-парадигму", то имею ввиду именно "парадигму",
конкретно "объектно ориентированную",
а не "объектно ориентированное программирование".

так, на всякий случай.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
От слова халва во рту слаще не станет.
верно.
как верно и то,
как вы саму халву не назовите,
во рту от неё не изменится.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Win API реализованы на чистых сях.
ну и что?
вы это так пишите,
будто бы на сях нельзя использовать оо-парадигму.

вот ещё один пример:
GTK+ написана на языке Си, но тем не менее, является объектно-ориентированной[7].
вот ещё один:


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
typedef struct oop oop;
 
struct oop
{
    int v;
    
    void (*print)(oop* obj);
};
 
void example(oop* obj)
{
    printf("%d", obj->v);
}
 
int main(void)
{
    printf("Hello, world!\n");
    
    oop obj;
    
    obj.v = 333;
    
    obj.print = example;
    
    obj.print(&obj);   //<--- о боже! запуск метода объекта!!!
}
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Возможна.
это не возможно.

виджеты, все эти кнопочки/окошечки - концептуально являются объектами.
и к ним не получится относиться,
как к не_объектам.

ну или приведите пример.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
27.07.2017, 16:44
Цитата Сообщение от hoggy Посмотреть сообщение
вот ещё один:
только 19 и 17 строки поменять местами, в Си локальные переменные объявляются только в начале блока.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.07.2017, 16:44

Закрытые порты. Какие возможны причины?
Закрыты все порты. Никак не могу понять причину. Айпишник внешний, кабель напрямую к компьютеру подключил, чтобы роутер не мешался,...

Какие причины блока могут быть?
&lt;b&gt;Адрес bysnaiper.ru не был внесен в базу Яндекса, так как его индексация запрещена.&lt;/b&gt; Посмотрите на сайт, что тут мешает...

Не обновляет таблицу. Какие могут быть причины?
Люди, здравствуйте. Создаю подключение через MSQuery. Потом меню текст запроса, адресную строку (у меня там только ДСН и был...

Какие могут быть причины не срабатывания кнопки?
собственно ситуация проста на столько, что не предсталяю из-за чего глюки. Имеется user control с американскими вопросами и кнопкой...

Ошибки в памяти, какие могут быть причины?
Появлялись экраны смерти, зависания, короче, работа компьютера была не стабильной. В режиме просмотра web или при небольших нагрузках,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №4)
Maks 15.11.2026
Что-то я перемудрил с предыдущими версиями, в этот раз сделал всё проще, обратившись к функции "СтрокаЛатиницей" из типового общего модуля "СтроковыеФункцииКлиент". В данной функции нет апострофов,. . .
BitTorrent (версия 4.3.9) и Меню Настройки
russiannick 15.11.2026
В меню Настройки можно отключить автоматическое обновление программы. Карта этого меню приложена ниже. Нужный пункт выделен красным. Сервис Настройки Поведение
Транслитерация текста с кириллицы на латиницу (вариант №3)
Maks 15.11.2026
Обновленная версия предыдущей обработки. Изменения коснулись букв: Ъ, Ы, Ь, Э, отображения которых зависят от положения реквизита "Транслитерация имён". Изменено отображение буквы Й. Добавлена. . .
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru