Как стать автором
Обновить

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

Шикарная статья, спасибо. Столько примеров, что хоть в учебник. С "defer mutex.Unlock()" намучался когда изучал эту часть го.

Посмотрите другие статьи на сайте автора. У Амоса почти каждая статья столь же подробна.

Читаю Амоса с удовольствием. Кого ещё посоветуете по Rust и Computer Science?

Чисто из любопытства, а в этой статье про "ошибки, которые не ловит Rust" на каком языке кода больше? Мне показалось, что кода на Go больше (но не считал).

Автор прав что каждый язык по своему хорош, но я бы сказал что и каждый язык для своих задач. Нельзя точно сказать на каком языке кода больше, всё зависит от задачи. Например brain fuck, кода минимум, но что на нём можно решить?

Не, я не про то. Понятно, что языки разные и для разных задач.

Я скорее про то, что статья про Rust, а кода на Go как бы не больше.

Потому что на Rust часто показывается только финальный вариант + чуть-чуть борьбы с компилятором. На Гошных же примерах подробно объясняется поведение программы, как оно меняется в зависимости от разных деталей, где именно можно накосячить и как это исправлять. На расте сложно элегантно демонстрировать подобные проблемы, на самом деле.

ИМХО, статья скорее должна называться "какие ошибки ловит Rust, но не ловят другие языки".

"Было сложно, но мы всё таки заставили Rust упасть в core dump, включая unsafe"

Сразу учуял что автор по стелсу хейтит go. Нужно было больше примеров глупых ошибок.

Про js не к месту в начале только для легитимности сравнения добавил. Про go race детектор забыл. То что тип нуля int, а не выводится - плохо, но чую был бы это rust - это было бы очередное явное лучше неявного. То что в go основная модель разделения данных между потоками через каналы, а не мутексы, поэтому они и минималистичные - упоминать не будем. То что есть sync.Map - нет. То что в 1.18 есть библиотека constraints, чтобы не перечислять все типы - нет. Вообще вся статья будто эксперимент "если обезьяне дать две бомбы, какая взорвется быстрее?", что имеет мало общего с работой программиста.

В общем чел долго изучал теорию rust чтобы писать безопасный код. ЗП оказалась такая же что и у golang. Про безопасность спросили разок на атомной электростанции, оказалось что все остальные перезапускают упавшие контейнеры. Вот у него от грусти и включилась пропаганда. Другого объяснения этому странному сравнению желтого с коричневым объяснить я не могу

Про js не к месту в начале только для легитимности сравнения добавил.

Вначале идет речь о асинхронном программировании. Поэтому js обсуждается на равне со golang и Rust. Далее автор переходит к обсуждению многопоточности и связанных с ней проблем, упоминая, что для js это не актуально - потоки там есть, но для таких задач их не используют. Поэтому далее js не рассматривается. Очень лаконичное повествование, всё к месту.

То что тип нуля int, а не выводится - плохо, но чую был бы это rust - это было бы очередное явное лучше неявного.

Тут речь не о неявном преобразовании типов, а о том, что Rust может угадать тип переменной не только в момент ее присваивания, но и по тому, как она далее будет использоваться.

fn print_int(i: i32) {
    println!("Hello, int {}!", i);
}

fn print_uint(u: u32) {
    println!("Hello, uint {}!", u);
}

fn main() {
    let i = 42;
    let u = 42;
    print_int(i);
    print_uint(u);
    //print_int(u); // error
}

"если обезьяне дать две бомбы, какая взорвется быстрее?"

Здесь полностью согласен с формулировкой, но не согласен с оценкой. Это вся суть программирования - создать интерфейсы, библиотеки, языки которые очень сложно будет использовать неправильно. Если где-то можно допустить ошибку - она обязательно будет допущена, даже самым талантливым программистом.

Полностью согласен с вами. Ничего не имею против go и rust, выбор между ними зависит от ТЗ и ресурсов. Но мне отвратительно видеть в тексте про "Ошибки, которые не ловит rust" текст, который должен был называться "Ошибки, которые не ловит go, но ловит rust". Заголовок и подача отдают запашком пропаганды, которая меня дико раздражает

Сразу учуял что автор по стелсу хейтит go

Автор долго работал с Go и хейтит его за дело и явно.

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

Публикации