[О блоге] [наверх] [пред] [2020-04-01 17:33:29+03:00] [a3c691e50ec8b2e540ebd1ec234d47c424eed3e7]
Темы: [go]

Начал программировать на C

Прежде я только читал его и суммарно написал наверное 150 строк за всю
жизнь на нём. В отличии от Rust, меня особо нигде не воротит в нём. Да и
вообще не воротит. Но удручает после Go. Всякие мелочи типа "name *int"
vs "int *name" -- ну почему придумали добавлять звёздочку к имени? Не,
наверное причина есть, но в Go же в итоге сделали гораздо более
читабельно. Да и то, что вначале идёт типизация, потом имя (к которому
всякие звёздочки могут быть добавлены), потом возможно инициализация --
имя, получается, находится где-то в середине строки, что неудобно же. В
Go имя чётко находится вначале, всегда, детерминировано. Внимательно
просмотрел книгу Кернигана и Ричи -- вижу как много способов выстрелить
себе в ногу имеется и как же их много убрали в Go. Воситину, Go это C
каким он должен был быть!

Но в целом всё ожидаемо мною и мне нравится. Почитал про разные стили
написания C кода и... большинство меня отталкивают, особенно после
привычек в Python/Go. Ладно, как минимум, хотелось бы инструмент
автоматизирующий форматирование кода, аналогично go fmt. Попробовал
indent -- из коробки он сделал ужас (лично по мне), а man по нему
большой. А вот clang-format сделал всё очень даже ничего, только
величину отступа пришлось поправить. Я был шокирован, увидев что в C
нельзя оставлять запятую в конце последнего аргумента!

Высокоуровневые привычки (даже из Go) конечно терзают, но ничего. В C
реально прям много интересных подходов у K&R увидел, хотя большинство из
них мог бы отнести к yet another way to shoot your leg. C *гораздо*
сложнее и богаче возможностями самовыражения чем Go.

    [оставить комментарий]