Комментарии 24
Спасибо. Куда полезнее, чем очередной перевод сомнительного срача.
Спасибо за статью!
На самом деле, в коммьюнити Rust и Go очень доброжелательные отношения как внутри, так и друг с другом. Фриков, которые обсирают «противоположный» язык, не любят ни там, ни там. Такие статьи, как эта — это очень здорово.
По коду.
Здесь много лишних действий. Вот так (для данного конкретного случая) будет проще:
В данном случае лишних аллокаций делать совершенно не нужно, и код получается чуть проще.
На самом деле, в коммьюнити Rust и Go очень доброжелательные отношения как внутри, так и друг с другом. Фриков, которые обсирают «противоположный» язык, не любят ни там, ни там. Такие статьи, как эта — это очень здорово.
По коду.
#[no_mangle]
pub extern "C" fn hello_from_rust(name: *const libc::c_char) {
let buf_name = unsafe { CStr::from_ptr(name).to_bytes() };
let str_name = String::from_utf8(buf_name.to_vec()).unwrap();
println!("go\t: {}", str_name);
}
Здесь много лишних действий. Вот так (для данного конкретного случая) будет проще:
use std::str;
pub extern "C" fn hello_from_rust(name: *const libc::c_char) {
let c_name = unsafe { CStr::from_ptr(name) };
let str_name = str::from_utf8(c_name.to_bytes()).unwrap();
println!("go\t: {}", str_name);
}
В данном случае лишних аллокаций делать совершенно не нужно, и код получается чуть проще.
На самом деле, в коммьюнити Rust и Go очень доброжелательные отношения как внутри, так и друг с другом.Поддержу! Вот например свежая цитата недели из еженедельника This Week in Rust:
I think if someone placed the Rust and Go community in a room and asked them to fight, we'd probably just all order pizza and geek out over languages. — Manish Goregaokar
Расскажи мне про любовь гоферов и растофриков, расскажи. Вчера в русскоязычной го-слаке растофрика просто растоптали, а на прошлой неделе, уже в англоязычной, обсирали cargo.
Повторюсь, Go и Rust это вечные враги и никакая дружба-печеньки это не поменяют.
Повторюсь, Go и Rust это вечные враги и никакая дружба-печеньки это не поменяют.
Похоже, что с вами не так уж и согласны.
Есть такие вещи, о которых обычно не говорят. Я не стесняюсь о них говорить, потому что я молодой, задорный и мне все по балде. Мне глубоко насрать, согласен ты со мной или нет, я оперирую фактами. А факты таковы, что сообщество, а в частности, русскоязычная и англоязычная го-слака, относится к Rust враждебно.
То как ты эти факты воспринимаешь — это твое дело.
То как ты эти факты воспринимаешь — это твое дело.
Вы может и молодой-задорный, но, что в данном контексте куда важнее, еще и глупый.
С удовольствием пишу на Go и всерьез поглядываю в сторону Rust, так как он впитал в себя немало из языков ML-семейства, а мне уж очень мил в свое время был OCaml. Ну и у всего моего окружения, кто пишет на Go, отношение к Rust от безразличного до откровенного интереса, и уж точно нет никакого негатива. Языки разные, идеологии разные, ниши у них едва пересекаются. А даже если они и конкуренты, что мешает просто посмотреть оба инструмента, выбрать лучший, а вторым просто не пользоваться, оставив его в покое? Нет, я не буду говорить, что больше нет «упорышей» вроде вас, но большинству нормальных людей недосуг враждовать с не нравящимися им технологиями.
С удовольствием пишу на Go и всерьез поглядываю в сторону Rust, так как он впитал в себя немало из языков ML-семейства, а мне уж очень мил в свое время был OCaml. Ну и у всего моего окружения, кто пишет на Go, отношение к Rust от безразличного до откровенного интереса, и уж точно нет никакого негатива. Языки разные, идеологии разные, ниши у них едва пересекаются. А даже если они и конкуренты, что мешает просто посмотреть оба инструмента, выбрать лучший, а вторым просто не пользоваться, оставив его в покое? Нет, я не буду говорить, что больше нет «упорышей» вроде вас, но большинству нормальных людей недосуг враждовать с не нравящимися им технологиями.
Похоже вам никак не переубедить токарей, что их металлообрабатывающий станок им не нужен, а нужен вами так любимый перфоратор.
> Вчера в русскоязычной го-слаке растофрика просто растоптали,
Я за этим наблюдал. Парень привел весьма славные аргументы, а с вашей (твоей в частности) были только слюни, пена и переходы на личности. Мерзость, а не сообщество у вас там.
Я за этим наблюдал. Парень привел весьма славные аргументы, а с вашей (твоей в частности) были только слюни, пена и переходы на личности. Мерзость, а не сообщество у вас там.
Ключевая фраза в русскоязычной.
Как показывает практика, люди компенсируются как могут, а за бугром, обычно, это не свойственно — меньше проблем, меньше протестов, и соответственно внутреннего напряжения которое нужно как-то высвободить. Эт я вообще о психологии, если кто не понял…
Как показывает практика, люди компенсируются как могут, а за бугром, обычно, это не свойственно — меньше проблем, меньше протестов, и соответственно внутреннего напряжения которое нужно как-то высвободить. Эт я вообще о психологии, если кто не понял…
rm -f "./main"
Shooting in your right foot :D The makefile style
Поскольку go может создавать только исполняемые файлы, коду на rust придётся побыть статической библиотекой.
Это неверно. Go собирается исполняемые файлы только для main-пакетов, для остальных пакетов на выходе получается статическая библиотека. С версии 1.5, Go уже умеет собирать «C archives», тоесть вполно себе можно делать вендорные пакеты.
c archive это что вроде с расширением .a?
С расширением .so тоже умеет, если вопрос в этом.
Вот теперь жить можно, спасибо. А статьи на эту тему нет?
А вот чтобы прямо статья — нету. Есть некий вот такой документ, есть безумный туториал. Но это всё только в 1.5 будет (в 1.5 beta 2 работает).
Go пока не умеет создавать стабильные статические и динамические библиотеки для линковки с кодом других компиляторов.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Почему Go и Rust не враги, а друзья