A Series of Vignettes From My Childhood and Early Career.pdf
191.9 KB
Джейсон Шайрер собрал истории из своей карьеры про «смерть программирования». В 1996 ему объясняли, что ООП всё автоматизирует и бизнес будет собирать софт как LEGO. В 2000 коллега показывал IntelliJ с рефакторингом и говорил «нам конец». Мультимедиа должно было всё изменить. Дотком-бум должен был всё изменить.
Каждый раз новая технология обещала заменить разработчиков. Каждый раз становилась просто ещё одним инструментом. Автор до сих пор пишет код и получает за это деньги — почти 30 лет спустя.
Бонусом — две истории про автоматизацию. В одной он написал скрипт, который делал за подрядчика его шестимесячный контракт. В другой — автоматизировал собственную работу и жил в страхе разоблачения, пока задачу просто не передали другому отделу. Работа всегда находилась.
Статья короткая, читается за 5 минут. Полезно для калибровки на фоне очередного «ИИ заменит программистов». PDF-версию прикрепляю к посту.
@prog_stuff
Каждый раз новая технология обещала заменить разработчиков. Каждый раз становилась просто ещё одним инструментом. Автор до сих пор пишет код и получает за это деньги — почти 30 лет спустя.
Бонусом — две истории про автоматизацию. В одной он написал скрипт, который делал за подрядчика его шестимесячный контракт. В другой — автоматизировал собственную работу и жил в страхе разоблачения, пока задачу просто не передали другому отделу. Работа всегда находилась.
Статья короткая, читается за 5 минут. Полезно для калибровки на фоне очередного «ИИ заменит программистов». PDF-версию прикрепляю к посту.
@prog_stuff
❤2👍1
Вышел C3 0.7.8 — в этой версии добавили struct splatting (
C3 — это эволюция языка C. Идея: как бы выглядел C, если бы не нужна была обратная совместимость. В отличие от Zig и Odin, которые придумывают новый синтаксис, C3 остаётся максимально похожим на C. Если знаешь C — читать код на C3 можно сразу.
Что добавили поверх C
🔘 Модули вместо header-файлов
🔘 Встроенные слайсы и строки
🔘 Дженерики и семантические макросы
🔘 Обработка ошибок через Result-подобный механизм
🔘 defer, контракты (pre/post conditions), compile-time рефлексия
🔘 First-class SIMD-векторы
Главное — полная совместимость с C ABI. Можно вызывать C из C3 и наоборот без обёрток. Не нужно переписывать всё — можно постепенно добавлять C3-код в существующий проект.
Компилятор использует LLVM-бекенд, есть встроенная билд-система. Сейчас версия 0.7.x, план — выпустить 1.0 когда стабилизируется стандартная библиотека.
У языка есть свой сайт, и репо на гитхабе.
@prog_stuff
some_call(...a_struct, 1, 2) — распаковка полей структуры в аргументы) и vector swizzle initialization (int[<3>] x = { .xy = 3, .z = 5 }).C3 — это эволюция языка C. Идея: как бы выглядел C, если бы не нужна была обратная совместимость. В отличие от Zig и Odin, которые придумывают новый синтаксис, C3 остаётся максимально похожим на C. Если знаешь C — читать код на C3 можно сразу.
Что добавили поверх C
Главное — полная совместимость с C ABI. Можно вызывать C из C3 и наоборот без обёрток. Не нужно переписывать всё — можно постепенно добавлять C3-код в существующий проект.
Компилятор использует LLVM-бекенд, есть встроенная билд-система. Сейчас версия 0.7.x, план — выпустить 1.0 когда стабилизируется стандартная библиотека.
У языка есть свой сайт, и репо на гитхабе.
@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
Forwarded from GameDev: разработка игр
На dos.zone добавили Norton Commander и Volkov Commander — те самые синие панели с F8 для удаления. Внутри каждого ещё по 10 DOS-игр.
Работает на js-dos — обёртка над DOSBox, скомпилированным в WebAssembly. Проект опенсорсный, живёт на гитхабе. Поддерживает несколько бекендов: обычный DOSBox и DOSBox-X. Тянет даже Diablo и Dune 2000, есть мультиплеер и облачные сейвы.
Интеграция элементарная:
Больше не могу говорить, ушёл играть в GOLDEN AXE💃
@make_game
Работает на js-dos — обёртка над DOSBox, скомпилированным в WebAssembly. Проект опенсорсный, живёт на гитхабе. Поддерживает несколько бекендов: обычный DOSBox и DOSBox-X. Тянет даже Diablo и Dune 2000, есть мультиплеер и облачные сейвы.
Интеграция элементарная:
Dos(element).run("game.jsdos"). Если нужно встроить ретро-игру в свой проект или поэкспериментировать с эмуляцией DOS в вебе — вполне рабочий вариант.Больше не могу говорить, ушёл играть в GOLDEN AXE
@make_game
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Самое ценное — не сам челлендж, а разборы решений. Статья от QuestDB показывает путь от наивных 71 секунды до 1.7 секунды: SIMD, branchless-парсинг, memory-mapped files, кастомные хеш-таблицы. Есть аналогичные разборы для Go и Python (от 10 минут до 4 секунд через Polars).
Идеальный материал, чтобы разобраться как реально работает низкоуровневая оптимизация — branch prediction, cache locality, SIMD. Сохраняйте на выходные.
@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1
RetroAssembly — опенсорсный веб-кабинет ретро-игр. Открываете страницу, закидываете ROM-ы, играете. Прогресс сохраняется и синхронизируется между устройствами.
Можно поднять self-hosted через Docker. Эмуляция происходит прямо в браузере, NAS только хранит файлы. Есть тёмная тема, полноэкранный режим, автозагрузка последнего сейва.
Если хотите глубже — под капотом libretro/RetroArch, скомпилированный в WebAssembly. Похожий подход использует PCjs, где можно запустить DOS, Windows 3.1, OS/2 и даже поиграть в оригинальный Spacewar! на эмуляторе PDP-1.
@prog_stuff
Можно поднять self-hosted через Docker. Эмуляция происходит прямо в браузере, NAS только хранит файлы. Есть тёмная тема, полноэкранный режим, автозагрузка последнего сейва.
Если хотите глубже — под капотом libretro/RetroArch, скомпилированный в WebAssembly. Похожий подход использует PCjs, где можно запустить DOS, Windows 3.1, OS/2 и даже поиграть в оригинальный Spacewar! на эмуляторе PDP-1.
@prog_stuff
👍2
Как создать свой язык программирования — подборка на сохранение:
🔘 Видео от Computerphile — 15-минутный разбор как написать интерпретатор с нуля, объясняет Laurie Tratt из King's College
🔘 Плейлист Building a Parser from scratch — полный курс: лексер → парсер → AST → интерпретатор → компилятор в ассемблер
🔘 Nand2Tetris — легендарный курс, где вы строите компьютер от логических вентилей до ОС и компилятора своего языка. Занимает ~6 месяцев, но после него вы понимаете всё
Для тех, кто давно хотел разобраться как работают языки изнутри, но руки не доходили.
@prog_stuff
Для тех, кто давно хотел разобраться как работают языки изнутри, но руки не доходили.
@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1