LINUX.ORG.RU
ФорумTalks

Адепты Rust переобуваются в Zig

 ,


0

4

Трололо? Не без этого. Но все же довольно интересно, как бывшие растоманы со временем догадываются о вырвиглазости своей серебряной пули.

Ниже по ссылке можно прочитать технические детали, но психологически все сводится к одной единственной цитате, которая, оглядываясь назад, прекрасно иллюстрирует и мой опыт использования убийцы C++:

I initially wrote this firmware in Rust, but despite years of experience with that language I still struggled quite a bit. I eventually got my keyboards working, but it took an embarrassingly long time and wasn’t fun.

https://kevinlynagh.com/rust-zig/

Что, ещё один убийца плюсов стал ещё одним подобием плюсов? Никогда такого не было, и вот опять?

Pavval ★★★★★
()

My first languages were PostScript and Ruby (dynamic, interpreted languages) and I later moved to JavaScript so I could draw on the web. That led me to Clojure (using ClojureScript to draw on the web), where I’ve spent much of my career.

In 2017 I decided to learn a systems language.

Адепты Rust

mimico
()

Справедливости ради, это мнение одного «physicist turned to hobby-web-developer». То, что он там написал о своем опыте с игрушечной клавиатурой и миганием светодиодами, ну никак не может быть свидетельством объективных недостатков rust по сравнению с другими яп, и главное, по сравнению с теми проблемами, которые раст таки решает лучше других.

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

Остальное просто детский лепет хоббиста. Только инет засирается такими вот бесполезными бложиками.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Ну жалуется компилятор при сборке spidermonkey (mozjs) в генту на unused unsafe блоки, а толку? Их много, а зачем непонятно так сходу.

grem ★★★★★
()
Последнее исправление: grem (всего исправлений: 1)

Это так уныло, что даже идти по ссылке лень.

WatchCat ★★★★★
()

Хз, зачем нужен этот Zig. Rust привнёс что-то новое в индустрию. И по-мне он является идеальным языком для любой ниши. Ну для веб-макак сложней, конечно, без GC, но ничего, можно научиться, я же научился. То бишь все языки можно смело выкидывать и переписывать весь софт от загрузчика ОС до лора на Rust. А Zig это просто перелопачивание всем известных концепций с новыми блестяшками. Возьми C++ и всё, там всё это уже есть.

PS кто там хотел на русский язык всё переписать - берите Rust, переводите слова и вот вам идеальный язык для того, чтобы переписать мир.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от buddhist

Делайте как хотите, но чтобы через две недели опыт 5 лет в сабже у вас уже был. (c)

wandrien ★★
()

Один чел пишет в своем блоге «Мне зиг нравится больше раста по следующим причинам: …». Анон на лоре: «Кококо адепты раста переобуваются в зиг». Какие адепты? Кто такой этот Кевин?

Aswed ★★★★★
()
Ответ на: комментарий от Legioner

Zig куда быстрее собирается. Еще в нем можно писать функции над типами примерно так:

// You can return a struct from a function. This is how we do generics
// in Zig:
fn LinkedList(comptime T: type) -> type {
    return struct {
        pub const Node = struct {
            prev: ?&Node,
            next: ?&Node,
            data: T,
        };

        first: ?&Node,
        last:  ?&Node,
        len:   usize,
    };
}

Правда, местный comptime неполиморфен по времени исполнения, и больше похож на consteval из C++20.

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

Ну и зашитый в язык Result оставляет неприятный привкус.

Siborgium ★★★★★
()
Ответ на: комментарий от Siborgium

По моему опыту выполнение кода во время компиляции очень отрицательно влияет на время компиляции. Если Zig взлетит, то во всех популярных фреймворках эту возможность будут дико абузить, что приведёт к тормозам компиляции.

Хз, я вообще отрицательно к таким вещам отношусь. Может я не прав. По-мне компиляция есть компиляция, выполнение есть выполнение.

Legioner ★★★★★
()

Прочитал статью.

Прочитал заголовок этой темы.

Как там принято в таких случаях говорить: блоггер изнасиловал журналиста?

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

ЛОРчую! У меня сейчас сын на учи.ру делает задачки на python, я даже жену этим тролю, типа смотри, даже он уже пишет программы на питоне, а я тебя года четыре не могу убедить начать.

shkolnick-kun ★★★★★
()
Последнее исправление: shkolnick-kun (всего исправлений: 1)

Больше технологий, новых и разных, красивых и безобразных!
Механизм разделяй и властвуй хорошо работает!
P.S. по теме: Почему нельзя для плюсов дописать библиотеку, чтобы она добавляла все фичи Rust? Почему нельзя также «расширить», чтобы получился Zig? Это же один раз пишется и используется всеми 100 лет? Или я что-то в этой жизни неПОНИмаю?

xwicked ★★☆
()
Ответ на: комментарий от xwicked

: Почему нельзя для плюсов дописать библиотеку, чтобы она добавляла все фичи Rust?

Не имеет смысла, реквест слишком расплывчат.

Почему нельзя также «расширить», чтобы получился Zig?

Нечему получаться. В Zig нет ничего принципиально нового.

Жирно.

Siborgium ★★★★★
()
Последнее исправление: Siborgium (всего исправлений: 1)
Ответ на: комментарий от Legioner

Может я не прав. По-мне компиляция есть компиляция, выполнение есть выполнение.

Всё, что можно сделать в buildtime, – надо делать в buildtime. Чтобы облегчить/ускорить runtime.

Частные, но вполне полноценные и показательные примеры – статическая типизация и автоматическое тестирование. Вы ж не станете утверждать, что и то, и другое плохо?

Ещё пример из моей привычной области – лёгкие ORM на AST-макросах, транслирующие статически-типизированные DSL в SQL. Прекрасно, что не надо это делать в рантайме. (UPD: Ведь по большому счёту, это тоже этап компиляции. Да и банальная кодогенерация используется очень много где.)

Да полно на самом деле юз кейсов. Мета-программирование – такая же мощная парадигма, как и ООП и ФП, причём все три друг дружке ортогональны, т.е. могут использоваться совместно. Помнится, не успели МП в скалу завезти, как тут же оказалось, что с его помощью можно некоторые части компилятора улучшить.

dimgel ★★★★★
()
Последнее исправление: dimgel (всего исправлений: 1)

Ну вы на эти import’ы поглядите…

Они как инопланетные для языка тут…

usingnamespace @import("register-generation/target/nrf52833.zig");
usingnamespace @import("ztron.zig");

pub const led = .{ .port = p0, .pin = 13 };
deterok ★★★★★
()
Ответ на: комментарий от Siborgium

Это кто-то из ЛОР'овцев напсиал?

реквест слишком расплывчат.

По ссылке выше, как раз о чём я и говорил. Они добавили мнимой безопасности, в ущерб скорости. Такие языки уже есть - Java и C#.

xwicked ★★☆
()
Ответ на: комментарий от Legioner

PS кто там хотел на русский язык всё переписать - берите Rust, переводите слова и вот вам идеальный язык для того, чтобы переписать мир.

Опередил!

hobbit ★★★★★
()

Да замечательный язык, хочу на него перейти, но в нем нет лайфтаймов и борров чекера, а без них я не могу. Кто проверит корректность многопоточного кода? Кто не даст пушнуть в вектор во время итерации? Опять я сам? Ну уж нет, хватит с меня плюсов

q0tw4 ★★★★
()
Последнее исправление: q0tw4 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.