Из тем слушателей к 0278. Простота Го - не всегда хорошо.
https://fasterthanli.me/blog/2020/i-want-off-mr-golangs-wild-ride/
- Рекомендация автора статьи: не читайте, если вы пишете на го.
Он будет делиться своей болью, и это может вам не понравится
- Пример - работа с ФС. Есть флаги ФС (директория, исполняемость, ссылка, пайп), которые есть в UNIX, но нет в Windows. Изменение флагов пройдет без ошибок в Windows, однако ничего в файле при этом не поменяется.
- Все пути - через
string
, лучше бы завести спец тип для работы с путями, чтобы корректно работать на UNIX/WINDOWS
- Автору не нравится интерфейс функции работы с метаданными файла (через бит флага), “в Rust лучше” (через вызов спец функции).
- Автору не нравится работа с не-UTF8 именами файлов. В Rust лучше, потому что надо вручную проверять. Верно, но какой юзкейс? Я, пожалуй, ни разу не видел намеренного использования UTF8-некорректных имён файлов.
_windows.go
суффикс для компиляции под Windows. _unix.go
для компиляции по Unix. Магия Go! (ужас, я согласен!)
- Странные аргументы “если вы проигнорируете error, то получите некорректный результат (null pointer), а Rust вернет вам Result, и надо оборачивать в expect”. Бред какой-то. Это просто другой способ работы с ошибками, и они полнотью эквивалентные. Можно аналогично обвинить Rust “Если при получении Result::Err мы будем использовать нулевой указатель в качестве результата - это ужас-ужас”.
- Очень странный аргумент, как правильно обрабатывать timeout в http-запросах. Это правда сложная проблема, ее не решить простым способом.
- Несколько наездов на плохую реализацию поддержки многоплатформенности. Вообще, это очень сложная задача - сделать хорошую поддержку одновременно UNIX и Windows, и я нигде не видел простого решения.
ИМХО:
- Автор справедливо критикует некоторые решения в stdlib языка, сравнивая с Rust. Однако это однобокое сравнение, есть наверняка места, в которы у Rust не всё идеально, и у Go всё лучше.
- Вся критика - стандартной библиотеки, про сам язык практически ничего нет.
- Много спорных моментов, которые очень странно освещены