Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем плох ООП в Perl? 
:(
    Опции темы
Logo
Дата 10.10.2009, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Не по собственному опыту, но по наслышке (в т.ч. и темы http://forum.vingrad.ru/forum/topic-133547.html) знаю, что с ООП в Perl плохо.
Хотелось бы понять что именно плохо, и реально можно ли его использовать? Что такое Moose, и исправляет ли он проблемы с ООП в Perl?
Согласно википедии есть модуль Class::Prototyped , добавляющий прототипное ООП в Perl, исправляет ли он проблемы?
PM MAIL   Вверх
DaemonSuw
Дата 10.10.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 11.3.2008

Репутация: 3
Всего: 3



PM MAIL ICQ   Вверх
gcc
Дата 10.10.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



moose - это как дополнение чтобы программировать в стиле C#/java

хотя, очень много всего mooseX добавленно, например  http://search.cpan.org/~flora/MooseX-Metho...d/Signatures.pm

еще коротко http://kostenko.name/2009/08/07/moose/

вот я не давно увидел ++

http://search.cpan.org/~dmow/PlusPlus-1.23/PlusPlus.pm

сразу на всех языках можно писать

Это сообщение отредактировал(а) gcc - 10.10.2009, 23:02
PM WWW ICQ Skype GTalk Jabber   Вверх
sir_nuf_nuf
Дата 11.10.2009, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 14
Всего: 31



Имхо сама технология ООП проста до не возможости:
1) инкапсуляция -  это когда данные объединяются в объекты. Т.е. возможность привязывать методы к структурам - в перле ЕСТЬ
2) наследования - не надо объяснять что такое. В перле ЕСТЬ, хотя и не идеально
3) полиморфизм
  а) простой - возможность давать одинаковые имена методам для работы с разными классами. вызывается нужный метода в зависимости от класса
  б) истинный - возможность писать абстрактные алгоритмы и структуры - например дерево для хранения хранения произвольных объектов или функцию map для дерева - есть.

Так что в перле все есть =)

Соль ООП не в фичах типа "статических методов и protected переменных", а в правильной архитектуре кода. В правильно проектировании. В том, что как можно сильнее понизить зависимость между отдельными модулями. Перл предоставляет все необходимое для этого.





--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Logo
Дата 11.10.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Попробовал Moose, действительно ООП проще для понимания, обычное перловское ООП я пока не осилил. Интересно, как оно все же на практике, применимо, или
Цитата(Shaggie)

Объектная модель в Перле напоминает постоянно отпадающие при ходьбе костыли.
 
?

Цитата

вот я не давно увидел ++

http://search.cpan.org/~dmow/PlusPlus-1.23/PlusPlus.pm

 smile  smile 
PM MAIL   Вверх
KSURi
Дата 12.10.2009, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Я бы не сказал, что плохо. Модель ООП в перле просто очень минималистична. "Вот тебе детали, а инструменты из них сделай сам". Есть попытки предоставить уже готовые инструменты - различные Class::* модули, Moose. Не хватает какого-то функционала? Напиши его сам (или найди модуль).
В такой модели есть как плюсы, так и минусы.

Цитата(sir_nuf_nuf @  11.10.2009,  12:55 Найти цитируемый пост)
Соль ООП не в фичах типа "статических методов и protected переменных", а в правильной архитектуре кода. В правильно проектировании. В том, что как можно сильнее понизить зависимость между отдельными модулями. Перл предоставляет все необходимое для этого.

А "статические методы и protected переменные" (не буквально) и есть одно из средств для обеспечения минимальной связанности)


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Bulat
Дата 12.10.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Хм... всегда придерживался мнения, что нужно соотносить так сказать "цена-качество".. Т.е. если есть необходимость - юзай ООП стиль, нет - не хулигань  smile . Если уж ООП во всей красе, то все же лучше обратится к Java/C# и т.п. И нечего притрагиваться к перлу. Но постольку-поскольку необходимость использовать объекты нет-нет иногда встречается, и покамест все необходимое для реализации есть. По-крайней мере мне всегда хватало...


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1050 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.