АРМАДА
Чем ООП лучше функционального программирования?
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Вс Май 12, 2013 6:51 pmДобавить в избранноеОтветить с цитатой
Всем привет!
Кто пишет с использованием парадигмы ООП, скажите, чем ООП лучше функционального программирования?

Я уже третий день мучаю Мука, AS3, там сходу классы, объекты, я уже зае*ался код строчить, чтобы написать что-нибудь простенькое.
Чтобы вывести на экран Pet's name: Sharik, нужно создать пакет, два класса, два конструктора, экземпляр и локальную переменную. И писать что-нибудь вроде: var current_class = new com.domain.packet.subclass(); очень напрягает, даже с быстрой вставкой из выпадающего списка.

В PHP я проходил классы, но старался их не использовать, мне всегда хватало обычных функций. Сперва код, ниже функции. Сначала в // расписывал основную структуру, сразу вызывая функции и создавая "болванки" для них внизу скрипта, а потом заполнял.
А тут, в AS3 без ООП шагу не ступить, куча лишней работы.

Я просто не понимаю, зачем вообще нужно так нагромождать конструкции, ведь все можно сделать на функциях, без всяких "new what.the.fucking.class.object.is.thisss(new chto.eto.za.ogromnyi.objekt.dlya.prostogo.deistviya())" r5

Может я чего-то недопонимаю и ООП в самом деле действительно лучше функционального программирования. Хотелось бы понять, чтобы не заставлять себя писать в ООП скрипя зубами.

Спасибо! Drinks or Beer
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Вс Май 12, 2013 8:18 pmОтветить с цитатой
Выйди на улицу ночью и прокричи "Разработчики AS мудаки!"
После чего вернись домой, сядь за комп и продолжи писать то, что начал. Продолжи писать в ООП стиле, поскольку AS - это ООП ЯП и это факт.

veligursky +
Гуру
Зарегистрирован: 14.07.2008
Сообщений: 1127
Обратиться по нику
# Добавлено:Пн Май 13, 2013 3:01 pmОтветить с цитатой
Codd писал(а):
Выйди на улицу ночью и прокричи "Разработчики AS мудаки!"
После чего вернись домой, сядь за комп и продолжи писать то, что начал. Продолжи писать в ООП стиле, поскольку AS - это ООП ЯП и это факт.


лучше днем и в офисе разработчиков :nah:, не забудь снять на видео = профит на лечение

а по факту - все равно придешь к ООП
Блог для Новичков в SEO и CPA, CPA Admitad

Balanceuuiii
Свой
Зарегистрирован: 04.03.2013
Сообщений: 33
Обратиться по нику
# Добавлено:Сб Май 25, 2013 10:36 amОтветить с цитатой
Для чего то маленького и простенького конечно лучше функциональное подходит! ООП изобрели там, где обычного программирования перестало хватать..
Как я заработал более 100 000 рублей с admitad

banzai
Профессионал
Зарегистрирован: 24.05.2007
Сообщений: 729
Обратиться по нику
# Добавлено:Сб Май 25, 2013 11:28 amОтветить с цитатой
Yabuti, ООП нужно для масштабных разработок и грамотного многократного использования кода, он не лучше, он другой. Те, кто много кодят, однажды объединили структуры данных с функциями про их обработке, вот и получились объекты. А чтобы не лопатить код первоисточника :nah: , додумались наследовать и переназначать отдельные методы. Но смысл тот же - ООП следующая ступень эволюции многократного использования кода, когда просто библиотек функций оказалось недостаточно.
Термоядерный спам или интеллектуальный, выбирай самЗло присуще любому скоплению людей

Editeur
Опытный
Зарегистрирован: 19.06.2010
Сообщений: 382
Обратиться по нику
# Добавлено:Ср Май 29, 2013 3:29 pmОтветить с цитатой
Путаете функциональное, процедурное и объектно-ориентированное.

ООП хуже ФП практически всем, кроме нескольких важных вещей - I/O в объектных/процедурных языках более естественный, т.к. I/O по своей сути,как и сами эти языки, императивен; для человека думать в императивном стиле (делаем A, затем B, затем C) более естественно, чем в функциональном, где порядок выполнения как правило не определен. Формочки в ООП стиле, с мутабельным стейтом, делать проще, чем таскать весь большой стейт с собой в каждом вызове.

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

Главное в функциональном программировании - отсутствие побочных эффектов у функций, отсутствие глобальных мутабельных данных, и как следствие каждый набор входных данных однозначно соответствует каждому набору результатов. Результат - каждая функция (кроме I/O) это алгоритм, сразу же пригодный для повторного использования. И если функция оттестирована на некотором наборе входных данных - она всегда будет работать правильно на этих данных.

В процедурном, за счет глобальных мутабельных данных, такого соответствия входных и выходных параметров нет. В ООП то же самое, что и в процедурном программировании, т.к. поля объекта мутабельны, только в придачу к глобальным переменным добавляются еще и поля объекта. В ООП/процедурном программированиее функции могут, возвращая одинаковые результаты, менять глобальный стейт по-разному. В результате тестируем метод на одних входных данных, потом другой метод меняет поле объекта, и первый метод перестает работать, хотя в нем самом ничего не менялось.
BossTDS - Система распределения траффика | demo BossTDS

Editeur
Опытный
Зарегистрирован: 19.06.2010
Сообщений: 382
Обратиться по нику
# Добавлено:Ср Май 29, 2013 3:46 pmОтветить с цитатой
Забыл добавить, чем же процедурное хуже ООП. Хуже прежде всего тем, что стейт приходится таскать через параметры процедур и функций. Но при этом есть еще некий глобальный стейт, который эти функции свободно могут менять. Такой код тяжело тестировать и тяжело использовать, имеем все недостатки и ООП и ФП.
BossTDS - Система распределения траффика | demo BossTDS
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры