Введение в Q#: Язык программирования для квантовых вычислений

Введение в Q#: Язык программирования для квантовых вычислений

Итак, вы решили погрузиться в квантовые вычисления. Смелый шаг! Пока ваши друзья всё ещё ищут ошибки в своих JavaScript-обратных вызовах, вы собираетесь отлаживать состояния квантовой суперпозиции. Спойлер: шутки про кота Шрёдингера обязательны в этой области, но я обещаю свести их к минимуму. Q# (произносится как «Кью-sharp», а не «Кью-хэштег» — да, люди делают эту ошибку) — это специально разработанный язык программирования Microsoft для квантовых вычислений. Думайте об этом как о C#, который поступил в аспирантуру по физике и вернулся с некоторыми поистине умопомрачительными возможностями....

17 октября 2025 14:01 · 6 минут · 1076 слов · Maxim Zhirnov
Оптимизация буферов протоколов в приложениях Go

Оптимизация буферов протоколов в приложениях Go

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

16 октября 2025 14:01 · 5 минут · 1018 слов · Maxim Zhirnov
Оптимизация производительности приложения Python с помощью Cython

Оптимизация производительности приложения Python с помощью Cython

Давайте поговорим о слоне в комнате: Python медленный. Я это сказал. Прежде чем энтузиасты Python возьмут в руки вилы, позвольте мне пояснить: Python не медленный из-за плохого дизайна. Он медленный, потому что ставит счастье разработчика выше сырой скорости. И честно говоря, обычно это нормально. До тех пор, пока не становится плохо. Когда ваше приложение начинает задыхаться от вычислительных задач, когда вложенные циклы становятся чёрными дырами производительности, когда ваши пользователи начинают сомневаться в своём выборе, ожидая завершения скрипта — вот тогда вам нужен Cython....

15 октября 2025 14:01 · 5 минут · 1038 слов · Maxim Zhirnov
Миф о безопасности Rust: Утечки памяти в предположительно 'безопасном' коде

Миф о безопасности Rust: Утечки памяти в предположительно 'безопасном' коде

Начну с признания, которое может вызвать недовольство в сообществе Rust: Rust не предотвращает утечки памяти. Вот, я это сказал. И прежде чем возьмутся за вилы, позвольте уточнить: это не баг, это особенность. Вернее, это продуманное дизайнерское решение, которое раскрывает нечто увлекательное о том, что на самом деле означает «безопасность памяти». Видите ли, когда мы, евангелисты, говорим, что Rust «безопасен в плане памяти», мы рисуем довольно широкими мазками. Нам нравится противопоставлять его C и C++, где висячий указатель может вызвать демонов через ваше нос (неопределённое поведение, для непосвящённых)....

15 октября 2025 06:01 · 5 минут · 962 слова · Maxim Zhirnov
Почему Ваш процесс собеседования по программированию нарушен (И Вы это знаете)

Почему Ваш процесс собеседования по программированию нарушен (И Вы это знаете)

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

12 октября 2025 06:01 · 6 минут · 1103 слова · Maxim Zhirnov