LINUX.ORG.RU

Объявлены победители 29 конкурса по написанию запутанного кода на языке Си

 , ,


0

4

Опубликованы исходные тексты работ, победивших в двадцать девятом конкурсе IOCCC (International Obfuscated C Code Contest), участникам которого предлагалось подготовить наиболее запутанный и трудноразбираемый код на языке Си. Участвующие в конкурсе работы, с одной стороны, должны препятствовать анализу кода и пониманию сути решаемой задачи, но, с другой стороны, код должен быть интересен и чем-то примечателен (работы могут быть необычно оформлены или выделять неожиданные стороны языка Си). Размер файла с кодом программы не должен превышать 4993 байтa, а чистый код не должен превышать 2503 байта после обработки утилитой iocccsize.

Среди победителей:

  • Эмулятор компьютера с архитектурой URISC, набор команд в котором ограничивается одной инструкцией SUBLEQ (SUbtract and Branch if Less than or EQual to zero). Размер эмулятора всего 366 байт, при том, что помимо CPU он эмулирует фреймбуфер с разрешением 800x512, используя для вывода графики библиотеку SDL3, и может загрузить образ с Linux и запустить в нём игру doom.
  • Генератор изображения чёрной дыры. Приложение включает простой интерпретатор для подмножества языка Fortran 66, программа для которого задана в форме перфокарт, закодированных через пробелы и табуляции в исходном коде. Закодированная Fortran-программа повторяет первый код для симуляции чёрной дыры, опубликованный Жан-Пьером Люмине в 1978 году. Изображение формируется в виде облака точек и сохраняется в формате PGM. Кроме симуляции чёрной дыры предложены варианты с закодированными «перфокартами» для расчёта множества Мандельброта, вычисления простых чисел и трассировки лучей.
  • Вариант утилиты patch, генерирующий утилиту diff через серию трансформаций собственного кода. На первом этапе скомпилированной утилите patch передаётся собственный исходных код, на основе которого формируется diff-файл. После применения этого diff-а к собственному коду на выходе получается программа, которая в цикле на основе своего кода генерирует набор коммитов с патчами в формате git am. При объединении данных коммитов командой git log --pretty=format:%s > final.c получается код с реализацией утилиты diff.
  • Игра (на скриншоте) в жанре Roguelike, работающая в текстовом терминале и позволяющая проходить автоматически генерируемый лабиринт, собирать артефакты и избегать монстров. Код оформлен в виде изображения подземного жителя и обфусцирован (строки зашифрованы, циклы реализованы через goto, при работе с массивами используется синтаксис «индекс[массив]»).
  • Генератор ASCII-анимации, воссоздающий заставку сериала «Доктор Кто» с симуляцией видеоэффекта «HowlRound» (туннель из уменьшающихся копий изображения), применявшегося в заставке 1963 года.
  • Эмулятор игровой приставки GameBoy, оптимизированный для запуска тетриса, но способный выполнять и другие игры (протестирован запуск ROM-файлов для десятка игр). Вывод формируется в форме псевдографики из Unicode-символов.
  • Симулятор звука морского прибоя на фоне автоматически генерируемой медитативной музыки. На выходе генерируется wav-файл, продолжительностью 5 минут.
  • Реализация самомодифицирующегося игрового автомата Quine Pong, предоставляющего две игры - пинг-понг и перепрыгивающий препятствия динозавр (как в пасхальном яйце из Google Chrome). Программа примечательна тем, что отображение кадров реализовано через цикличную перегенерацию кода программы (запуск приводит к выводу исходного кода для первого кадра, после компиляции этого кода формируется код для следующего кадра и так далее). Игровой процесс реализован через shell-скрипт, выполняющий цикличную перекомпиляцию кода.
  • Компилятор и генератор кода для языка Zoltraak. Язык включает только одно слово «zoltraak», которое комбинируется в разной форме с пробелами и пустыми строками. На вход подаётся любой текстовый файл, который преобразуется в программу на языке Си, состоящую из заголовка и последовательности на языке Zoltraak. Компиляция и выполнение сгенерированной Си-программы приводит к выводу содержимого исходного текстового файла.

Видео на youtube, длительность: 2:57:20.

>>> Источник: OpenNET

★★★★★

Проверено: maxcom ()
Последнее исправление: dataman (всего исправлений: 3)
Ответ на: комментарий от LightDiver

Есть два типа людей - нормальные и зубрилы. Последним приходится зубрить всё подряд всю жизнь, да. Ну склад ума такой. Нормальные же смеются над всякими «теперь я учу <новый_модный_язычок>» и «программистами на <название_язычка>».

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

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

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Есть ещё те, кто платит и тем и другим. :)

Я, например, никогда не возьму на работу «программиста на <название_язычка>», например. Это ведь даже хуже чем разнорабочий.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Да, есть те, кто паразитирует на специалистах и разнорабочих. Но без таких никак. Пока не особо мешают - предприятие живет. Когда начинают думать, что что то понимают и лезут в производство - предприятие умирает.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Главное не брать на работу всяких «администраторов RedHat», «программистов на Питоне», «водителей Рено Логан» и «бухгалтеров на 1С». И предприятие будет процветать.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Есть ещё те, кто платит и тем и другим. :)

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

VIT ★★
()
Ответ на: комментарий от VIT

Да-да, конечно-конечно. Вот только твои проекции вообще никому не интересны. Я забыл уже больше, чем ты будешь когда-нибудь знать. :)

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ну может и так. Честно говоря, не так и много я знаю, так что вам не сильно забывать будет напрягаться. Но я знаю одну очень важную вещь: я знаю, где искать, и что ещё более важное, знаю как искать. А вот этому на форумах не учат, здесь опыт нужен.

VIT ★★
()
Ответ на: комментарий от VIT

Но я знаю одну очень важную вещь: я знаю, где искать, и что ещё более важное, знаю как искать

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

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ну начало неплохое, тащемта.

Спасибо, тронут!

В принципе, если освоить ещё очень важные скиллы «знаю зачем искать» и «знаю что искать», то может чего и выйдет

Что нужно делать для этого?

если в процессе придёт понимание, что часто всякое разное найденное суть одно и тоже

Да, если сидеть на одном и том же форуме и переливать из пустое в порожнее, то конечно. А если стоял у истоков транспьютеров, потом систолических массивов, потом Beowulf, MPI и PVM, первый BLAS. Потом программа ASCI. Потом работы по EUV литографии, это уже 2001 год. Потом термояд и первая экономически-выгодная станция… много чего, что не совсем подходит под «суть одно и то же». … Но я стараюсь, наглых и ранних только развелось, плюнуть негде, а так нормально!

VIT ★★
()
Ответ на: комментарий от Stanson

Как там в вашей вселенной

Ух ты, какой прогресс, в вашей вселенной, неплохо, неплохо для одного дня!

может к экономически выгодному термояду уже и

Не, показалось … но всё равно неплохо. За термояд мы как-нибудь обязательно потрещим. Я тут слышал Будкеровцы синхротрон на 3 Гэв в конце-концов запустили. Если это правда, то очень рад за них. Мы в своё время мутили, они мне «внедрение» обеспечивали. Впрочем, это уже другая история…

VIT ★★
()

Слабо осуществить нечто подобное на python? А, не, выше уже ссылку дали.

Erepb ★★★
()
Последнее исправление: Erepb (всего исправлений: 1)
Ответ на: комментарий от LightDiver

эээ есть замечательный сборник посвящённой истории чтения который прям так и называется:

История чтения в западном мире от античности до наших дней. Шартье и Ковало?

там в последнем эссе примечательное про эрудированность в разрезе разностороннего чтения

что последнее обычно характерно для маргинализированных которым «не куда деть время» либо по причине всё есть(потомственные) либо ничего нет ( быв интеле люди )

т.е. чтение для специальности наиболее характерно для лелеимого middle сlass (ака буржуа)

qulinxao3 ★☆
()
Ответ на: комментарий от LightDiver

номенклатура сразу знала зачем управляющих (кибирнетов по новогречески) заклеймила паразитами

разделение труда «семеро с сошкой слуга_народа сложкой» не в первые - то что реально без «излишков» не возможен поиск пути прогресса вы както упускаете - когда уже по известной траектории идёт вывод к цели -то да в этом случае понятней что излишки а что необходимо

а в целом вы с позиции диктатора хозяина всех ресурсов - то что такое «Лицо» часто прикрывается общечеловечеством - так всегда так было

qulinxao3 ★☆
()
Ответ на: комментарий от LightDiver

раскрывает виртуозное обращение с инструментом

тот же учебный квайн очень полезен

qulinxao3 ★☆
()
Ответ на: комментарий от LightDiver

А в чем красота

В глазах смотрящего ;)

CrX ★★★★★
()
Ответ на: комментарий от Stanson

Они либо намного дешевле либо намного производительнее, чем «администраторы любой ОС», «программисты на любом языке программирования», «водители любого транспорта» и «бухгалтера на любом ПО».

monk ★★★★★
()
Ответ на: комментарий от monk

У него сама постановка вопроса кривая. Ищут не умельца что то делать, а специалиста для решения задачи. А уже в задаче ставят требования к специалисту.

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

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

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Если в штат, то не задачи, а класса задач. И обычно, если в предприятии используется RedHat и Windows, то намного выгоднее нанять «администратора RedHat (RHCA)» и «администратора Windows Server (MCSE)», чем двух «администраторов любой ОС».

monk ★★★★★
()
Ответ на: комментарий от monk

в штат, то не задачи, а класса задач

Именно что класс задач. То есть требования идут от задачи, а не от того, под что заточен кандидат. Есть задача администрировать РедХат, а не требуется «Администратор РедХат» - таких не существует.

Но при этом если нужный специалист последние 10 лет администрировал именно РедХат - это как раз плюс, а не минус. То есть это наработанный опыт, а не профессия.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

То есть требования идут от задачи, а не от того, под что заточен кандидат.

Кандидатов ищут под классы задач, а не под те задачи, что есть. Потому что искать кандидата, умеющего «настраивать Linux, 1С, Windows, АТС, чинить трубы и убирать снег» можно или искать очень долго или получить студента, который про всё перечисленное «что-то слышал». Даже если суммарно эти задачи занимают не больше 6 часов в день.

а не требуется «Администратор РедХат» - таких не существует.

Если человек выучил и сдал экзамен на Red Hat Certified Architect, он кто?

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

либо намного производительнее

  • Как быстро Вы печатаете?
  • 100500 символов в минуту. Правда такая херня получается….

Ты вообще понимаешь, что реальному программисту без разницы на чём программировать да и язык он должен сам выбирать наиболее подходящий под задачу, а реальному водителю совершенно без разницы машину какой марки водить?

А вот эти все «программисты на …» - это не программисты вообще, это макаки вызубрившие какие-то паттерны, которые никогда и ничего дельного не смогут написать.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Врядли так уж без разницы. У каждого языка есть 100500 нюансов, которые надо знать. На каждый язык нужно наработать определенный опыт. Иначе по началу херня и получится.

Но безусловно базовую теорию знать надо. Только необходимого опыта это не отменяет.

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

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

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от Stanson

Ты вообще понимаешь, что реальному программисту без разницы на чём программировать

Если тебе дать задачу исправить ошибку в программе на APL, справишься также быстро, как тот, кто на нём ежедневно пишет?

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

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

а реальному водителю совершенно без разницы машину какой марки водить

Да ну? Сможешь управлять карьерным самосвалом или автопоездом? Или до первого поворота?

А вот эти все «программисты на …» - это не программисты вообще, это макаки вызубрившие какие-то паттерны, которые никогда и ничего дельного не смогут написать.

Они как раз пишут программы, решающие реальные задачи, за заданное время и в заданных условиях.

monk ★★★★★
()
Ответ на: комментарий от Stanson

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

В идеальном мире это так. И иногда при написании с нуля. В реальном же мире, приходится поддерживать, фиксить, модифицировать написанное на том, на чём написано. В том числе и если выбор «наиболее подходящего под задачу» языка был выбран по принципу «что знает та „макака с паттернами“, что была на момент создания», а сверху это всё обложено различными костылями и чудом не разваливается.

А вот эти все «программисты на …» - это не программисты вообще, это макаки вызубрившие какие-то паттерны, которые никогда и ничего дельного не смогут написать.

Бизнесу иногда бывает не надо «дельного», а надо «как можно дешевле и быстро».

С основным посылом я, кстати, вполне согласен. Но не стоит так отрываться от реальности в своей идеализации…

CrX ★★★★★
()
Ответ на: комментарий от LightDiver

Но безусловно базовую теорию знать надо. Только необходимого опыта это не отменяет.

Даже базовых теорий несколько: лиспы, Си/Фортран/…, Haskell, APL/J. Если пытаться перенести алгоритм между любыми двумя категориями без пересмотра базовых операций, будет огромная просадка производительности.

monk ★★★★★
()
Ответ на: комментарий от Stanson

ээээ тут опять кривая гауса из мема про редакторы где по краям условный нотепад а по центру vi/emacs/atom ....

так и специализацией ты смешиваешь когда чел знает только один инструмент и когда чел виртуоз одного инструмента с навыком лабать и на остальных

т.е смешиваешь случай инструмент первого выбора это Y и случай единственный известный исполнителю инструмент Y

qulinxao3 ★☆
()
Ответ на: комментарий от LightDiver

наоборот понимание что из разных наборов аксиом выводима одна и та же теорема не следуют ...

qulinxao3 ★☆
()
Ответ на: комментарий от monk

Если тебе дать задачу исправить ошибку в программе на APL, справишься также быстро, как тот, кто на нём ежедневно пишет?

Разумеется быстрее, если тот кто пишет - «программист на APL».

Не, ты и правда думаешь для нахождения и исправления ошибки в программе достаточно всего лишь знать паттерны присущие APL? :)

Картина маслом - APL-макаку нанимают, сходу выдают тонну кода, и требуют «исправить ошибку» :) Флаг в руки, бараюан на шею.

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

У вас там какая-то своя реальность. Последствия проникновения вашей реальности в нашу можно наблюдать, скажем, на примере поделий «программистов на rust», на которые без смеха не взгялнешь. Или на примере вебни.

Да ну? Сможешь управлять карьерным самосвалом или автопоездом? Или до первого поворота?

Любой нормальный водитель, а не «водитель Рено Логан» справится.

Они как раз пишут программы, решающие реальные задачи, за заданное время и в заданных условиях.

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

Stanson ★★★★★
()
Ответ на: комментарий от CrX

В реальном же мире, приходится поддерживать, фиксить, модифицировать написанное на том, на чём написано.

Да какая нахер разница на чём написано? Вникать в алгоритм работы того что написано всё равно намного дольше чем глянуть синтаксис произвольного язычка.

Бизнесу иногда бывает не надо «дельного», а надо «как можно дешевле и быстро».

Не, если мы обсуждаем массовое производство массового говна, что весьма странно в контексте топика, то, несомненно нужно набрать как можно больше вайб-программистов на <название_язычка>, причём чтобы язычок был максимально модным на момент планируемого выхода на рынок.

Но не стоит так отрываться от реальности в своей идеализации…

В реальности 99% полезного софта вообще написано на сишечке и цепепе. А в реальности «программисты на С» мне как-то ни разу не попадались. Ну ни разу не встречал я такого, что приходит человек и заявляет «я программист на С». Или мы про вебню/блоатварь какую-нибудь? Опять же, в контексте топика это весьма странно.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Не, ты и правда думаешь для нахождения и исправления ошибки в программе достаточно всего лишь знать паттерны присущие APL? :)

Достаточно уметь программировать на APL. Алгоритмы, решаемые на APL, в это включены.

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

Программисты на Си пишут ядро Linux и PostgreSQL. Программисты на 1С пишут проводки бухучёта и расчёта зарплаты сотен тысяч предприятий. Программисты на Javascript пишут интерфейс Web-страниц.

Жду предложений, какой язык будешь выбирать в перечисленных случаях.

Любой нормальный водитель, а не «водитель Рено Логан» справится.

Хотел бы посмотреть, как ты с первого раза проходишь поворот.

monk ★★★★★
()
Ответ на: комментарий от Stanson

Вникать в алгоритм работы того что написано всё равно намного дольше чем глянуть синтаксис произвольного язычка.

Кроме синтаксиса ещё и семантика есть. Вот этот алгоритм понятен?

foldMap f = foldr (mappend . f) mempty
foldr f z t = appEndo (foldMap (Endo #. f) t) z
newtype Endo a = Endo { appEndo :: a -> a }
               deriving (Generic)

instance Monoid (Endo a) where
        mempty = Endo id
        Endo f `mappend` Endo g = Endo (f . g)

Синтаксис ведь почти тривиален.

А в реальности «программисты на С» мне как-то ни разу не попадались.

Линус Торвальдс.

monk ★★★★★
()
Ответ на: комментарий от monk

Достаточно уметь программировать на APL

Человек либо умеет программировать, либо нет. Третьего не дано. «уметь программировать на <название_язычка>» это то же самое что быть «слегка беременной».

Жду предложений, какой язык будешь выбирать в перечисленных случаях.

Для ядра линукса вариантов нету, кроме С ни один язык больше не предоставляет неоходимой свободы, проводки бухучёта можно далеко не только на 1С писать ( я такое вообще аж на похапе как-то раз сделал, потому что язык 1С не годился для задачи :) Да-да, под 1С, выставление и проводка документов на оплату трафика. ), а в европках, например, вообще такая пакость как SAP используется, написанная на жабе и никакого 1С. Интерфейс веб-страниц вообще надо писать на HTML. Именно эти «пейсатели на JS» не имея никакого представления о программировании, как раз и превратили интеренет в нынешнее чудовище.

Хотел бы посмотреть, как ты с первого раза проходишь поворот.

Если ты умеешь водить, а не «водить Рено Логан», то ты имеешь представление о габаритах, радиусах, зависимости тормозного пути от массы, как ведёт себя прицеп и пр. Грузовика или фуры, а тем более БелАЗа какого у меня в личном пользовании нет, но рулить большими машинами доводилось. Ничего сложного. Да, чтобы ровно и аккуратно загнать фуру жопом к погрузочной площадке я несомненно потратил несколько больше времени чем тот, кто каждый день это делает, но ничего такого в этом вообще нет, если не суетиться и понимать что и как делать.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

А ты сам вообще программируешь? А то у меня возникли жуткие подзрения после этого твоего комментария.

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

LightDiver ★★★★★
()
Ответ на: комментарий от Stanson

Человек либо умеет программировать, либо нет. Третьего не дано. «уметь программировать на <название_язычка>» это то же самое что быть «слегка беременной».

Если алгоритм человек мыслит в терминах конкретного языка, то умеет программировать только на нём. Например, если человека учили программировать на Си, ему очень сложно писать алгоритмы на языках, где нет понятия указателя/итератора. Хотя, конечно, «настоящий программист может написать программу на Фортране на любом языке».

Фактически, от языка зависит даже декомпозиция задачи: иерархия объектов с разными методами в C++ против обобщённых функций в Common Lisp против классов типов в Haskell.

проводки бухучёта можно далеко не только на 1С писать

Я имел в виду ситуацию, когда их надо написать для 1С: Бухгалтерия Предприятия 8. Теоретически можно написать на чём-то другом и дёргать через COM или HTML, практически выбор только язык 1С.

Интерфейс веб-страниц вообще надо писать на HTML.

Даже эта страница на чистом HTML работает плохо. Как написать на HTML, например, интерактивную карту вообще не представляю. Хотя последние версии HTML/CSS тьюринг-полные, наверное, можно и на нём писать.

monk ★★★★★
()
Ответ на: комментарий от Stanson

Если ты умеешь водить, а не «водить Рено Логан», то ты имеешь представление о габаритах, радиусах, зависимости тормозного пути от массы, как ведёт себя прицеп

Интересно, зачем же, по-твоему, требуют сдавать на категории C, D, E? Ведь любого водителя можно посадить на грузовик или автобус.

monk ★★★★★
()
Ответ на: комментарий от monk

Кроме синтаксиса ещё и семантика есть. Вот этот алгоритм понятен?

что-то типа «гулять по списку/дереву» и что-то типа reduce на хаскеле? Лень лезть смотреть хаскельские приколы.

Синтаксис ведь почти тривиален.

Если бы ещё и принятая терминология функциональщины была тривиальной. :) Но ничего требующего каких-то прям сокровенных знаний нету.

Линус Торвальдс.

И как же он тогда сборочных/конфигурационных скриптов на шелле понаписал? Или они в сырцах ядра самозародились? Не, понятно что не только он их писал, но и он тоже.

Stanson ★★★★★
()
Ответ на: комментарий от monk

Интересно, зачем же, по-твоему, требуют сдавать на категории C, D, E?

Заетем, что есть водители, а есть «водители Рено Логан».

Ведь любого водителя можно посадить на грузовик или автобус.

Водителя - да. «водителя Рено Логан» - нет. К сожалению государство не разделяет никак первых и вторых.

В Штатах, например, категорий нет, зато есть разделение на права для машин с гидравлической и воздушной торомозной системой. Обычно вторая стоит на фурах и прочих тяжёлых машинах. Но если в грузовике или автобусе гидравлика - то можно с обычными правами ездить.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

По данным поверхностного гугла в США в год происходит 6.18млн аварий. По информации МВД, в 2025 году в России зарегистрировано 128 тысяч дорожно-транспортных происшествий.

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

При этом количество смертельных исходов там в восемь раз больше на сто тысяч человек. 12.2 против 1.55.

Возможно выдало неверные данные, можешь сам погуглить.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от monk

Если алгоритм человек мыслит в терминах конкретного языка

то он занимается какой-то фигнёй.

Например, если человека учили программировать на Си, ему очень сложно писать алгоритмы на языках, где нет понятия указателя/итератора.

С какого это перепугу?

Вот наоборот - наверно может быть, но тут тоже интересный вопрос - что, человек учится писать программы для компьютера и не знает что компьютер работает с ячейками памяти и их адресами?

Фактически, от языка зависит даже декомпозиция задачи: иерархия объектов с разными методами в C++ против обобщённых функций в Common Lisp против классов типов в Haskell.

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

Я имел в виду ситуацию, когда их надо написать для 1С: Бухгалтерия Предприятия 8. Теоретически можно написать на чём-то другом и дёргать через COM или HTML, практически выбор только язык 1С.

Ну и в чём проблема? Язык 1С это не более чем очередной бейсик. Писать на нём весьма просто. Дольше описания всяких функций 1С читать будешь, чем «разбираться в языке».

Даже эта страница на чистом HTML работает плохо. Как написать на HTML, например, интерактивную карту вообще не представляю.

А «интерактивную карту» вообще не надо писать на HTML. Для этого есть компилируемые в нативный код языки.

Хотя последние версии HTML/CSS тьюринг-полные, наверное, можно и на нём писать.

Я умею писать вебню на жабоскрипте, более того, жабоскрипт мне даже нравится как лёгкий embedded язычок для маленьких скриптиков в сложных софтинах, но я считаю, что делать из браузера, т.е. смотрелки HTML то, что из него сделали - это отвратительно. Не надо писать «интерактивные карты» для браузера. Вообще никакие. Ни на JS, ни на CSS, ни на чём вообще.

Stanson ★★★★★
()
Ответ на: комментарий от LightDiver

Можно глянуть широту твоего навыка?

degunino.net, colorimetry.ru, github.com/stanson-ch, stanson.ch, можно даже найти позорный проект yaw из конца 90-х, который у меня хватило ума бросить, и даже прямо здесь, на ЛОРе выкладывал свои вполне законченные высеры на JS, для демонстрации того, что вебня совершенно не обязана быть жирным тормозным говном.

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

Да нет никакой разницы. Это не профессионалы, если они её видят.

Stanson ★★★★★
()
Ответ на: комментарий от LightDiver

Разница в 48 раз.

Ну так в штатах и население в два раза больше, и машин на порядок больше и на машинах ездят намного больше чем у нас. Там фактически кроме самолётов и метро в больших городах никакого массово используемого общественного транспорта и нету, всё остальное передвижение - на машине, а дороги - говно (говорят уже заметно хуже чем даже у нас). Бухим и упоротым ещё ездить можно, особенно если ты негр. Вот и результат.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

github.com/stanson-ch, stanson.ch

Сишка на сишке поверх сишки обмазанная сишкой… Разнообразие так себе, вполне видна заточка не то что под одну сферу, но даже под один единственный язык. Весьма специфичный, к слову.

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

Что и показывают твои комментарии выше, про ядерный код, например. Хотя в ядре давно уже не только си.

https://github.com/Vladgobelen/NSQC3/blob/main/nstdc.lua Самое примитивное, вот тебе другой язык, другая область. Просто допиши сюда бассейн по примеру дороги. Стоимость 5 камня. Чтобы сервер принял. Команда бассейна basNew. У меня на это ушло секунд 30.

LightDiver ★★★★★
()
Ответ на: комментарий от Stanson

Населения больше раза в два, не в 48 раз. И машин больше всего раза в 4, а не в 48.

И у нас всего 20 лет назад с этим было все очень и очень плохо. Такой результат - планомерная работа в этой области.

Да и у них машин по поверхностному гуглежу больше, чем тех, кто способен их водить. Количество самих машин тут не решает.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Сишка на сишке поверх сишки обмазанная сишкой…

Ну извини, для драйверов, обработки сигналов и всякой прочей аналогичной хрени ничего лучше нет, и не предвидится.

Что и показывают твои комментарии выше, про ядерный код, например. Хотя в ядре давно уже не только си.

Да, там кроме си ещё на шелле дофига написано.

Самое примитивное, вот тебе другой язык, другая область.

Это ж луа, да ещё и линейно абсолютно - чего там писать-то?

Игрушки я тоже писал, кстати. На бабки интеля. Уволился когда интель выдал инженерные образцы i740 и сказал нашей команде писать так, чтобы вот на этих инженерных образцах уже заранее тормозило. Мой код в Корсары потом попал в итоге.

Stanson ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.