Плюсую.

Я скажу, что меня жмет в питоне; одну из вещей, здесь ее еще не приводили в 
пример.

В питоне властвует 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

Ответить