Зачем нужен Zig, и чем он отличается от других языков

  Рет қаралды 13,425

Podlodka

Podlodka

3 ай бұрын

❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш tg-чат: t.me/+QE7Frg-mBCFkODEy
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков, а в комментах идут ценные и горячие обсуждения! 5 тысяч опытных ИТ-специалистов уже с нами: t.me/+0Jyxbr9kxmhhMTEy
В выпуске мы придумали идеальное описание языка программирования Zig - это DSL для машинного кода. И за этим определением кроется куча интересных концепций, начиная от брутальной простоты в синтаксисе и фичах, заканчивая метапрограммированием, основанном на comptime вычислениях. Погружаться в все еще редкий, но уже не эзотерический язык нам помогал Алекс Кладов, который использует Zig в разработке настоящего продакшн проекта - базы данных TigerBeetle.

Пікірлер: 82
@alogic75
@alogic75 Ай бұрын
Давайте, напоминайте Кладову, что он хотел записать серию учебных материалов про Zig. На русском же нет ничего.
@plur_ndbn
@plur_ndbn 3 ай бұрын
Пока Алексей не сказал "больше не смеётесь при слове малок" я как-то и не смеялся, а теперь постоянно представляю расу малоков из Космических Рейджеров
@nikitatimofeenko9351
@nikitatimofeenko9351 3 ай бұрын
Обновите выпуск про Rust пж
@Sneg00vik
@Sneg00vik 3 ай бұрын
Этот выпуск можно считать и про Rust в том числе =)
@MrCommanderKid
@MrCommanderKid 3 ай бұрын
Можно ли на Zig выводить “hi"?
@oriontvv
@oriontvv 3 ай бұрын
Больше и чаще Алексея. Спасибо за выпуск.
@oilcake4392
@oilcake4392 Ай бұрын
А он есть где-то еще в других выпусках?
@oriontvv
@oriontvv Ай бұрын
Тут вроде нет. Но у него еще есть отличные курсы по расту и питону, на которых довольно обширно в сравнении с другими языками подаётся материал. Слушать интересно, рекомендую.
@oilcake4392
@oilcake4392 Ай бұрын
@@oriontvv да, их я видел, как раз после этих видео ищу где еще его послушать. Имхо это великий препод, прям талант объснять.
@dmitriybradul7719
@dmitriybradul7719 4 күн бұрын
+1 Его и лекции Сергея Лебедева сильно улучшили мое понимание Питона
@ffunktor
@ffunktor 3 ай бұрын
Большое спасибо. Получил огромное удовольствие от просмотра. Алекс Кладов как всегда отлично объясняет.
@user-hi4dj9bx8n
@user-hi4dj9bx8n 3 ай бұрын
После слова ~constraint на 39:51 я ничего понять не могу. Подскажите что посмотреть и/или почитать, чтобы понимать что вообще говорит Алекс Кладов.
@vladzhukov6116
@vladzhukov6116 3 ай бұрын
Келли писал DAW В аудио программировании есть real-time-safety требования (audio callback должен гарантированно выполняться меньше чем определенное время). Думаю поэтому в зиге аллокаторы передаются как аргумент (а не как дженерик в расте) -- поэтому неявно вызвать аллокацию памяти нельзя. Во всяких эмбедедах тоже есть такие требования. Ну и в целом то что Леша сказал про "экспрессивность" тоже от этих требований.
@АнтонТрофимов
@АнтонТрофимов 3 ай бұрын
Шикарный выпуск! С большим удовольствием послушал!)
@vovergg
@vovergg 3 ай бұрын
Интересная тема, с удовольствием послушаю)
@vladzhukov6116
@vladzhukov6116 3 ай бұрын
про комптайм: Насколько долго занимает билд tb и сколько в нем кода? (Сколько из этого комптайм код?)
@alekseysazonov6828
@alekseysazonov6828 3 ай бұрын
А где обещанные ссылки на материалы, которые упоминает Алексей?
@user-jx4jb4of3c
@user-jx4jb4of3c 3 ай бұрын
Где обещанная ссылка на статью Алексея про выбор Zig для tigerbittle?
@OttogiMazik
@OttogiMazik 3 ай бұрын
Сомнительны ссылания про "тягостную незащищённость от выхода за границу буфера в С и С++", будто иметь проверяемый доступ с определением в строку-пару это сложно и строго запрещено программисту. Особенно в С++, где вместо sizeof доступны template + constexpr, даже не касаясь STL.
@user-yn4yu8tt2v
@user-yn4yu8tt2v 3 ай бұрын
Чего программисты только не учат, лишь бы плюсы не учить 😂
@Tosha.V
@Tosha.V 3 ай бұрын
Кладов молодец, умеет, могёт)
@sergeychin9561
@sergeychin9561 13 күн бұрын
Было бы лучше, если будет демонстрация кода в подобных подкастах.
@user-hk1jo3qr9q
@user-hk1jo3qr9q 2 күн бұрын
Очень забавный гость и истории у него очень забавные)
@user-su5by2uj6q
@user-su5by2uj6q 3 ай бұрын
Сложно о сложном)
@user-ws4st7lt9y
@user-ws4st7lt9y 3 ай бұрын
❤❤❤😊
@vladzhukov6116
@vladzhukov6116 3 ай бұрын
2:03:00 форматтинг с запятой также работает в, простите, Dart 😅
@usercommon1
@usercommon1 3 ай бұрын
Мой любимый Алексей
@LibertyOrGirl
@LibertyOrGirl 25 күн бұрын
"Мы все ссылки к выпуску приложим..." Эээ.. а где они?
@TheRedbeardster
@TheRedbeardster 3 ай бұрын
Ух, елы-палы! Леша!
@stephan_inside
@stephan_inside 3 ай бұрын
Ждём язык zag!
@RodshotOfficial
@RodshotOfficial 3 ай бұрын
Zag zag!
@AndroidsReview
@AndroidsReview 3 ай бұрын
А я жду про heil
@olekollo7875
@olekollo7875 2 ай бұрын
главное не hile
@PRiKoL1ST1
@PRiKoL1ST1 3 ай бұрын
Тоже avoid success at all costs?)
@act0r399
@act0r399 3 ай бұрын
Можно пожалуйста ссылку на серию постов о компиляторе Зиг ?
@plur_ndbn
@plur_ndbn 3 ай бұрын
Гугли "mitchell hashimoto zig"
@aleksay2142
@aleksay2142 3 ай бұрын
Gamedev, embedded, low level надо понять мир автора, чтобы понять откуда у зиг растут ноги по ряду решений… там за современные кресты могут на эротическое послать. А Руст просто иногда не применим, больше борешься с компиляцией, чем делаешь результат. Кмк
@user-ws4st7lt9y
@user-ws4st7lt9y 3 ай бұрын
Если бы Алексей одним глазком проверил ПО Роскосмоса, "Луна - 25" мягко бы села на Луну. Но нашим "царям" это не понять и не постичь...😢😢😢
@user-qu5xj4no5q
@user-qu5xj4no5q 3 ай бұрын
почему-то сразу подумалось, что zig может зайдет для embeded .... ... при разаботке на zig главное не зиговать.
@MaxiRPD
@MaxiRPD Ай бұрын
Не зайдет. Программирование руками на языке программирования в ембеддеде - это исключительно pet-project.
@simondiakov895
@simondiakov895 3 ай бұрын
Если в C или в C++ добавить проверку выхода за границы массива - придётся кидать исключение в плохом случае. Использование исключений при обращении к элементам массива замедлит язык и его использование будет удобным, но бессмысленным
@uniers
@uniers 3 ай бұрын
Согласен, проверка выхода за пределы массива не нужно. Ничего не мешает программисту самому писать проверки на предмет выхода за пределы массива. Затем в продакшн убрать все проверки или оставить, то есть внедрить дебаг режим
@user-sn9dy5sq1q
@user-sn9dy5sq1q Ай бұрын
​@@uniersдумаю, про это Алексей и говорил. В режиме сборки ReleaseFast в zig нет проверок выхода за границу массива. Примерно то же, что на си делаем условными директивами препроцессора, но видимо без бойлерплейта
@kyookuhmbuh
@kyookuhmbuh 16 күн бұрын
Сомнительное утверждение про необходимость использования софтварных исключений в данном случае, тем более в Си, где их нет. Никто не отменял fastfail-intrinsic, никто не отменял непродолжаемые исключения процессора, а также никто не отменял тот же abort из crt. Всё это добро так или иначе растет из прерываний процессора. И всё это уже давно прекрасно применяется в стандартных библиотеках, компиляторах и встроенных в них санитайзерах, для того и существуют отладочные сборки. В любом случае, деградация лежит в самой проверке на выход за границу, а не в выкидывании исключения или в вызове abort, так как исключительная ситуация на горячем пути не ожидается. Так же для проверки выхода за границу нужно знать эту самую границу, это знание скорее всего будет спрятано за абстракцией, потому что чудес не бывает. Эта самая абстракция будет или гвоздями прибита к компилятору и рантайму, а также спрятана за языковой конструкцией (rust way), или реализована в стандартной библиотеке или компетентным программистом по необходимости (C++ way).
@valerysmirnov9535
@valerysmirnov9535 3 ай бұрын
Создаётся ощущение, что докладчик не использует LSP. Для того, чтобы узнать какого типа создалась переменная - достаточно посмотреть в inline hint на этой же строке
@jerrygreenest
@jerrygreenest 3 ай бұрын
Про раст он это говорил не по той причине, что ты как человек не можешь посмотреть подсказку. Тут скорее аргумент в том, что у тебя тип меняться может от любой фигни, от любого маленького действия, и нужно дополнительные конструкции писать. А потом как эффект домино нужно добавлять ещё в другом месте конструкции, ещё и ещё. А здесь у тебя просто-понятно, компилятор слева-направо сверху-вниз читает все типы, - что дают то и хавает. В целом, мозгу легче прохавать такой прямолинейный код. Подсказки LSP это хорошо. Но чтобы эффективно работать, ты всё равно должен как бы «загрузить код себе в мозг» а не пытаться курить подсказки бесконечно. Ну я понял это так. Плюс компилятор в таком подходе работать будет быстрее, не нужно несколько раз туда-сюда прогон делать
@kyrd
@kyrd Ай бұрын
Докладчик - автор LSP-сервера для Rust
@valerysmirnov9535
@valerysmirnov9535 Ай бұрын
@@kyrd ты прав, но аргумент как будто исходил из предиспозиции как будто тебе необходимо понимать всё без LSP
@kyrd
@kyrd Ай бұрын
@@valerysmirnov9535 Это профдеформация: когда работаешь над таким тулингом, чаще обычного вынужден встречаться с багами и проблемами в нём, поэтому иногда приятно разрабатывать в экосистеме, где подходят и инструменты попроще.
@oriontvv
@oriontvv Ай бұрын
Ещё есть код-ревью например, и в целом код не только в иде могут смотреть
@user-be1ph3uf8l
@user-be1ph3uf8l 3 ай бұрын
Неужели за все прошедшие годы и десятилетия так и не был создан более современный вариант C? Т.е. такие языки, как PHP развиваются не смотря ни на какие "сложности", а модернизировать C программисты не могут? Если так и дальше дело пойдëт, то в ближайшие 3 года появится суровый компилятор Python, потом в Python добавят указатели, аллокацию, ассемблерные вставки и ...системное програмитрование войдëт в новую эпоху, мир захватит ОС Pynix полностью написанная на Python 5.x . Такие языки, как C++ и Rust станут уделом чудакоаатых маргтналов... А тех, кто не побоиться использовать C, Go, Java и даже JS будут травить так жëстко, чтобы не смогли дать потомства... Кому-то покажется, что сгущаю, но нет, только самую малость!
@oilcake4392
@oilcake4392 Ай бұрын
компилятор Python уже есть, также как и компилятор PHP :)
@ChannelCheesecake
@ChannelCheesecake 26 күн бұрын
Потому что старые языки с приходом новых фичей становятся только медленнее - это легко проследить от модели эксепшенов и динамического полиморфизма до лямбд и иммутабельных данных. Поэтому сделать норм системный язык очень трудная задача
@_HedgehogNSK
@_HedgehogNSK 6 күн бұрын
Всё очень intresting, но nothing понятно. Нужно больше details и смотреть какой fabric. Иначе not affordable.
@aquinary.
@aquinary. 2 ай бұрын
В zig мне не понравилась работа с мультистроками. Т.е. если вам нужно что-то где-то подправить, и нет под рукой редактора, который способен в мультикурсор - то страдайте. Ужасное решение авторов языка, переложить это именно на редактор.
@provereno-na-sebe
@provereno-na-sebe 3 ай бұрын
ждем в нем установщик пакетов Hail 🤡
@user-cq1dd4fs6j
@user-cq1dd4fs6j 2 күн бұрын
Zig а всем
@WounderVaflel
@WounderVaflel 3 ай бұрын
0/
@403wtf
@403wtf 2 ай бұрын
Плохие новости, ребят. Подлодка zigанула
@vozdyx9444
@vozdyx9444 Ай бұрын
А..... А..... А..... А.... А..... А....
@AMTVE
@AMTVE 2 ай бұрын
хорошо что в душ не сходил. столько воды
@maxm1079
@maxm1079 3 ай бұрын
потрывать руки тем кто пишет ЯП ради ЯП
@nevermind6270
@nevermind6270 8 күн бұрын
какая же соя
@cyrilanisimov
@cyrilanisimov 3 ай бұрын
Откуда берутся эти люди, кодящие на неспелых языках «в продакшн»?)
@codingjerk
@codingjerk 3 ай бұрын
Кто-то всегда должен быть первым
@Tosha.V
@Tosha.V 3 ай бұрын
@@codingjerk дак иначе он так и не попадет в продакшн)
@alexandergornostaev610
@alexandergornostaev610 3 ай бұрын
Make cpp great again
@norskiy9765
@norskiy9765 3 ай бұрын
Он всегда great и будет являться таким
@uniers
@uniers 3 ай бұрын
Старый конь борозды не испортит!
@kyrd
@kyrd Ай бұрын
"Мне нравится писать на авангардных языках, поэтому я сначала был в этом проекте, а потом пошёл в тот" это конечно так себе сознательный подход к карьере. В остальном очень интересно, спасибо.
@oilcake4392
@oilcake4392 Ай бұрын
не вижу ничего плохого в таком подходе. Наш домен держится на вдохновленных людях, что ж такого плохого что они что-то в жизни меняют в поисках вдохновения? Разве может быть какой-то "правильный путь"
@kyrd
@kyrd Ай бұрын
@@oilcake4392 Это безусловно не плохо, и многие наверняка хотели бы так же. Но как способ построения карьеры и "продажи себя" звучит не оптимально.
@user-qt5hy3vn5p
@user-qt5hy3vn5p 25 күн бұрын
За одно участие в разработке rust-analyzer его кандидатуру можно уже рассматривать без каких-либо вопросов. Этот опыт уникальнее и ценнее 99% коммерческой разработки очередного говна
@prayer4675
@prayer4675 3 ай бұрын
Посмотрел на перемотке. Ни одного примера кода, одна сплошная болтология в течении более двух часов. Спасибо не надо.
@user-qt5hy3vn5p
@user-qt5hy3vn5p 3 ай бұрын
Держи нас в курсе. Примеры кода нужны в подкастах😂. Может тебе ещё зачитывать их надо если ты в метро едешь слушаешь😅
@prayer4675
@prayer4675 3 ай бұрын
@@user-qt5hy3vn5p Примеры кода нужны когда обсуждается программирование, языки программирования и прочии IT технологии. Без них такие обсуждения превращаются в обычную болтовню. Тем, кто профессионально программирует такого рода болтовня неинтересна, о чём я и сообщил в исходном комментарии. Но ты волен потратить два с лишним часа своей жизни на любую фигню, в том числе и на эту. И да, я буду держать в курсе даже без твоего разрешения. Ведь мои комментарии читают не только такие как ты.
@4sat564
@4sat564 3 ай бұрын
чел, это шоу - подкаст. Смысл подкаста чтоб содержательной была только аудио часть
@prayer4675
@prayer4675 3 ай бұрын
@@4sat564 Мне такое неинтересно.
@uniers
@uniers 3 ай бұрын
Кто в теме тому все понятно
Is 2024 The Year Of Zig ?
48:20
ThePrimeTime
Рет қаралды 144 М.
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 8 МЛН
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 10 МЛН
НРАВИТСЯ ЭТОТ ФОРМАТ??
00:37
МЯТНАЯ ФАНТА
Рет қаралды 7 МЛН
Все про язык Dart
1:44:15
Podlodka
Рет қаралды 4,9 М.
Роман Проскуряков - Голый Rust
58:58
C++ User Group
Рет қаралды 9 М.
Обязательные знания для тимлида
2:31:44
zig will change programming forever
9:34
Low Level Learning
Рет қаралды 262 М.
Zig in Depth: Project Setup
21:47
Dude the Builder
Рет қаралды 7 М.
Trying Zig Part 1
1:30:00
TheVimeagen
Рет қаралды 88 М.
Why Zig in a world w/ Go & Rust? w/ AJ @coolaj86
1:07:20
Utah Zig
Рет қаралды 5 М.
Waka Waka 😁 #funnyshorts #rianashow
0:14
RianaShow
Рет қаралды 26 МЛН
Принципы...
0:23
Это точно смешно
Рет қаралды 2,4 МЛН