Re: Perl or Python?
Mikhail Gusarov -> debian-russian@lists.debian.org @ Tue, 24 Mar 2009 02:57:36 +0600:
MG>>> Вот "обязательное":
MG>>> char* f = ...;
MG>>> int* p = (int*)f;
MG>>> Хиндли-Милнер такой "типизации" не допустит.
AC>>>> б) полезнее, чем duck typing
MG>>> define полезнее.
AC>> Не-не-не. Один пример со всеми тремя условиями. А это все
AC>> теоретизирования.
MG> Я в эти игры не играю. Пример a) показал строгость строже чем
MG> "обязательное". Всё, эта часть доказана, не пытайся больше про неё
MG> говорить.
Три разных примера, каждый из которых дает "лучше" в данном пункте за
счет "хуже" в двух других - это, знаешь ли, не аргумент.
Не говоря уже о том, что примера ты как раз не привел ни одного.
"Пример" в данном случае - это фрагмент кода, который, грубо, позволяет
сравнить количество телодвижений для достижения того же результата.
MG> Кроме того, я требую определить "полезнее".
Применительно к duck typing - либо _заметно_ уменьшить вероятность
ошибки (и таким образом сократить время разработки), либо без заметных
потерь времени при разработке _заметно_ улучшить производительность
результата.
AC>> И эта... C - это портабельный ассемблер. Если я в сишной
AC>> программе проделал вышепроцитированное приведение, это значит, что
AC>> я хорошо знаю, что на _этой_ архитектуре оно работает, а равно и
AC>> зачем оно мне на _этой_ архитектуре надо. И уж если оно мне
AC>> понадобилось, то лишать меня этой возможности - это не хорошо, это
AC>> плохо.
MG> Это не имеет ни малейшего значения.
Э, нет. Это ненавязчиво зажуханный тобой п. в) - борьба со старательно
разложенными граблями. В C данная конкретная нестрогость нужна по делу,
для экономии тактов, и если у нас компилятор с выводом типов целится в
ту же нишу - он тоже должен такое позволять. А если он в эту нишу не
целится, то сравнивать не с чем - в других нишах и на C так не пишут.
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Functional programming is like describing your problem to a
mathematician. Imperative programming is like giving instructions to
an idiot.
-- arcus, #scheme on Freenode
Reply to: