Плюсую.
Я скажу, что меня жмет в питоне; одну из вещей, здесь ее еще не приводили в
пример.
В питоне властвует explicit is better than implicit. Это не правда. В перле
есть политика «разумного умолчания». И это круто.
Например, вам нужно удалить элемент по ключу из хэша (дикта). А в нем такого
ключа нет. Здравый смысл говорит, что нет — и окей, не надо, все равно его
удалять собрались, ничего страшного в этом нет.
Перл выполнит delete $hash{foo} и не крякнет. Питон упадет с KeyError.
И то, и то, в общем-то, верно. В рамках парадигмы языка. Не хочешь, чтобы питон
визжал — проверь существование ключа перед удалением.
Вот только в жизни это практически никогда не надо. Если бы меня действительно
волновало, есть такой ключ или нет, я бы в перле это легко проверил. В питоне
придется проверять каждый раз, или городить try-except, или (на самом деле)
использовать неочевидный pop().
Долгая практика позволяет мне говорить, что большие приложения на питоне менее
устойчивы. Они падают чаще, падают в глупых местах по глупым причинам. Там, где
достаточно было бы применить здравое умолчание.
Конечно, проблема перла обратная — он молча переваривает то, что является
ошибкой, и найти такие ошибки трудно.
Но по сумме впечатлений — перл надежнее. Парадокс.
24.10.2016, 20:58, "Толян II" <[email protected]>:
> 24 октября 2016 г., 20:47 пользователь Alexander Q <[email protected]> написал:
>> Типизация помогает рефакторить, генерировать тесты, отлаживать мышление,
>> писать более качественный код, писать более быстрый код. Мешает типизация
>> только писать фигню, которую в продакшн выпускать нельзя.
> Иногда, рабочая "фигня" лучше, чем непонятно как написанный "качественный"
> код.
>
> Чаще "рабочий" и "написанный" лучше "ненаписанный" и "качественный".
>
> А "непонятно как написанный" это вообще зло.
>
>> On Mon, Oct 24, 2016, 20:31 Ivan Petrov <[email protected]> wrote:
>>>> Ну претензия "нет strict режима который отслеживает необъявленные
>>>> переменные"
>>>> звучит довольно странно для языка, в котором нет объявления переменных:-)
>>>
>>> отсутствие объявлений переменных - такая же бага в дизайне языка как и
>>> типизация этих самых переменных.
>>> типизация нормальна (вернее термима) для компилируемых языков, но
>>> типизация в скриптовых языках - зло в чистом виде
>>>
>>> --
>>> Moscow.pm mailing list
>>> [email protected] | http://moscow.pm.org
>>
>> --
>> Moscow.pm mailing list
>> [email protected] | http://moscow.pm.org
> ,--
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
--
Oleg Alistratov
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org