Dec. 20th, 2021

avva: (Default)
Программисты: как идут дела с Advent of Code у тех, кто продолжает этим заниматься?

Я где-то неделю не делал заданий из-за непредвиденных форс-мажоров. Теперь делаю по два задания в день, чтобы догнать. Сейчас закончил 15 и собираюсь к концу соревнования, к 25-му дню, догнать официальный график.

Пока что очень тяжелых не было. Мне нравится то, как каждый день разбит на две части, и вторая часть усложняет первую, но заранее не всегда ясно, как - она не открывается, пока не решишь правильно первую часть. Я обычно пытался угадать примерно, что будет сложнее во второй части, и подходит ли к этому мой дизайн. Два раза ошибся и пришлось для второй части писать по сути заново. Это было прикольно.

Я пишу на новом для себя языке Zig. Я бы описал его как попытку выжать максимум из парадигмы "C с человеческим лицом". По сути своей императивный язык без ООП и с ручной обработкой памяти, как C. Но, во-первых, хорошо продуманная система типов с runtime reflection и generic data structures. Во-вторых, очень много мелких удобств, облегчающих жизнь: type inference, безопасные массивы и указатели (проверка границ), безопасная работа с целыми типами (проверка на under/overflow, эксплицитное конвертирование), очень удобная поддержка slices, опциональные типы, гуманная обработка ошибок и еще много чего.

При всем при этом это остается языком довольно низкого уровня. Можно выстрелить себе в ногу и я несколько раз получал segmentation fault (держал указатель на элемент контейнера, не замечая того, и менял что-то в контейнере). Нет встроенного типа строки, которая передается по значению; вместо этого все передеают друг другу слайсы (указатель с длиной и известным типом) на существующую где-то в памяти строку, и чтобы создать другую ее копию, надо руками вызвать аллокатор.

В целом нравится!

February 2026

S M T W T F S
1 2 3 4 5 67
8 9 10111213 14
15 16 17 18192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 06:22 am
Powered by Dreamwidth Studios