Pull to refresh
@math_coderread⁠-⁠only

User

Send message

Я заметил на своём опыте, а также косвенно на опыте коллег, что любой непривычный стиль написания кода кажется объективно нечитаемым и вызывает отторжение. Такое когнитивное искажение. Если некоторое время попытаться им пользоваться, несмотря на негативное отношение, искажение пропадает и можно пытаться проводить более объективное сравнение.

Но это же не означает, что подобный код перестает быть Г.

Нет, не означает, но он и в самом деле перестаёт быть этим самым Г.


Я называю это "нулевой рефакторинг": нулевой рефакторинг — это частный случай рефакторинга кода, при котором код — как текст — не изменяется, но при этом (иногда кардинально) меняется его архитектура, архитектура программы. Нулевой рефакторинг может быть итоговым результатом настоящего сложного многостадийного рефакторинга когда в итоге неожиданно оказывается, что получился "полный круг", а может совершаться исключительно в голове программиста в результате повышения его кругозора и опыта работы.


Вот чтобы обсуждаемый код перестал быть "Г.", требуется именно нулевой рефакторинг, и большое количество людей в отрасли его уже проделали.

Нет никакого закона Фарадея без остальной теории Максвелла в XXI веке.

Есть. Есть такое приближение, при котором "работает" не полная теория Максвелла: это приближение, в котором магнитное поле, порождённое вихревым электрическим полем, мало и может не учитываться. В этом приближении электромагнитных волн нет, а порождение электрического поля магнитным (закон Фарадея) — есть.


Именно это приближение описывает процессы, происходящие в цепях переменного тока низкой частоты.

Нормальный функциональный код.

Не думал, что на Хабре столько сотрудников ФСИН.

С одной стороны да. С другой стороны — это ведь российская тюрьма. А значит, сажая человека в тюрьму вы создаёте условия для совершения куда более тяжких преступлений (со стороны сотрудников ФСИН), чем исходная кража. Если так посмотреть, то утверждение "вор должен сидеть в тюрьме" выглядит даже более сомнительным, чем его противоположность ("ни один вор не должен сидеть в тюрьме").

Аналогично с := — это синтаксический сахар, который был добавлен специально для решения проблемы var name auto =.

А это (существование какой-либо проблемы с var name =) опровергает Rust, где конструкции, аналогичной := нет. Если бы упоминаемая вами проблема реально существовала, её пришлось бы решать не только в Го, но также и в Расте.

Т.е. ответа нет

Вы требуете перевести незаконченный кусок кода с одного ЯП на другой. Это не всегда возможно: нужен контекст, более-менее осмысленный кусок кода. Если воспринимать приведённый код как цельный, то получается переменная, которой не присваивается значение. Это бессмысленный код, переводить нечего.


Является.

Враньё. Ни в описании языка, ни в восприятии текста программистом двоеточие не воспринимается как отдельный элемент. Ну и уж тем более оно не является ключевым словом.


Он и есть мусор, т.к. есть уже оператор =.

Это не мусор. Это важный элемент, позволяющий отличать объявление новой переменной от переприсваивания. Без него читаемость программы ухудшилась бы.


каким образом := относится к паскаль-стилю

Речь шла о том, что новые ЯП используют "паскалевский стиль". Го — один из этих новых ЯП, и именно такой, что является контрпримером к вашим тезисам.


А что касается преимущества, то речь шла совсем о другом: о том что "let/var" нужен в обоих вариантах, но в паскалевском стиле он используется единообразно во всех ситуациях, а в C является в некотором роде костылём, подпирающим конструкцию, из которой убрали необходимый элемент — тип обявляемой переменной.

я жду эквивалента кода: int a;

Это не код, это говно (неинициализированная переменная).


А что касается того, что опровергает Go, то Go опровеграет два ваших утверждения: 1) необходимость мусора в виде двоеточия, отделяющего имя переменной от типа, 2) необходимость мусора в виде ключевого слова типа let, var или auto.


Двоеточие в := не является отдельным элементом/ключевым словом. Два символа := являются одним, единым оператором, поэтому никакого мусора при его использовании уже нет. (Не будете же вы настаивать, чтобы присвоение значения переменной выполнялось вообще без единого оператора?)

Go опровергает ваши утверждения.
Там переменные надо объявлять в отдельном блоке. Есть мазохисты, которым нравится, но остальные сильно против. Форвард-декларации — то же самое. И ещё много моментов, неадекватных с современной точки зрения.
Да-да. На первый взгляд новый язык по читаемости может поспорить с Perl, J и триграфами C++.

Мне кажется, я даже мгновенно перестал ненавидеть JavaScript после того как увидел это. Серьёзно, ещё пол-часа назад я хотел любыми силами избежать JavaScript в моей жизни, а сейчас JavaScript уже не кажется чем-то сильно плохим.
То есть РАН, если я правильно понимаю, стала преступной организацией (по аналогии с СС Третьего Рейха). Но, что характерно, мы не видим массового исхода членов из неё.
подход типа «Я не углублялся, статью не читал, и не собираюсь. …Но мнение имею» — сегодня доминирующий. В результате имеем то, что имеет нас

Вот только в данном-то случае этот подход сработал. Andruh прав в том, что GOF корректно вычленили из оригинальной статье собственно паттерн и отбросили особенности частной реализации в условиях специфического ЯП.

Math.random()

Есть понятие security through obscurity, а это, видимо, пример workability through obscurity?

Там кресло откидывается и дают плед и тапочки. А как можно спать на упомянутой «нормальной полке» я не понимаю в принципе. Там можно только делать вид, что спишь.
Бред какой-то. Зачем и кому это нужно, если есть Сапсан?
Я думаю, это косвенный признак хорошей игры. Потому что решения у этой проблемы нет, и если для какой-то игры эта проблема не актуальна — это не потому что эту проблему решили, а потому что игра не имеет достаточно развитых механик, чтобы эта проблема смогла проявиться. То есть иначе говоря, либо игра позволяет ролеплейить, и тогда эта проблема есть; либо этой проблемы нет, но и ролеплейить вообще не получиться.
Некоторые (Н. Вавилов, например), в шутку, называют. Но в этой шутке много правды.

Information

Rating
Does not participate
Registered
Activity