Обновить
133
Илья Майзус@bigfatbrowncat

Пользователь

23
Подписчики
Отправить сообщение
А может это не они — «малолетние дебилы», а мы с вами — «старые дураки»?

Я посмотрел на список качеств, изложенных в статье. Некоторые из них кажутся на первый взгляд деградацией. Вот, например, клиповое мышление. Ужас, ужас, когда «юное дарование» не готово читать мой пространный текст на 20 строк…

Да? А может, это просто я не умею писать лаконично?

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

А иные нам с вами, увы, уже недоступны. Вот мы и огорчаемся. И ругаем бессильно тех, чья вина состоит лишь в том, что они пришли в этот постоянно развивающийся мир позже нас.
Автор исходного комментария написал с десяток разных соображений, почему «Федор» — не слишком старательно изготовленная сплошь фальшивая кукла. Именно на недостаточно плавных обводах и проводах внимание акцентировали уже вы.
Эх, жаль, опоздал к такому интересному холивару… Ну да может кто-нибудь еще тут что-то читает…

Проблема статьи в том, что автор, как мне кажется, неверно понимает причины, по которым был запрещен оператор перехода в высокоуровневых языках. А запрещен он по простой и банальной причине:

Структуру кода, содержащего этот оператор, компилятор перестает понимать.

Дело не в том, что новичку трудно прочитать код с goto. Мой опыт разработки 15 лет, и я второй, более длинный листинг с while читаю гораздо легче, чем первый, более короткий, но с goto. Потому что я мысленно провожу с кодом ту же операцию, с которой начинает обработку кода компилятор. Я строю абстрактное синтаксическое дерево. AST. А наличие оператора перехода связывает ветви этого дерева вместе, превращая его из дерева в многосвязный граф. А работа с такими графами куда менее удобна, как человеку, так и машине, по ряду причин. Укажу на основную.

Такой код невозможно разделить на макроблоки. Ни явно, ни мысленно. Поотму что необходимым условием существования макроблока является его изолированность. Если не в смысле используемых данных (а хорошо бы), то хотя бы в смысле code flow.

Проблема автора, как мне кажется, состоит в том, что он читает (или читал, много же времени прошло) программы строчка за строчкой, не пытаясь сперва поделить их на более крупные блоки, не вчитываясь. Так можно изучать код, когда тебе 19 и мозг твой свеж, а размер всей программы не превышает 1000 строк.

История знает много практик, которые прежде были или вынужденной мерой, или просто считались нормой, а потом перестали быть таковыми:

— Как вы, например, отнесетесь к программисту, который задекларирует все переменные в глобальной области, а потом будет использовать их в разных местах программы, переиспользуя по нескольку раз?

— А как вы будете смотреть на того, кто напишет всю программу в одной единственной функции?

— А что вы будете думать о том, кто везде, где не попадя понаставит void*?

— А как отнесетесь к тому, кто по поводу и без везде понаставит asm-вставки, потому что решит, что он умнее компилятора?

Все эти практики объединяет с практикой использования goto один набор общих свойств:

1. Код, написанный на их основе хуже понятен компилятору и, как следствие, труднее оптимизируем. Компилятор, например, может развернуть цикл, если видит цикл. Если он видит 10:… goto 10, то он не поймет, что программист имел в виду. Ну… или компилятор точно гораздо умнее программиста.

2. Код, написанный на их основе труднее делить на части и блоки (кроме void*, там проблема другого порядка). Из-за этого он хуже поддерживается

3. И, наконец, такой код существенно сложнее отлаживать. Как минимум, потому, что не вчитываясь в каждую строку (и при этом не изучая всю программу целиком), совершенно невозможно нормально локализовать ошибки.

В довершении скажу, что, несмотря на все перечисленные доводы, существуют люди-обфускаторы со специальным устройством мозга, способные генерировать код высокой сложности, структурой и связностью при этом напоминающий макаронного монстра, а потом долгие годы отлаживать и поддерживать его. И деже добавлять фичи.

Пример: www.dechifro.org/dcraw/dcraw.c
Встречайте детище великого и ужасного Дейва Коффина — программу обработки «сырых» фотоснимков dcraw. Он написал и поддерживает ее один. Когда-то ее, по слухам, пытались понять разработчики из Adobe, и, кажется, решили, что написать с нуля проще.

Лет десять понадобилось сообществу libraw (https://github.com/LibRaw/LibRaw), чтобы сделать из нее библиотеку. Они просто разобрали логику. Всего лишь распутали программу и разделили ее на части. А теперь понемножку патчат и следят за обновлениями от автора.

Оператор goto в программе dcraw встречается 31 раз среди 23663 строк кода, который, к тому же, весь содержится в единственном файле (видимо, чтобы читать было удобнее). Мне кажется, что каждого человека, который защищает использование goto в современном промышленном программировании, необходимо отправлять читать этот исходник. Может, что-то новое он для себя при этом усвоит.
Согласен, я выдал расхожие штампы. Исправляюсь.
Под экранизацией комиксов я подразумеваю, например, Man Of Steel, который, как раз, претендовал на понятие «драмы». Или какие-нибудь «Звездные Войны». Особенно, из диснеевских, новых… Или, чтобы всех обидеть равномерно, Терминатора. ПричеМ, любого — даже того, которого я в детстве смотрел с придыханием. За детское кино он сойдет. Но как взрослое — явно не дотягивает…

А под психологическим кино я предлагаю рассмотреть любой (на выбор зрителя) фильм режиссера Ларса фон Триера. Он, на мой имховатый взгляд, гений искусства. Так вот, даже мимо его персоны при этом без скандала пройти не могут, не говоря уже о творчестве.

Я как-то, например, весьма неглупой и образованной подруге порекомендовал «Догвилль». Так она не смогла его досмотрет до конца. Душевных сил не хватило. Вот это — искусство. Меняет сознание и восприятие мира раз и навсегда.
Проблема фундаментальнее, чем то, каким способом оценивать талантливость произведения. Общество не желает действительно талантливого (иначе глубокие психологические драмы в кино были бы намного популярнее, чем экранизации комиксов). Оно желает именно того, что вызывает приятные эмоции. При известной степени мазохизма — ужастики.

Воспринимать искусство — это труд. Душевный труд. Чем сложнее искусство — тем труднее. Далеко не всякий к этому готов. А кого-то настоящее искусство отпугнет тем, что вызывает слезы и боль. Так что существующая мера вполне удовлетворительна. Она отражает отношение толпы. И каждый находит в ней то, что интересно ему. Кому — плюс, кому — модуль. А кому-то, наверное, — минусы.
Посмотрите в сторону bazel. Как я понимаю, его позиционируют на замену gyp
Ну что вы прикопались к Солженицыну? Он велик не качеством литературы, а фактом ее наличия. А хотите качества и правды — читайте Варлама Шаламова.
А вы, кстати, зря иронизируете. Мой опыт показывает, что лучшие произведения искусства (книги и кино) имеют полярные оценки от сообщества. То есть если примерно все голосуют +3/5 (годное кинцо, можно смотреть), — значит перед нами очередная бездарная жвачка. А если половина людей пишут -5 (ужасно, запретить показ везде!!!11), а вторая половина пишет +5 (шедевр), значит зацепило.

Как правило, знак оценки неважен, важен модуль. Чем средний модуль больше — тем больше вероятность того, что перед нами нечто стоящее.
А тут, между прочим, важен контекст.
Люди приходят на Пикабу поржать. Отдохнуть и развлечься.
Накрайняк — поучаствовать в каком-нибудь холиваре (или посидеть в сторонке с попкорном).

В любом случае, любой серьезный пост, написанный в таком сообществе, получит куда меньше плюсов. И это не только неудивительно, но и вполне справедливо.

Хабр же, например, содержит более наукоемкие статьи. Здесь такой формат и простого котика или девушку негляже вряд ли сильно заплюсуют.
Что же изменилось? Почему Эйнштейн сейчас самый «лайкуемый» ученый? Изменились читатели, слушатели, зрители. Изменились мы. Доросли.

Ни черта!
Эйнштейна лайкают, потому что Эйнштейна принято лайкать. Потому что каждому с детства рассказали, что Эйнштейн — гений, его надо уважать и боготворить. А если ты этого не делаешь, значит ты — дурак недалекий и деревня неграмотная.

Люди лайкают Эйнштейна, потому что это модно. Замени в посте Эйнштейна на Бора или Резерфорда — лайков будет меньше. А если поставить вместо него, скажем, Алана Тьюринга (до фильма о нем, разумеется), вообще не поняли бы, чо это за хрен с горы.

Сколько из лайкателей Эйнштейна понимают хотя бы суть СТО?
А как открыть Gradle проект в Visual Studio?
А у Gradle есть fallback вида «сгенерим makefile, чтобы в [idename], которая его не поддерживает можно было девелопить»?
>Если говорить не о генераторах, а о нормальных билд системах
Смысл моего комментария состоял в том, что CMake — это именно генератор. И его основной смысл именно в этом. Билд-систем — завались. А вот сделать проект так, чтобы можно было его девелопить откуда попало можно только на CMake
CMake делает не «универсальный makefile», а полноценный файл проекта для любой популярной IDE. Я выше уже написал…
Добавлю от себя, что на сегодняшний день CMake — единственный инструмент, который позволит вам написанием единственного билд-скрипта поддержать:

1. Windows + MSVC + Visual Studio
2. MacOS + Clang + XCode
3. Linux/MSYS + gnu toolchain (включая make) + (подставьте любую IDE, кроме перечисленных)
4. Какую-нибудь ninja или nmake — там есть и такие генераторы для любителей чего-то необычного

Во всех трех случаях, конечно, будут небольшие особенности (например, поддержка Debug/Release в MSBuild сделана не так, как у остальных), но все эти проекты будут успешно и совершенно одинаково собираться, одним и тем же способом тащить завиимости, запускаться и отлаживаться.

IMHO, если вы разрабатываете кросс-платформенный проект на C++, то на данный момент альтернатив CMake просто не существует.
Если лично вам они кажутся лишними, это не значит, что в точки зрения вселенной в них отсутствует смысл. Как минимум, куча народа на них любуется столетиями и радуется тому, насколько они прекрасны.
>то зачем бы вы сделали миллионы «лишних» галактик? :)
А кто сказал, что они «лишние»? На них тоже есть жизнь. Много разных вариантов жизни.
>Моя мысль — замечательно работает.

Попробуйте сделать из своей мысли хоть пару хоть сколь-нибудь конструктивных выводов. Извлеките из нее практическую пользу для себя :)

Мы с вами давно уже перешли из плоскости научного спора в дискуссию двух людей с разным мировоззрением. Так что давайте прекратим спорить.

Вы считаете заявление «у природы нет цели, так как нет сознания» ценным. Я считаю его очевидным и неинтересным. Мне куда интереснее проанализировать, какие цели я бы задал природе, если бы находился на месте разумного творца. Высокомерно звучит, но интересно. Потому что из этих рассуждений можно почерпнуть много инженерных идей. Или сюжет для фантастического романа.
Я полагал, что в статье будет хотя бы одна формула или хотя бы какой-то намек на доказательство хоть чего-то… Заголовок не просто желтый, он отливает золотом.
Это уже софистика. Понятие «результат» — это просто обозначение причинно-следственной связи. ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82

Моя основная аксиома: смысл жизни состоит в сохранении жизни. Не данной конкретной особи, а жизни как таковой, как явления.

Эта аксиома дает возможность каких-либо осмысленных построений, выделения целей и результатов. Достигнутых или нет.

Выходить за рамки этой аксиомы в данной дискуссии я отказываюсь, так как мне это просто неинтересно.

Отсутствие у самой природы как таковой смыслов и целей не мешает нам ей эти смыслы придавать и цели обозначать. Просто для того, чтобы наши с вами мыслительные действия можно было вести.

А без цели мысль бесполезна. Она просто не работает.
>Цель чего?

Цель живого существа. Основная задача живого существа — выжить и оставить потомство. Основная цель живого существа — решить его основную задачу.

Честно говоря, у меня такое ощущение, что я не с человеком беседу веду, а с андроидом, построенном на формальных логических описаниях… Извините.

>Чет непонятно, как вы от отсутствия целей у природы пришли к тщетности бытия.

Когда вы сказали «у природы нет целеполагания», вы вывели дискуссию с уровня обсуждения смысла жизни конкретной популяции особей (о которой говорил я) на уровень смысла жизни как таковой. А этот уровень здравому смыслу неподвластен. Он уже из области веры скорее. На это я вам и указал, назвав «обсуждением тщетности бытия».

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность