Встроенная кросскомпиляция. Интероп с сисиплюсплюс. Можно использовать как компилятор для С/C++ (по слухам предельно быстрый), постепенно переводя кодовую базу.
Без скрытых потоков управления.
Без скрытых выделений памяти.
Без препроцессора и макросов.
Вместо препроцессора так же выполняется зиг код, но на этапе компиляции (comptime), то есть метапрограммирование на самом языке.
Сайт:
https://ziglang.org/ru/
Реддит:
https://www.reddit.com/r/Zig/
Гитхаб:
https://github.com/ziglang/zig
Что есть хорошего написанного на zig? Я только про river-wm знаю.
Объектиники elf и WinPE умеет делать?
Если да - посмотрю, если нет, то такой язык не нужен.
Это Лиза? Что-то как-то постарел Лизонька.
Тут раст не знают куда впихнуть, столько восторженных соплей, а все равно везде плюсы и не думают никуда переходить. А тут еще один системный язык.
В отличие от раста этот язык не пытаются запихнуть в глотку, как повесточку. И в отличии от раста этот язык очень простой, никакой ебли с боров чекером, цветных функций и лайфтаймов. Именно своей простотой он многих привлекает. Некоторые его вообще используют как компилятор для Си, говорят он быстрее, чем родные компиляторы.
да
Как у него обстоят дела с абстракциями? Читал, ооп с виртуальными фуркциями в нем нет, но вроде можно реализовать вручную несколькими способами. Не слишком ли много бойлерплейта придется писать, чтобы реализовать то, что в C++ есть из коробки? И Zig позиционируется, как улучшенный C, а многим ли нужен улучшенный C, когда есть несколько улучшенных C++ (rust, carbon, cppfront)?
>Как у него обстоят дела с абстракциями? Читал, ооп с виртуальными фуркциями в нем нет, но вроде можно реализовать вручную несколькими способами
Да, ООП нет, но так же как и в С или Go, есть структуры, к которым можно добавлять функции (В Go это делается не напрямую, а через ресивер функции), есть интерфейсы https://www.openmymind.net/Zig-Interfaces/
>Не слишком ли много бойлерплейта придется писать, чтобы реализовать то, что в C++ есть из коробки?
Наверное много но зачем опять же? Ты конечно теоретически можешь реализовать на одном языке другой, но это не всегда будет удобно, а тут это еще и не предполагалось. Вопрос примерно такой же как - "а не слишком ли много бойлерплейта нужно чтобы превратить С в С++?", да, много, но зачем это, если люди все еще пишут на С.
И ты же сам признаешь что зиг позиционируется как замена С, в первую очередь. По реализации ООП он вроде больше похоже на Golang со своими интерфейсами (который кстати оказался нужен, несмотря на несколько улучшенных С++)
Проблема с улучшенными С++:
- carbon очень медленно развивается, даже медленнее зига, и выглядит совсем умершим
- rust оказался переусложнен до невозможности и даже насильное запихивание в глотку, смешанное с форсом тренда не помогает, люди ливают (https://loglog.games/blog/leaving-rust-gamedev/).
- cppfront - об этом ничего не могу сказать, в первый раз слышу.
Пока, при условии, что люди пишут на современном диалекте, с умными указателями и не пытаются особо умничать в коде, С++у нет замены, он проще чем раст, более распространен чем карбон.
> а многим ли нужен улучшенный C, когда есть несколько улучшенных C++
Опять, сравнивая с С++, можно выделить основные преимущества - а именно скорость компиляции и отсутствие ебли с заголовками
Для многих людей это оказалось решающим, и скорость компиляции - это то, чего не может дать ни раст, ни С++
Раст не могут запихнут потому, что он невпихуем. Зиг же после си кажется просто удобнее, а не наоборот как с растом.
Нет никакой трудной кривой обучения, раст просто неудобный.
Тред тут не стартанет, раздел ели живет даже на топ языках, но интерес к зигу есть и это интерес именно системщиков, которые пишут на си, а не как в расте больше половины вчерашние питонщики на хайпе.
LANG
Действительно, куда лучше С, С++, D, R, Rust, C#, Go.
А еще когда-то радость мне доставил javascript, владелец рутора так боялся инъекции, что сделал автозамену на поиск по слову "javascript".
И тем не менее пишут
Это хороший вопрос, не знаю
Вроде как собирались пилить после асинков.
Хотя меня напрягает как некоторые системы прибиты к инету и к одной репе. И вроде как можно настроить, но в итоге такой пляс выходит, что ну его. И вроде опенсорс и вроде как очередной nuget получается. И вроде раст весть такой строгий и безопасный, но на пакет тянется тысяча пакетов с не читаемыми кодом и еще такими же не читаемыми макросами
Поидее можно было бы просто плагин к мавену запилить, но видимо пока желающих нет
ОП, хде контент и ньюсы?
Отрастил ряху, завно как растеры нались раста
https://www.youtube.com/watch?v=Oy_VYovfWyo&t=8s
Не понял, так в расте же тоже можно вручную управлять памятью или докладчик этого не знает?
Пусть зиг еще сырой и у него не такое большое сообщество, но туда приходят люди не под влиянием хайпа, а потому что видят настоящую замену Си.
Ну вот пусть и продолжается, я лучше буду донатить "расово верной цисгендерной хуемрази", чем фонду бесполезных обсосов.
Слова Эндрю про переход на свой бекенд к первой версии выглядят мрийно, но если такое действительно произойдет, так еще и с сохранением "бесшовной" компиляции Си кода, то это будет 10/10.
Мне понравилось что они отчитались за пол ляма донатов. Хотел бы видеть такой же отчет от успешных менджеров раста.
И я рад что растом начали наедаться, я говорил что он неудобный, а выдрессированные мне все говорили что я неосилятор. Что не лезет сова на глобус?
> Хотел бы видеть такой же отчет от успешных менджеров раста.
Ага, конечно)
Так сидит подобная ГНОМУ шобла-ебла, с целями которых можно ознакомиться здесь.
https://foundation.gnome.org/strategicplan/
>Без скрытых потоков управления.
>Без скрытых выделений памяти.
Это как? Каким образом гаранируется?
>Без скрытых выделений памяти.
Ручками передаешь аллокатор. В теории это дает возможность подсунуть тестовый аллокатор, который определит утечку.
На практике хз что там и что мешает разработчикам либ забить на это и создавать свои внутренние аллокаторы.
Вот если это было бы какая-то метовая настройка, все все аллокаторы подменялись на твой - это имело больше смысл и меньше бойлерплейта.
Опыт зиг больше показывает что системщикам нужен новый яп, не такой костыльный как раст и но с существующим.интеропом
> >Без скрытых потоков управления.
Ну просто тем что нет перегрузок функций, операторов, виртуальных еба-деструкторов, динамического распределения.
> >Без скрытых выделений памяти.
Стандартная либа написана так что любой пук требующий аллокаций будет принимать аллокатор и собственно задавает стандарт как надо делать. Но де факто никто не мешает тебе внутри твоей либы взять и сделать выделение памяти без предупреждения.
Вообще ровно также как и виртуальные функции. Просто если в крестах компилятор автоматом строит таблицу указателей для каждой реализации интерфейса и передаёт ссылку на объект + ссылку на таблицу, то в zig-е просто это делают ручками.
Предположим тебе нужен интерфейс вида:
void foo(self)
void boo(self)
Ну тебе просто надо создать объект-интерфейс
Const interface = struct {
Указатель на функцию foo
Указатель на функцию boo
Указатель на сам объект
}
Ну и собственно в твою реализацию добавляешь функцию которая создаёт и заполняет эту структуру-интерфейс.
>никакой ебли с боров чекером
Вкатун спок, если ты имеешь представление как оно работает в памяти и хоть раз прочитал растбук, то легко можешь понимать по каким правилам он будет работать.
А вообще если хочешь простоты, то тебе в го
>А вообще если хочешь простоты, то тебе в го
Зачем у меня ест ьтакая же простая как го джава, только более удобная чем го
Кста создатель Зига сделал его потому что его заебал боров чекер
https://www.youtube.com/watch?v=-_wqd1siX24
Вообще интересные фишки у зига, понравилась поддержка разворачивания циклов самим языком и блоковые алиасы типа |x|
> carbon очень медленно развивается, даже медленнее зига, и выглядит совсем умершим
Даже если ещё не умер, то умрёт. Точнее, будет убитым https://killedbygoogle.com/.
Он потому и не популярен наверное, что люди просто боятся вкладывать свои силы и время в поделки гугла.
Го, дарт, у гугла какая-то проблема с разработкой языков. Вероятно он не хочет сильно вкладываться, хочет на шару. Но прокся для С++ это не то, что может выстрелить случайно на удачу.
Скорость компиляции нужна интерпритируемым языкам, а не системным. Тем более тому кто претендует на замену Си надо смотреть на скорость итогового кода а не на скорость его высирания, иначе во время выполнения программы на каком нибудь dsp будет пук среньк.
> скорость компиляции
Почему хелловорлд 2 секунды собирается и весит как моя мама? Через систему сборки он вообще чёто там 15 секунд фурычит.
Раст просто неудобный. Он хорош только в теории, а на практике в нем масса нерешенных проблем.
В последнее время появляется все больше статей/отзывов-разочарований про то как плох раст лол.
Интересно каков Зиг.
Забавно что Primeagen назвал раст коммьюнити одним из самых токсичных лол. Там на самом деле ЧСВшный неадекват происходит.
>В последнее время появляется все больше статей/отзывов-разочарований про то как плох раст лол.
Половина от неосиляторов, которые написали хэлоуворд и пару циклов и пошли стонать, а вот именно о проблемах практически никто не говорит.
На самом деле к расту надо относится как к чему-то новому, там столько фишек интересных появилось, плюс некоторые как например монады были только в совсем задротских языках типа хаскеля, а тут реализовали Result и Option в стиле монад. Что-то полезное типа оператора match, которые появляются в других языках, что-то говно собачье типа лайфтаймов, короче как у всего нового есть свои плюсы и минусы.
За пару лет работы скажу что если сравнивать с гошкой, которая сейчас везде используется и применять раст в той же нише для бекенда, то в отличии от го поддерживать код после того как проект развивался крайне приятно. Тут иммутабельность, все имплементации явные (даже если кодогенерация макросом), компилятор вообще красавчик там встроен мощнейший линтер, обработка ошибок лучше, трейты в разу лучше утиных интерфейсов, дженерики дают пососать и много других приятных мелочей. В го ты сука постоянно должен напрягаться, от работы со слайсами до горутин и того что вокруг этого (мьютекс, вейтгруппы, каналы) в расте если брать tokio оно все в разы удобнее сделано и работает более очевидно.
>Половина от неосиляторов
Как раз нет. Сейчас буллшит об неосиляторах уже не работает придумайте новый, пишут именно те кто наелся. Просто кому-то нужно пару раз удариться головой, а кому-то надо весь лоб разбить чтобы понять суть.
Зиг выстрелит или нет, не важно, главное он показывает что нужно системщикам и людям в общем.
МакРяк
Я слышал, классная штука, жалко в массы не пошла
>придумайте новый
Ну ладно, тогда просто душевнобольные. В растотреде такой уже давно пасётся, хуй знает чего их так привлекает. Ты погоди если zig выстрелит они и к вам припрутся
У зига нет агрессивного маркетинга, пытающийся впихнуть его везде, отсюда нет неадекватных фанбоев и не будет токсичного коммьюнити.
Если сова прекрасно налезает на глобус, собирать питон программистов в системную разработку не нужно.
Если нет пользователей, сова легко натягивается куда угодно на словах, всё равно никто не узнает что получится на практике (ничего). Поэтому говно избегает пользователей препятствуя разоблачению.
Люди просто берут и работают, без маня статей об успешном успехе. а потом обратно сливаются, хайп ради хайпе. Пока донаты идут, эта херня живет, на практике раст очень неудобен и кривая обучения тут не причем.
>Пока донаты идут
Вот именно. Сначала делаешь громкое заявление на переворот мира, привлекаешь спонсоров, а потом тянешь обещания на тормозах 10-20-30 лет сробирая донаты. Классическая модель развода как у известной вапорваре-игры Star Citizen:
>"Чото пилим , вроде перспективно (на словах), но результат планируется когда-нибудь в неопределенном будущем"
А донатики давайте сейчас, надо же двигать прогресс к светлому будущему коммунизма. Короче имитация активности ради попила бабла.
А техи откуда берутся, если кабан не шарит? Именно с сеньеров-помидоров и начинается, а там он или тупой и повелся на рекламу или же потестил и даже о рисках подумал. бред, конечно, снова взял раст, а потом закат ушел
>Вот именно
Я про это и говорю, там же пласт успешных менеджеров от мозилы откололся. Им важнее хайп, драмы, политика, ибо забвение донаты не приносят.
Тут даже причина еще в том, что раст очень неудобный, его поддувать постоянно надо.
Раст как трансы с пидорами, его уже выбрали жиды с бесконечным баблом на поддув. Разве не видишь, что пидарасня мерзкие уроды, а не люди, но это не мешает их форсить, вот и раст то же самое, плевать насколько это уебанский недоязык, это не мешает его форсить из каждого утюга, наоборот, именно за это его и форсят - нагадить, развалить, в чём цель жидопропаганды и состоит, найти говно повонючей и измазать в нём весь мир, на отряды разбрасывателей и мазателей говна у них средства есть.
https://www.youtube.com/watch?v=IroPQ150F6c
Ты так быстро торопился написать своими маленькими ручками, что даже не успел прочитать следующее предложение.
>Вместо препроцессора так же выполняется зиг код, но на этапе компиляции (comptime), то есть метапрограммирование на самом языке.
Накидайте мб годных материалов? Чтобы приятно читалось.
Алсо вот https://www.youtube.com/watch?v=NAOOGB1q6uQ
Каких например проектов?
В С++ есть и макросы и есть constexpr. Это как бы разные понятия. Макросы это то что обрабатываются препроцессором. Препроцессор ничего не знает о языке, это для него тупо текст. А выражения времени компиляции обрабатываются компилятором который знает про типы, языковые конструкции и тп.
Если говорят, что в языке нейм нет макросов, то наверно понимают под этим такое разделение как в Си++
>Microsoft переписывает код ядра и некоторых библиотек Windows на языке Rust
>Microsoft запустила экспериментальный проект по разработке собственного языка программирования Verona, основанного на Rust. По данным CNews, Microsoft планирует переписать на новом языке некоторые низкоуровневые компоненты ОС Windows 10
Как же БЛЯДЕЙ КОРЁЖИТ — любо дорого смотреть.
Ой, как так получилось, что "ненужные" golang и rust оттяпали свою мировую долю? Эт чо получается, мегакорпорации могут тупо бросать в инженеров чемоданы с баблом и чисто по приколу плодить языки конкуренты крестам, забираю всё больше больше ниш у последних?
На очереди кстати carbon от гугла и verona от майки. Оба проекта будут иметь обратную совместимость и оба окончательно отожмут у лохов-фанатиков Страуструпа их плюсплюсолку через отмену этой самой совместимости, когда паства большим числом перекатиться на эти проекта.
Ну а нишу чистой сишки отожмёт zig, да.
>скратч и руби в рейтинге а не на помойке
ого как неполживо
>>277321
карочи ближе к ночи
как мне на зиге без макросов прописать алисасы доступов к полю подструктуры структуры?
в сишке я бы просто ебанул
#define alias struct1->field->subfield
а потом бы сделал
#undef alias
вернусь через месяцок посмотреть ответ
Чувак, у тебя там делфи и vb популярнее пхп - у которого количественная доля до сих пор около 70% всего веба. И котлина, основного языка андроид разработки.
Ну да, нарастающий успех кобола, просто уже стеб в лицо.
Там скорее всего сидит такая же маня как ты, далекая от айти и рисует циферки рандомно.
>На очереди кстати carbon от гугла
У гугла какая-то проблема с созданием языков, судя по тому когда был анонс и какой сейчас статус проекта, можно даже не вспоминать. Чувак из зига сделал больше чем эта команда.
Да и ты видел дизайн языка? Там опять людей из криокамеры вытащили, им даже уже на ютубе мимокродилы намекают чтобы они посмотрели на последние достижения в разных языках, а не делали очередной допотопный высер как го.
>и verona от майки
Эти умеют делать языки и смежные технологии, но они закрыли этот проект.
Зачем? Зиг это хорошая, возможно идеальная альтернатива си, а си по дефолту прекрасен.
Альтернатива прекрасному это что?
> возможно идеальная альтернатива си
Нет, неидеальная. Разработчик у него не такой как все смузихлёб. И обработка ошибок говно. И что-то ещё наверное, что я ещё не вспомнил.
ПИЗДЕЦ
Поверь, то что ты ливнул, зиг от этого только выиграл.
Детские языки тут:
https://2ch.hk/pr/res/3284682.html (М)
https://2ch.hk/pr/res/3287398.html (М)
>мы сделали нечитабельный синтаксис
>@
>а вот у питона
>а вы техдолг джиэса видели
>толька выйграле
Чел ну придирки к синтаксису в 2к24 это чет на джуновском. Типа знаешь, когда придираются к синтаксису создается впечатление что язык реально пиздат, ибо никаких притензий кроме вкусовщины нет.
>называть буквально единственное предназначение яп вкусовщиной
>примерно почувствовать что язык реально пиздат потому, что неудобен
это не боевые, залетуха
Как ты относишься к perl?
echo "test... test... test..." | sudo perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}
<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
> rm: it is dangerous to operate recursively on '/'
> rm: use --no-preserve-root to override this failsafe
Ну что ж ты, бэтмен, ключ зажопил?
>называть буквально единственное предназначение яп вкусовщиной
Единственное предназначение ЯП это чтобы тебе нравился синтаксис с эстетической точки зрения? Ебат капат
>>291707
Обфускация это не про плохой синтаксис, это про плохую безопасносить. Ты же понмаешь что нормальный код на перле так не выглядит?
Мне в каждом яп что-то нравится что-то нет, как может все вообще нравится, да еще постоянно какие-то подводные.
Какие же вкатуны дегенераты.
>Ты же понмаешь что нормальный код на перле так не выглядит?
Понимаю, там нормальный код не сильно от этого отличается
>Понимаю, там нормальный код не сильно от этого отличается
Тем временем регекспы из перла унаследовали чуть ли не все языки и с удовольствием кушают их
>Так я сам можно сказать сишник, сишники не могли такого говна наклепать. Скорее это JS дауны которые решили себя сишниками почувствовать.
Правда где-то в середине, автор этого поделия одновременно и сишник и джаваскриптизер
>>291857
> Так я на С++ пишу уже десяток лет,
Кому ты пиздишь, клован, по твоим выделениям видно что ты вчера курсовую сдал и после этого к языкам не притрагивался.
Там причем масса вопросов, по коду что например вот это за хуйня try parseInt оно что цикл с ловушкой исключений формирует, как это вообще работает?
Я знаю в свифте и скотлине есть вот эта залупа козлиная hruk.?puk.!kukarek а тут типа zigанутый придумал try оператор просто использовать и что будет если исключение прилетит в переменную/массив что запишется?
Или это программист дебил?
>Там причем масса вопросов, по коду что например вот это за хуйня try parseInt оно что цикл с ловушкой исключений формирует, как это вообще работает?
Просто археологические раскопки, сидим гадаем что же может этот знак у древних значить, неужели эксепшены затаились?
Цирк дебилов.
>Так я на С++ пишу уже десяток лет, нахуй мне ваша параша с даунским синтаксисом.
Кто тебя заставляет, ты никто и никому не нужен.
>Там причем масса вопросов, по коду
Лол, так я даже дальше не смотрел.
Если ты на улице видишь говно лежит, ты его что дальше рассматриваешь и изучаешь?
>>291990
Ну да, тото наверное мне все хрюши из бигтехов спамят нонстоп с предложениями, когда у меня даже резюме не опубликованно))
Это ты со своим зигом нахуй не нужен, я уверен там 0.0 вакансий на эту парашу.
>Если ты на улице видишь говно лежит, ты его что дальше рассматриваешь и изучаешь?
По аналогии ты сейчас буквально сидишь и ковыряешься в говне.
>Ну да, тото наверное мне все хрюши из бигтехов спамят нонстоп с предложениями, когда у меня даже резюме не опубликованно))
Чувак, либо ты малолетний фантазер, либо взрослый лоб с тотальными проблемами в самооценке, ты даже не представляешь как твои посты выглядят наивно.
>Это ты со своим зигом нахуй не нужен, я уверен там 0.0 вакансий на эту парашу.
Мне срать, инструмент тупо решает мою задачу. Сегодня я к железке написал на сях/зиге, завтра на работе я пописал на шарпах, потом на мобилке пописал на котлине, а потом другу помог с джаваскриптом и го. Язык программирования - не религия, это набор технических решений и пока убер спонсирует нужную мне теху в зиге, я могу позволить себе покодить на нем.
Ну и это нормально у зиганутых?
try parseint
try .append(value)
То есть ловить дропать исключение
пытаться добавить неинициализированную перемесенную (она не добавится при исключении как я понимаю)
А потом два цикла обрабатывать как будто они ровные
for (arr1, arr2) |a, b| {}
Вы вообще вменяемые, нет?
>>292000
То есть плюсовик со стажем увидел std и порвался? Ты сразу палишься по таким мелочам, пидорастер, иди библиотеки с си переписывай, солнце еще высоко.
Ору с твоего коупинга и попыток принизить меня, лол. У кого проблемы с самооценкой - это точно у тебя. В твоих постах прям чувствуется как горит твоя жопа 🤭🤭🤭
>шарп, котлин, жс, го
Мог бы сразу это написать, что ты умственно отсталый, лол. Тогда бы твоё мнение по дефолту не учитывалось.
>>292040
> увидел std
Так я не про std а ублюдскую js конструкцию инклюда где еще ублюдский строковый литерал почему-то используется. Просто пиздец. Ну сразу видно, что создатель жс дебил.
>шарп, котлин, жс, го
>Мог бы сразу это написать, что ты умственно отсталый, лол.
Нефига пердак порвался.
Нет там исключений. Ты увидел около-знакомую конструкцию и пытаешься ее интерпретировать в границах своих познаний, даже знакомство со свифтом тут тебе бы помогло больше, чем твои догадки.
> Так я не про std а ублюдскую js конструкцию инклюда где еще ублюдский строковый литерал почему-то используется. Просто пиздец. Ну сразу видно, что создатель жс дебил.
Ты имеешь в виду ноду-жс которая представляет из себя плюсовую библиотеку предоставляющую джаваскрипту загрузку модулей через функцию require("fs")
Ты обосрался клован. Это не инклюд динамический импорт прямиком из D, который навеян костыльными решениями для с/срр.
А в джаваскрипте экмаскрипте в итоге сделали по своему
import { x } from "puk"
import "puk" as kukarek
>Ты имеешь в виду ноду-жс которая представляет из себя плюсовую библиотеку предоставляющую джаваскрипту загрузку модулей через функцию require("fs")
>
>Ты обосрался клован. Это не инклюд динамический импорт прямиком из D, который навеян костыльными решениями для с/срр.
>А в джаваскрипте экмаскрипте в итоге сделали по своему
>import { x } from "puk"
>import "puk" as kukarek
Сорта говна
Так я не знаю зиг и тупо предположил, вот и спрашиваю. Но исходя из кода это судя по всему так и есть - try без блоков это аналог вопросов, поскольку parseint возвращает число но в нем самом может что то произойти, например недопустимый символ или еще какая хуйня, и "системный программист" на зиге пытается это отловить что бы пропустить, а потом в два массива один из которых явно вариативной длинны, закладывает параллельную обработку.
Это не системное программирование, это вам в веб дорога с такими приколами.
>>292099
смысл кидать доку говна в котором трай кетч решили использовать не как трай кетч?
может еще свич тут это алиса на антил какой нибудь?
язык говна, не заслуживающий жизни
и писать на нем коммерцию ты не можешь себе позволить ибо кабану светит х5 цена поддержки этого говнокода на говноязыке
посему кратенький вердикт - зиг это желемышь для домашних поделок и не более
не забудь маме рассказать, как тебя обидели на двощах
>А потом два цикла обрабатывать как будто они ровные
>
>for (arr1, arr2) |a, b| {}
А если у массивов размеры разные?
В Зиге не любят массивы разного размера, так что проваливай из треда.