- 1
Чем "Go" влажнее "PHP"?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
Чем "Go" влажнее "PHP"?
Увидел, что "Авито" переводит свои вспомогательные сервисы на "Go", и запаниковал.
Вообще чтобы спорить об этом, нужно дать точное определение тому, что сильная тупизация, а что слабая. Если например брать это:
В 1974 году Лисков и Зиллес (англ. Liskov and Zilles) назвали сильно типизированными те языки, в которых «при передаче объекта из вызывающей функции в вызываемую тип этого объекта должен быть совместим с типом, определённым в вызываемой функции».
То я вообще не уверен можно ли считать что у каких-либо динамически типизируемых языков есть сильная тупизация, ведь тогда потребуется проверка типов при каждом вызове, а это накладно, и вряд ли кто-то так делает.
Где это сказано? Есть общепринятое определение того, что есть "сильная" типизация? Я привел цитату, по которой это не так, есть ещё несколько определений.
> Вот метод, который не принимает значение любого типа
Ага, я передам туды объект, у которого определён __sub__ и твоя "сильная" тупизация пропадёт.
А тип с __add__ поддерживает сложение целых чисел? Там, и вообще везде может быть что угодно. Такое во встроенных классах есть, а что уж говорить о пользовательском коде.
Ты можешь с уверенностью утверждать, значения каких типов принимает эта функция, что она делает, и что она не будет выполнять того, что от неё не ожидали: ?
Типобезопасно! А главное ошибки легко искать!
Но ведь для утиной типизации «проверкой типов» можно считать обращения к полям переданного объекта. Грубо говоря, вот в такой функции:
Для объекта obj проверяется соответствие некоему «утиному интерфейсу», в котором определён метод «wake_up». Если obj ему не соответствует — вылетит AttributeError.
Если функция, принимающая объект, требует от него только наличия метода __mod__ — то да, в контексте этой функции типы «str» и «int» совместимы.
Проблема в том, что приведённая тобой цитата была написана за пару десятилетий до, собственно, изобретения термина «утиная типизация», а потому несколько устарела.
В общем, чтобы «Ютуб» ничего не удалял, нужно выкладывать только неинтересную фигню и никому на неё не отправлять ссылок. И друзей попросить не лайкать, потому что лайки тоже могут посчитать подозрительной активностью.
Обезьяны, одним словом.
http://holywars.ru/comments/17595
У ватников шаблон трещит от этой темы.
Кстати, именно поэтому я за «PHP».
По спирали похоже развиваешься ты. Должно быть, твоя маманя забыла удалить ее из пизденки, когда с отцом тебя месили, а отцу было вообще похуй, лишь бы кончить. Тогда не задумываешься о будущей судьбе своей спермы.