Обновить

Go и искусство ставить подножку разработчику: разоблачение

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.7K
Всего голосов 21: ↑21 и ↓0+25
Комментарии11

Комментарии 11

Только что запустил на Go 1.25.5, вывелось `[4 1 2 3 4]`

Проверила на коллегах - оказалось, что я не одна невнимательная
Каждый раз расширяясь, массив переопределяется в памяти и ссылка на первый элемент меняется, поэтому единственный валидный адрес находится в последнем элементе массива refs :)
Спасибо автору за необычные примеры

Инженеры Google понимали, что без подводных камней, необходимости знать детали реализации языка и неконсистентного синтаксиса не о чем будет спрашивать на собеседовании.

Явно ставилась задача — сделать язык достаточно простым, но не настолько, чтобы собеседование мог пройти любой новичок.

Разве это глупость какая-то? Или тут мета-ирония спрятана?

Теперь я не понял ваше сообщение.

У меня в статье просто ирония. Подводные камни в ЯП появляются не специально, а как трейдофф. Пример: выигрываешь в читаемости — проигрываешь в перформансе, и/или бойлерплейте, и/или времени компиляции.

Пропустил частицу “не”.

Разве это НЕ глупость какая-то? Или тут мета-ирония спрятана?

Го - кринге, а насчёт плюсов не соглашусь - довольно логичный и интуитивно понятный, без каких-то неожиданных приколов, язык (если специально не стрелять себе в ногу)

если специально не стрелять себе в ногу

Так можно про любой ЯП написать, про тот же Go. А с C++ не просто так же мемы появляются:

как выуычить C++ за 21 день

Это плюсы-то логичные и понятные?!? Пишу на них больше 15 лет, всё ещё продолжаю натыкаться на старые и новые приколы и стрелять по ногам совершенно непреднамеренно.

У вас код на расте как раз такой, как надо писать на го, чтобы не было проблем с ошибками. У вас в функции даже не участвует тип MyErr.

Чтобы соответствовать го необходимо написать:

let e: Option<Box<MyErr>> = None;

И поведение будет не такого, как описано у вас.

На Rust хорошо то, что по-другому написать не получится.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации