История изменений
Исправление crutch_master, (текущая версия) :
и конструкции вида: ... (против питонового m = {}) делают почти нереальным написание кода вручную.
Да, да. А в питоне/жс/пхп ты наделаешь m = {}
везде и сиди разбирайся у кого где какой результат в твоих функциях и кто что передаёт.
Из-за огромного количества синтаксического мусора
(против питонового m = {}) делают почти нереальным написание кода вручную.
Ты проблему ищешь совершенно не там. Типизация всего на свете не мешает пониманию кода, а наоборот. Сразу видно какие где структуры и кто что ждет, чтобы ему передали. Задница там как раз таки и начинается, когда дело до ходит до кастов из Object. Тут проблема в другом: когда-то стройный и отлаженный код приходится рефакторить и это не очень приятно, особенно, когда все структуры перевязаны между собой. Возникает много лишней возни, но это всё оправдано, т.к. на языке с ДТ ты бы это всё отлавливал прямо в рантайме. И плюс ДТ как раз таки в том, что можно наговнякать, именно наговнякать, не заморачиваясь со всякими типами и сознательно опустив всякие проверки. Это очень помогает, когда тебе надо быстро сделать какую-то разовую работу, но чтобы сделать вещь, которая будет надёжно работать и отлавливать все возможные косяки при эксплуатации танцевать с ДТ придётся не чуть не меньше, чем со статикой.
Говнокод — это просто код, который хрен поймёшь!
Ты ничего не понимаешь в говнокоде. 1000 строчная портянка из switch-case, например, предельно понята, но это не делает её хорошим кодом. Цепочка a(b(c(e)))
тоже предельно понятна, но абсолютно не понятно кто что возвращает, пока не прочитаешь ВСЕ исходники этих функций. Ты, очевидно, не работал с не своим кодом на этом твоём пистоне.
Исправление crutch_master, :
и конструкции вида: ... (против питонового m = {}) делают почти нереальным написание кода вручную.
Да, да. А в питоне/жс/пхп ты наделаешь m = {}
везде и сиди разбирайся у кого где какой результат в твоих функциях и кто что передаёт.
Из-за огромного количества синтаксического мусора
(против питонового m = {}) делают почти нереальным написание кода вручную. Ты проблему ищешь совершенно не там. Типизация всего на свете не мешает пониманию кода, а наоборот. Сразу видно какие где структуры и кто что ждет, чтобы ему передали. Задница там как раз таки и начинается, когда дело до ходит до кастов из Object. Тут проблема в другом: когда-то стройный и отлаженный код приходится рефакторить и это не очень приятно, особенно, когда все структуры перевязаны между собой. Возникает много лишней возни, но это всё оправдано, т.к. на языке с ДТ ты бы это всё отлавливал прямо в рантайме. И плюс ДТ как раз таки в том, что можно наговнякать, именно наговнякать, не заморачиваясь со всякими типами и сознательно опустив всякие проверки. Это очень помогает, когда тебе надо быстро сделать какую-то разовую работу, но чтобы сделать вещь, которая будет надёжно работать и отлавливать все возможные косяки при эксплуатации танцевать с ДТ придётся не чуть не меньше, чем со статикой.
Говнокод — это просто код, который хрен поймёшь!
Ты ничего не понимаешь в говнокоде. 1000 строчная портянка из switch-case, например, предельно понята, но это не делает её хорошим кодом. Цепочка a(b(c(e)))
тоже предельно понятна, но абсолютно не понятно кто что возвращает, пока не прочитаешь ВСЕ исходники этих функций. Ты, очевидно, не работал с не своим кодом на этом твоём пистоне.
Исходная версия crutch_master, :
и конструкции вида: ... (против питонового m = {}) делают почти нереальным написание кода вручную.
Да, да. А в питоне/жс/пхп ты наделаешь m = {}
везде и сиди разбирайся у кого где какой результат в твоих функциях и кто что передаёт.
Из-за огромного количества синтаксического мусора
(против питонового m = {}) делают почти нереальным написание кода вручную. Ты проблему ищешь совершенно не там. Типизация всего на свете не мешает пониманию кода, а наоборот. Сразу видно какие где структуры и кто что ждет, чтобы ему передали. Задница там как раз таки и начинается, когда дело до ходит до кастов из Object. Тут проблема в другом: когда-то стройный и отлаженный код приходится рефакторить и это не очень приятно, особенно, когда все структуры перевязаны между собой. Возникает много лишней возни, но это всё оправдано, т.к. на языке с ДТ ты бы это всё отлавливал прямо в рантайме. И плюс ДТ как раз таки в том, что можно наговнякать, именно наговнякать, не заморачиваясь со всякими типами и сознательно опустив всякие проверки. Это очень помогает, когда тебе надо быстро сделать какую-то разовую работу, но чтобы сделать вещь, которая будет надёжно работать и отлавливать все возможные косяки при эксплуатации танцевать с ДТ придётся не чуть не меньше, чем со статикой.
Говнокод — это просто код, который хрен поймёшь!
Ты ничего не понимаешь в говнокоде. 1000 строчная портянка из switch-case, например, предельно понята, но это не делает её хорошим кодом. Цепочка a(b(c(e)))
тоже предельно понятна, но абсолютно не понятно кто что возвращает, пока не прочитаешь ВСЕ исходники этих функций. Ты, очевидно, не работал с не своим кодом.