The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Язык Perl еще далек от забвения, несмотря на заявления 'анал..."
Отправлено Добрый Дохтур, 10-Ноя-09 19:09 
>На самом деле, в Perl можно легко узнать все, что угодно о
>разобранной программе в памяти. Мне просто интересно, докапается до этого ДобрыйДохтур
>самостоятельно в доках? Авось так всю документацию изучит и станет лучше
>понимать с чем спорит.

Уважаемый Stanislaus!
Чтобы понять, что в perl плохо, достаточно посмотреть что будет изменено/добавлено в perl6.

http://www.perlfoundation.org/perl6/index.cgi?the_long_perl_...

Да, интроспекция в perl есть, но в зачаточном состоянии.
Узнать, что нам передали в кач-ве аргумента в perl можно, но крайне геморройно.
Отсутствие возможности указать типы аргументов(позвать функцию, вычисляющую факториал с аргументом "vasya") и отсутсвие единообразного способа итерации по последовательностям сильно усложняют написание кода и отладку.

класс + ручное дергание getNext() как тут показывали - весьма забавный костыль.
Отсутствие функций с переменным числом аргументов, именнованных аргументов, аргументов по умолчанию, нормального механизма исключений.

-----
Even if the Perl 5 codebase did follow a specification, its design is inelegant in many places. It's also very difficult to expand. Many good ideas that would make code easier to write and maintain are too impractical to support. It's a good prototype, but it's not code that you would want to keep if you had the option to do something different.

From the language level, there are a few inconsistencies, as well. For example, why should sigils change depending on how you access internal data? (The canonical answer is "To specify context of the access," but there are other ways to mark the same.) When is a block a block, and when is it a hash reference? Why does SUPER method redispatch not respect the currently dispatched class of the invocant, but only the compiled class? How can you tell the indirect object notation's method name barewords from bareword class or function names?

It can be difficult to decide whether the problem with a certain feature is in the design or the implementation. Consider the desire to replace a built-in data structure with a user-defined object. Perl 5 requires you to use tie and overload to do so. To make this work, the internals check special flags on every data structure in every opcode to see if the current item has any magical behavior. This is ugly, slow, inflexible, and difficult to understand.
------


 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру