Введение в ракетку: Язык для создания языков

Введение в ракетку: Язык для создания языков

Если вы когда-нибудь задумывались, каково это — играть в бога с программированием, добро пожаловать в Racket — здесь создание собственного языка программирования не только возможно, но и активно поощряется. Это не типичный язык программирования уровня «Hello, World!», где вы проводите месяцы, пытаясь просто вывести текст. Racket — это универсальный инструмент для создания языков, и сегодня мы подробно разберём, почему он заслужил звание «языка для создания языков». Что делает Racket особенным? Racket похож на того невероятно талантливого друга, который не любит хвастаться....

28 сентября 2025 14:01 · 5 минут · 992 слова · Maxim Zhirnov
Ошибочность 'лучших практик': почему контекст имеет большее значение, чем правила

Ошибочность 'лучших практик': почему контекст имеет большее значение, чем правила

Представьте: вы на code review, и кто-то произносит страшную фразу: «Это не соответствует лучшим практикам». Ваше сердце замирает. Вы знаете, что ваш код работает. Он чистый, читаемый и эффективно решает проблему. Но почему-то вы чувствуете, что совершили программистский грех, потому что не последовали священным свиткам ортодоксального подхода к разработке программного обеспечения. Вот неудобная правда, которую индустрия не хочет признавать: «лучшие практики» часто являются просто «практиками, которые хорошо работали в чьём-то другом контексте»....

28 сентября 2025 06:01 · 5 минут · 1037 слов · Maxim Zhirnov
Почему большинству разработчиков не следует создавать свои собственные очереди обмена сообщениями

Почему большинству разработчиков не следует создавать свои собственные очереди обмена сообщениями

У каждого разработчика бывает такой момент. Вы проектируете новую систему, рисуете микросервисы на доске, и вдруг думаете: «Да насколько сложно создать собственную очередь сообщений?» В конце концов, это просто передача данных из точки А в точку Б, верно? Верно? Приготовьтесь, потому что я собираюсь провести вас через кроличью нору распределённых сообщений — и поверьте мне, эта конкретная кроличья нора уходит глубже, чем у Алисы. Соблазнительная простота «просто очереди» Будем честными: базовая концепция кажется почти оскорбительно простой....

27 сентября 2025 06:01 · 6 минут · 1079 слов · Maxim Zhirnov
Должны ли языки программирования запрещать военное применение? Дилемма Кодекса войны

Должны ли языки программирования запрещать военное применение? Дилемма Кодекса войны

Представьте: вы потягиваете утренний кофе и отправляете коммиты в свой любимый открытый проект, как вдруг осознаёте, что ваш элегантный алгоритм может управлять дроном на другом конце земного шара. Добро пожаловать в экзистенциальный кризис современного программиста — где каждый оператор if потенциально может оказаться вопросом жизни и смерти. Вопрос о том, должны ли языки программирования и их экосистемы активно запрещать военное применение, не просто философские рассуждения. Это реальные дебаты, которые ведутся в технических кругах и имеют реальные последствия для того, как мы создаём, распространяем и думаем о программном обеспечении....

26 сентября 2025 06:01 · 6 минут · 1122 слова · Maxim Zhirnov
Почему Технический долг - это не всегда плохо

Почему Технический долг - это не всегда плохо

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

24 сентября 2025 06:01 · 6 минут · 1082 слова · Maxim Zhirnov