|
| 1.6, Аноним (6), 23:49, 03/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– | |
>вместо нулевых указателей
Остается пожелать ребятам реализовать его для десятка платформ. Получиться десяток zig.
| | |
| |
| 2.9, Аноним (9), 00:50, 04/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Опциональные типы не особо так отличаются от нулевых указателей, но нужен компилятор, который будет тихонько компилять в нули назад. Думаю, второй zig в это сможет.
| | |
|
| 1.7, Аноним (7), 00:24, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– | |
Использую его как кросс-компилятор, собираю программы под Linux и Windows (хост должен быть Linux). Очень удобно, всем советую, есть есть потребность!
Есть даже отдельный проект, который переводит C/C++ библиотеки на систему сборки Zig Build: https://github.com/AllYourCodebase
| | |
| 1.8, Аноним (9), 00:47, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Вот это действительно замена Си, а не обёртка над маллоком. Аллокатор там - библиотечный объект, а не часть языка.
| | |
| |
| 2.11, Аноним (11), 01:12, 04/10/2026 [^] [^^] [^^^] [ответить]
| –6 +/– |
К сожалению, замена Си не нужна. Си устарел не только и не столько на уровне языка, но и на уровне, простите за тавтологию, уровня - в современных реалиях он слишком низкоуровневый. zig эту проблему только усугубляет - там не только vtable придётся писать руками, но и аллокатор через всю цепочку вызовов таскать, а зачем, когда недефолтный аллокатор нужен крайне редко. То что написано на C останется на C, а то что будет переписываться, будет переписываться на go или rust. Ну и неадекватный BDFL + нестабильность ставят крест на применении для неигрушечных проектов.
| | |
| |
| 3.12, Аноним (12), 01:15, 04/10/2026 [^] [^^] [^^^] [ответить]
| +4 +/– |
Как там было в меме? Весь кровавый ынтерпрайз в основе держится на СИшной либе, которую мейнтейнит в свободное время чувак из Ванкувера.
| | |
| 3.13, Аноним (9), 01:37, 04/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
>аллокатор через всю цепочку вызовов таскать
Ставь лойс, если прокидывать данные научился только через цепочку вызовов.
| | |
| |
| 4.21, Аноним (21), 08:22, 04/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
А как еще? (неиронично спрашиваю, я любитель, написал на Zig ровно один маленький звукосинтезатор, и да, прокидывал аллокатор цепочкой вызовов. Не очень понимаю, как еще можно)
| | |
| |
| 5.37, pepe_watafa (?), 12:36, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Позвольте я спрошу у LLM-ок за вас:
'''
Не обязательно «таскать allocator через всю цепочку».
Есть несколько вариантов:
— передать его параметром — нормальный вариант для библиотечного кода;
— сохранить в 'self'/объекте и передать один раз при создании;
— положить в общий 'Context';
— привязать к lifetime подсистемы: arena, pool, frame/request allocator;
— вообще вынести allocation наверх и передавать вниз уже готовый буфер/массив/другой storage;
— выделить всё при 'init()' и дальше сделать runtime/hot path полностью без аллокаций;
— спрятать allocator в глобальном или thread-local состоянии, если осознанно устраивает такая скрытая зависимость;
— в отдельных случаях policy можно зафиксировать на comptime.
То есть проблема не в том, что Zig заставляет передавать 'Allocator' в каждую функцию. Zig заставляет явно определить, откуда берётся память и кому принадлежит её lifetime.
Если конкретной функции действительно нужна динамическая аллокация, allocator должен каким-то образом быть ей доступен — аргументом, через 'self'/context или через скрытое состояние. Магии тут нет.
А вот «allocator протаскивается через полпроекта» — это уже вопрос архитектуры и границ ownership, а не обязательное свойство Zig.
'''
| | |
| |
| 6.51, Аноним (51), 15:22, 04/10/2026 [^] [^^] [^^^] [ответить] | +/– | То есть таскать То есть таскать То есть таскать То есть таскать Это иррелевантно... большой текст свёрнут, показать | | |
|
|
|
| 3.19, Аноним (19), 06:33, 04/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– | |
>Си устарел не только и не столько на уровне языка, но и на уровне, простите за тавтологию, уровня - в современных реалиях он слишком низкоуровневый
Критерии устарелости в студию! Так пишут люди, которые привыкли к готовым конструкциям. Готовых конструкций в процедурном языке быть не должно, в принципе. Эти люди не осилили процедурную парадигму.
Либо примите язык таким какой он есть, либо валите на метапрограммирование. В любом случае инструмент берётся под конкретную задачу. Си процедурный язык и этим всё сказано.
| | |
| |
| 4.22, Аноним324 (ok), 09:05, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Си процедурный язык и этим всё сказано.
Ни одной программы на С в процедурном стиле так и не увидел.
| | |
| 4.52, Аноним (51), 15:23, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Готовых конструкций в процедурном языке быть не должно, в принципе. Эти люди не осилили процедурную парадигму.
Так пишут диванные теоретики которые кода никогда сами не писали.
| | |
|
| 3.43, Мемоним (?), 13:49, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> неадекватный BDFL + нестабильность
А что не так с BDFL? И ожидать стабильности от 0.17 как-то странно.
| | |
|
|
| 1.14, Аноним (14), 02:16, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Зачем этот язык существует, если на нём вообще больше ничего не написано?
| | |
| |
| 2.25, Аноним (25), 10:44, 04/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Слегка поправлю - "ничего ценного")
А зачем? Для самовыражения.
Ты слышал про ТемлОС? Там челу написание кода помогало лечить шизу.
Так и тут, вместо того чтобы быть никому ненужным фриком, чел теперь СОЗДАТЕЛЬ НОВОГО ЯП ЗИГ)
| | |
| 2.39, анонимус (??), 12:55, 04/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну например, эмулятор терминала Ghostty с 60K звёзд на гитхабе, поддерживающий клавиатурный протокол kitty (чем не может похвастаться ни один из нативных эмуляторов гнома/кде/хфце/итд)
| | |
|
| 1.16, bluesimus (ok), 03:39, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> в качестве современной замены языка Си.
Это как с Вовчиком, "убийцы" которого выпускаются разрабами чуть ли не каждый месяц уже несколько десятков лет.
> современную систему типов, созданную
> с огладкой на обеспечение безопасности и производительности
А какой смысл делать упор на безопасность? Инкапсуляция — это про безопасность? Или protected про безопасность? Или умение ssh пользоваться про безопасность? Или сборщик мусора про безопасность? Слово "безопасность" как-то вот превратилось в набор букв.
Ну и да, любой язык хочет быть производительным. Мысль из разряда: огонь горячий, вода холодная. Даже Питонический очень-очень хочет быть производительным, у него для этого numba есть. Ладно, у них "система типов, созданная с оглядкой на производительность". Как система типов связана с производительностью? Разве производительность не про непосредственно рантайм? Это всё не претензии к тому, кто новость печатал, на самом деле, просто попытки базово осмыслить новшество в сабже приводит к подобному.
> нулевых указателей, выравнивание по адресу как часть типа, целочисленные типы с
> размерностью от 0 до 65535 бит, кортежи и т.д.).
Мы сделаем "убийцу" языка С, используя в точности те же самые приёмы в коде. Удачи, что сказать.
> распространяется под лицензией MIT...
Вот бы ещё юристам было не плевать на лицензии, которые придумали прогеры шутки ради, у меня такое ощущение. Чтобы были.
Хайпожорство, а не язык, ес чесн. С++ в помощь, ошибиться с его выбором сложно, а если сам по себе язык кажется сложноватым, я могу только сказать: гит гуд.
| | |
| |
| 2.24, Аноним (24), 09:48, 04/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это люди не понимают смысл слова secure -- а это вовсе не "безопасность" или даже "безопасный". Смысл "обеспечение безопасности" или "охранение", а уж кому и от кого, это за рамками. Хинт, не тем, кому это втюхивают как нечто хорошее.
| | |
| |
| 3.27, bluesimus (ok), 11:06, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Это люди не понимают смысл слова secure -- а это вовсе не
> "безопасность" или даже "безопасный". Смысл "обеспечение безопасности" или "охранение",
> а уж кому и от кого, это за рамками. Хинт, не
> тем, кому это втюхивают как нечто хорошее.
Вообще, согласен с вами, если рассматривать наиболее широкую область кибер-безопасности.
В моём понимании, secure для разработки больше означает надёжность, последовательность, целостность, инкапсуляцию. То бишь, хех, безопасность от того, чтобы разраб сломал всё сущее, ОС там, другие проги, свою программку.
| | |
|
| 2.32, Прохожий (??), 12:18, 04/10/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
>А какой смысл делать упор на безопасность?
Если под безопасностью понимать надёжность, то смысл - в экономике эксплуатации. Взломает такой софт хакер или упадёт в самый неподходящий момент такой софт - пользователь получит убытки. Раньше, когда софт не был таким массовым, как в наши дни, на безопасность было плевать (кроме некоторых сфер, критических для жизни человека). Теперь - нет, потому что убытки могут быть огромными.
И да, в этом смысле, все готовые стандартные абстракции - это про дополнительный уровень надёжности.
>Как система типов связана с производительностью?
Напрямую, если мы говорим о сколь-либо сложных типах. Возьмите какой-нить хешмап, например, и подумайте, что произойдёт, если поменять в нём алгоритм хеширования.
>Разве производительность не про непосредственно рантайм?
Не только.
Я - не сторонник Zig, если что.
| | |
| |
| 3.40, bluesimus (ok), 12:57, 04/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Все приколы с кибер-безопасностью решаются идеальным образом с помощью физического барьера. Обращение к денежному вопросу весьма показательно. Если у вас есть выход в инет, ждите ддос. Ну, то бишь, потерю бабоса. Такова сетевая жизнь. Главное, хе-хе, "недополученную" прибыль не искать, её не существует.
В принципе, соглашусь с вашей мыслью о производительности. Связь есть, хотя оная кажется мне несколько мутноватой и косвенной.
| | |
|
|
| 1.17, Аноним (17), 04:57, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Внезапно, адекватный язык.
Выкинули древние костыли, и при этом не стали загонять в рамки «пишем так и только так, яскозал». Довольно строг, я пока хеловрот скомпилировал — попотел, сразу вспомнился старина паскаль, я авторов аж зауважал.
| | |
| |
| 2.26, Аноним (25), 10:47, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Выкинули древние костыли
Оно уже научилось use-after-free и остальные типичные ошибки СИшки предотвращать?
Если уже рекламируют как язык "безопасной разработки".
> при этом не стали загонять в рамки «пишем так и только так, яскозал»
До С++ с 14 вариантами инита ему все равно далеко))
| | |
|
| 1.23, Аноним (23), 09:36, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Язык для системного программиста, который точно знаем что он хочет. Хотя это не только язык, но и полноценный тулчейн (например, тут вам и настоящая кроскомпиляция и понятная система сборки на том же самом языке). Читать и самое главное понимать написанное не составляет труда (минимум абстракций и как следствие нагрузки на мозги, - не надо держать в голове целую кучу иерархии типов и быть мастером спорта по теории типов). Это и впрямь современный лаконичный Си. Удачи проекту!
| | |
| 1.30, Аноним (30), 12:08, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>[оверквотинг удален]
> var debug_allocator = std.heap.DebugAllocator(.{}){};
> defer std.debug.assert(debug_allocator.deinit() == .ok);
>
> const gpa = debug_allocator.allocator();
>
> const u32_ptr = try gpa.create(u32);
> _ = u32_ptr; // silences unused variable error
>
> // oops I forgot to free!
> }
А разве defer не являются точно таким же ручным управлением памятью?
| | |
| |
| |
| |
| 4.46, Разраб (?), 14:09, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
дефер лишь формализует паттерн.
в ди например это scope(exit) и им не ограничивается.
в сишарп через файнали
using(var x = disposable())
{}
| | |
|
|
|
| 1.36, Аноним (36), 12:26, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– | |
> Обновлены версии LLVM 22
Вот как надо: https://github.com/suidvandiewereld/Mettle.
> Mettle is a systems language where the toolchain is part of the contract.
> Require what the compiler must do. Read what it did. Check that it kept your program's meaning.
> Native x86-64, ARM64 and GPU code generation, with its own optimizer, linker, runtime and debugger. No LLVM, no VM, no GC. | | |
| |
| 2.42, Мемоним (?), 13:48, 04/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Из Zig тоже постепенно выпиливают LLVM. И свой кодеген уже вполне рабочий.
| | |
|
| 1.47, Разраб (?), 14:13, 04/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
кстати, один доктор философии пилит свой фрэйм clef-lang com за основу взят F# и его компилятор, в языке не используется сборка мусора, код чистый нативный, аналогично зиг используется арена аллокатор.
| | |
|