<div dir="ltr">Согласен,<div>только не совсем уверен, что  </div><div>"проблема перла обратная — он молча переваривает то, что является ошибкой".</div><div><br></div><div>Разве strict, -w,warnings не достаточно контролируют ситуацию? <br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">25 октября 2016 г., 0:50 пользователь Oleg Alistratov <span dir="ltr"><<a href="mailto:ali@ali.org.ua" target="_blank">ali@ali.org.ua</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Плюсую.<br>
<br>
Я скажу, что меня жмет в питоне; одну из вещей, здесь ее еще не приводили в пример.<br>
<br>
В питоне властвует explicit is better than implicit. Это не правда. В перле есть политика «разумного умолчания». И это круто.<br>
<br>
Например, вам нужно удалить элемент по ключу из хэша (дикта). А в нем такого ключа нет. Здравый смысл говорит, что нет — и окей, не надо, все равно его удалять собрались, ничего страшного в этом нет.<br>
<br>
Перл выполнит delete $hash{foo} и не крякнет. Питон упадет с KeyError.<br>
<br>
И то, и то, в общем-то, верно. В рамках парадигмы языка. Не хочешь, чтобы питон визжал — проверь существование ключа перед удалением.<br>
<br>
Вот только в жизни это практически никогда не надо. Если бы меня действительно волновало, есть такой ключ или нет, я бы в перле это легко проверил. В питоне придется проверять каждый раз, или городить try-except, или (на самом деле) использовать неочевидный pop().<br>
<br>
Долгая практика позволяет мне говорить, что большие приложения на питоне менее устойчивы. Они падают чаще, падают в глупых местах по глупым причинам. Там, где достаточно было бы применить здравое умолчание.<br>
<br>
Конечно, проблема перла обратная — он молча переваривает то, что является ошибкой, и найти такие ошибки трудно.<br>
<br>
Но по сумме впечатлений — перл надежнее. Парадокс.<br>
<br>
<br>
24.10.2016, 20:58, "Толян II" <<a href="mailto:agrishaev@gmail.com">agrishaev@gmail.com</a>>:<br>
<div><div class="h5">> 24 октября 2016 г., 20:47 пользователь Alexander Q <<a href="mailto:qalexx@gmail.com">qalexx@gmail.com</a>> написал:<br>
>> Типизация помогает рефакторить, генерировать тесты, отлаживать мышление, писать более качественный код, писать более быстрый код. Мешает типизация только писать фигню, которую в продакшн выпускать нельзя.<br>
> Иногда, рабочая "фигня" лучше, чем непонятно как написанный "качественный" код.<br>
><br>
> Чаще "рабочий" и "написанный" лучше "ненаписанный" и "качественный".<br>
><br>
> А "непонятно как написанный" это вообще зло.<br>
><br>
>> On Mon, Oct 24, 2016, 20:31 Ivan Petrov <<a href="mailto:i.petro.77.00@gmail.com">i.petro.77.00@gmail.com</a>> wrote:<br>
>>>> Ну претензия "нет strict режима который отслеживает необъявленные переменные"<br>
>>>> звучит довольно странно для языка, в котором нет объявления переменных:-)<br>
>>><br>
>>> отсутствие объявлений переменных - такая же бага в дизайне языка как и<br>
>>> типизация этих самых переменных.<br>
>>> типизация нормальна (вернее термима) для компилируемых языков, но<br>
>>> типизация в скриптовых языках - зло в чистом виде<br>
>>><br>
>>> --<br>
>>> Moscow.pm mailing list<br>
>>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
>><br>
>> --<br>
>> Moscow.pm mailing list<br>
>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
</div></div>> ,--<br>
<span class="im HOEnZb">> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br>
<br>
--<br>
</span><span class="HOEnZb"><font color="#888888">Oleg Alistratov<br>
</font></span><div class="HOEnZb"><div class="h5">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br></div>