Zig

Не так давно на волне интереса к низкоуровневым языкам программирования, я не удержался и решил дать шанс Zig. Последнее время будто бы настал небольшой ренессанс интереса к системным языкам программирования, который будто бы начался с Rust в 2015 году. Rust будто бы давал обещание окончательно разрешить проблему безопасности при работе с памятью, что является ключевой проблемой для C/C++, которые были стандартом в этой области в течении многих десятков лет. Но будто бы с тех пор стали появляться новые языки, которые пытаются решить проблему безопасности, при этом лишь пытаясь “улучшить” Си, не превращаясь при этом в монструозный набор сложности как C++. Потребность в таких языках есть и в геймдеве (Jai, Odin) и в по настоящему низкоуровневых вещах вроде ОС и драйверов (Nim, Hare, C3) - хотя кажется, что за каждым из этих языков стоит определённый одиозный программист :).

[Read More]

Абьюзивные отношения с ООП

ООП было доминирующей парадигмой в программировании последние 30 лет. Для большого количества программистов ООП - это и есть Программирование, будто бы когда-то древние люди программировали в императивном стиле, а потом случился прогресс и пришло спасение, и все поняли “как надо”.

[Read More]

GNOME и вы

GNOME - один из двух “главных” десктопов (DE) на Linux, вместе с KDE. Для многих дистрибутивов он же “дефолтный” рабочий стол (Ubunty, Fedora) хотя опять-таки, многие из них не вносят определенные изменнения (Ubuntu яркий пример), поэтому это не совсем тот GNOME, каким он задуман разработчиками. После долгих лет скитаний по Linux десктопам сейчас он стал моим основным - начал с GNOME, на нем и закончил (на текущий момент :)).

[Read More]

Вайб-кодинг на Cursor

Vibe coding это новая ужасная/потрясающая тенденция в разработке. По сути люди без опыта в разработке собирают при помощи ИИ помощников полноценные коммерческие приложения и продают их пользователям за реальные деньги.

[Read More]

Проблемы с вставкой в Clickhouse

Clickhouse одна из самых крутых вещёй, с которыми я сталкивался в IT. Невероятно быстрая OLAP база данных, которая отлично работает как в облаке (есть решения через AWS), так и локально в составе одного единственного бинарника, который можно легко запустить из CLI.

[Read More]

Свободные Монады

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

[Read More]

Ещё один взгляд на TDD

Недавно в небольшом посте про TDD я жаловался на то, что этот подход к написанию программ сводит на нет креативностью в подходе к “исследованию” проблемы.

Но при этом меня не покидало ощущение, что я недопонимаю что-то важное в подходе TDD. Мой предыдующий опыт знакомства с TDD был связан с “Python: Разработка на основе тестирования” Гарри Персиваля, а также нескольких други отдельных постов о TDD.

[Read More]

Мини-обзор на Cursor - редактор кода с AI

В силу некоторых причин, я недавно отказался от подписки на OpenAI. И освободившиеся средства было решено потратить на Cursor - клон VSCode с тесной интеграцией с AI “из коробки”. До этого в основном использование AI ограничивалось обычным чатом с ChatGPT или подгрузкой небольших файлов в GhatGTP проекты.

[Read More]

Я не понимаю TDD

Test Driven Development (TDD) это один из очень уважаемых подходов к разработке и считается признаком высокой культуры подхода к разработке. Кроме того это одна из первых “больших” идей в программировании, с которой я познакомился через книгу Гарри Персиваля “Python. Разработка на основе тестирования”. Но недавно для себя я решил пока полностью отказаться от этой идеи, по крайней мере в собственных проектах, и вот почему.

[Read More]

Функциональное программирование и Roc

Использованием приёмов из функционального репертуара уже давно никого не удивишь - использование различных map, reduce и filter очень распространено. А писать как можно больше “чистых функций” рекомендуется повсеместно. И всё же даже используются такие вот функциональные паттерны опыт написания программ на привычном JavaScript или Python заметно отличается от “чистых” языков программирования - я практически могу гарантировать, что “функциональный код” на Python скорее всего будет по большей части императивным.

[Read More]