[Moscow.pm] Кто-то говорит, что Perl вымер.. и пару слов про AngelHack

Ruslan Zakirov ruz на bestpractical.com
Вт Май 21 13:52:45 PDT 2013


Привет,

Нету разработчиков языка. Есть волонтеры. Язык перл разрабатывается
волонтерами.

Есть Dave и Nicholas, которые получают более или менее разумные деньги по
грантам, но это maintanance гранты, которые направлены на чистку кода и
рефакторинг с фиксами. Почитайте отчеты этих разработчиков по грантам -
очень познавательное чтиво.

Русурсов существующих волонтеров не достаточно. Например, сигнатуры,
которые так или иначе разрабатываются, но не вошли в 5.18.0. Было решено
реализовать минимальный вариант, но и с ним столько edge case'ов, что
просто не хватает ресурсов все проверить и реализовать. Последний раз,
когда я смотрел на пргрес, то затык был в deparse и тредах.

Еще пример - хотел внедрить оптимизацию следующего кода:

my %args = (
   default => 10,
   @_
);

Сейчас (и долго еще так будет) сохраняется сначала default, а потом все из
@_ в том числе повторно сохраняется default, если есть в @_. Идея
оптимизации была в том что можно пройти аргументы с права на лево и
избежать повторного сохранения. Оказалось, что не все так просто. Все
заработало быстро для нужных мне случаев и был прирост, но оказалось, что
%args может быть с магией и тогда мы обязаны использовать старый алгоритм.
Потом оказалось, что аргументы в по правую сторону от = тоже могут быть с
магией и нужно дернуть magic get и только слева направо - магия в perl с
side effect'ами. Когда все было учтено, то прироста уже не оказалось.
Пока все это дело лопатилось было найдено порядка пяти багов в edge case'ах
и исправлено.

На данный момент на достаточно что-то придумать грандиозное для perl core и
кинуть это в p5p - авось кто-то реализует ведь это так круто. У
существующих волонтеров есть список на года вперед. Чем больше пишешь, тем
больше список. Включат ли вашу реализацию тоже вопрос. Если вы не
поставляете улучшения на регулярной основе, то возникает вопрос о поддержке
вашего решения существующими силами. В таком случае любое решение, которое
парллельно не упрощает код, которое содержит большое количество
потенциальных edge case'ов, которое нужно кому-то поддерживать, становится
менее ценным и эти скидки могут просто обесценить всю мега крутость.

Не все так плохо, например я собираюсь сделать следующий синтакс доступным
в 5.20:

my %sub_hash = %hash{'qwe', 'asd'};

Патч уже есть и тему не забраковали сразу на корню.

Одна из проблем разработки новых фичей - это огромная комплексность любого
мало мальского изменения, а если чуть по сложнее вещь, то комплексность
растет экспоненциально. Например тема о том как должны всети себя сигнатуры
с ограниченым числом принимаемых аргументов, когда функции передано больше
аргументов чем нужно, породила отдельный тред на 20+ писем. Так же и с
другими моментами. Чтобы сейчас понять суть решений в наиболее актуальной
реализации сигнатур нужно перелопатить сотню другую тредов, а эта
реализация только примитивного варианта с потенциалом для дальнейшего
развития. Если вы даже захотите помочь, то у вас возникнет куча вопросов, а
ответы где-то там в списке рассылке.

Одно из возможных решений, которое я вижу - это хорошее документирование
обсуждений в виде описания ситуаций, предложеных решений и причин выбора
финального решения. Наверное это называется software blueprints. На это
тоже нужны волонтеры, какая-то платформа для удобного администрирования и
так далее и тому подобное. Такие документы может вести любой, нужно время и
заинтересованость. Это поможет избежать расплытию тредов, когда поднимаются
повторные вопросы и замусоривают текущие темы. Поможет любому желающему
узнать статус фичи, понять план и скорее всего снизит порог необходимый для
оказания помощи в разработке.

Как-то так оно. Мое личное мнение.


2013/5/21 Анатолий Шарифулин <sharifulin на gmail.com>

> Именно, и от этого грустно.
>
>
> On Tuesday, 21 May 2013, Andrew Shitov wrote:
>
>> По-моему, сегодня главная проблема — нежелание разработчиков языка
>> что-то менять.
>>
>> 2013/5/21 Михаил Монашёв <postmaster на softsearch.ru>:
>> > Здравствуйте, Dmitry.
>> >
>> >>> Кто-то говорит, что Perl вымер, мол не отвечает современным
>> требованиям
>> >>> веб-разработки.
>> >
>> >>> На мой взгляд, есть в этом доля правды.
>> >
>> >> а можно поподробнее об этом?
>> >
>> > Олег Бунин об этом писал в этой рассылке. Он мало пишет. Легко найдёте
>> > его письмо.
>> >
>> > --
>> > С уважением,
>> >  Михаил                          mailto:postmaster на softsearch.ru
>> >
>> > --
>> > Moscow.pm mailing list
>> > moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>>
>> --
>> Andrew Shitov
>> ______________________________________________________________________
>> andy на shitov.ru | http://shitov.ru
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
> --
> С уважением,
>  Анатолий Шарифулин.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
Best regards, Ruslan.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130522/504844c4/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm