S2, E7: Taking the warts off C, with Andrew Kelley, creator of the Zig Software Foundation

  Рет қаралды 17,914

Sourcegraph

Sourcegraph

Күн бұрын

Пікірлер: 38
@steveoc64
@steveoc64 3 жыл бұрын
Probably the best tech interview of 2021, across all subjects. Makes a compelling case. I think in the next few years, Zig is gonna be the new Go. Minus the "backing" of Google of course, but I also suspect that time will prove thats a feature not a bug
@lizzyfleckenstein9837
@lizzyfleckenstein9837 2 жыл бұрын
I don't think Zig is gonna be the new Go, because Zig and Go have different use cases. Why Go claims to be "C for the 21st century" is beyond me. Go is a garbage collected language, and only a little faster than Java. I hope Go is going to replace a lot of the bullshit like Java, JavaScript, PHP, Python, Ruby etc. etc. Go is opinionated and not flexible; some things can't really be done in Go. Which makes Go a great tool for many things, but definitely not a replacement for C(++). Zig and Rust on the other hand actually compete with C. And I just hope that Zig wins.
@steveoc64
@steveoc64 2 жыл бұрын
@@lizzyfleckenstein9837 100% agree on all points there. I should have qualified what I meant by "The New Go" - was more in terms of being the new darling on the block that every dev wanted to get into, and rewrite all the things. Also agree that Go is superb for what its good at, and dreadful for anything much outside of that. We dont see that happening with Rust ... maybe thats because Rust makes the assumption that all problems are memory ownership problems, and programmers are incapable of writing simple code all by themselves. ? dont know,. I too hope Zig wins - but not too bigly. Popularity has ruined a good many ideas.
@sybekon
@sybekon Жыл бұрын
...and here we are in 2023. Zig programmers are now the highest paid programmers in the world. Plus Zig is now faster than C or Rust! Amazing!
@wabilemotswasele8705
@wabilemotswasele8705 2 жыл бұрын
I guess it is time to learn and practice some zig programming. Thank you for the insightful discussion.
@manums__
@manums__ 2 жыл бұрын
the top, when I installed soft soft (restart didn't help). I have a creative softblaster z softcard. I'm assuming it has sotNice tutorialng to do
@epmek96
@epmek96 3 жыл бұрын
super fun listening to you guys!
@AnitaSV
@AnitaSV 2 жыл бұрын
7:07 c++ is known for not having enough features. Lol 😆
@LewisCampbellTech
@LewisCampbellTech Жыл бұрын
I'm so curious if Andrew knew about the ML (metalanguage) world when he came up with comptime, it shares a lot of similarities with higher order modules and functors.
@miguelangelminambresprieto7348
@miguelangelminambresprieto7348 2 жыл бұрын
Boas, muito obrigado pela dica Sr Mr AndyPee, Muitos Abraços.
@masmullin
@masmullin 3 жыл бұрын
Fantastic discussion.
@stephenkoller89
@stephenkoller89 2 жыл бұрын
Liberty BASIC! Now that's a throwback!
@familyshare3724
@familyshare3724 2 жыл бұрын
Fantastic talk. Thanks.
@SimGunther
@SimGunther 2 жыл бұрын
Would be great to ask Andrew what the Tao of Programming is? My answer would be: 1. Forward data flow 2. Conditionals/branching 3. Feedback loops 4. Parallel/concurrent functions 5. Reduce from parallel functions Clojure seems to be the closest to hitting all 5 of those things reliably. Not sure what any other language would bring to the table in this respect other than bringing a familiar C syntax and high level zero-cost abstractions to help people make the most of this "Tao" of programming in their code.
@ovi1326
@ovi1326 25 күн бұрын
The Dao that can be named isn't the eternal one. You can say however that building abstractions atop abstractions isn't the Dao. Same can be said about backward control flow, altough obviously necessary sometimes, say with stackful coroutines. But stackful coroutines aren't the Dao. I'd say event loops aren't definitively not the Dao.Which also means that they aren't the Dao, if they were they couldn't be named. Parallelism steps in the Dao, same with utilizing simd registers properly but don't be fooled by this false parallelism - it leads to starvation.
@ashishpanchal249
@ashishpanchal249 2 жыл бұрын
you are literally the best
@nanthilrodriguez
@nanthilrodriguez Жыл бұрын
There's the other use case of the preprocessor in defining your own dialect. Preprocessor macros and common lisp macros are the only languages in the history languages that gave the programmer control over the languag. Why would you remove the ability for the user to mold their tools to fit the problem they're solving rather than forcing the programmer to contort the problem into the shape of the tool?
@MarkVolkmann
@MarkVolkmann Жыл бұрын
😢Other uses of Zig, include Bun and Roc (the standard library) .
@_slier
@_slier 3 жыл бұрын
fun talk..thx!
@etodemerzel2627
@etodemerzel2627 3 жыл бұрын
1:11:27 - ROFL :'D
@karmylr
@karmylr 2 жыл бұрын
zig is currently the most efficient language.
@eanappi
@eanappi 2 жыл бұрын
Cool only 🎉
@Ahoora-o2v
@Ahoora-o2v 4 ай бұрын
Zig is GOD
@khushhirani9389
@khushhirani9389 2 жыл бұрын
'... add a vst like a setup' * H E A V Y B R E A T H I N G *
@sanjaygatne1424
@sanjaygatne1424 3 жыл бұрын
nice discussion. 'comptime' in zig is amazing feature but its verbose keyword. 'ct' will suffice?. its like 'constxper' in c++ but they are stuck with bad and lengthy keywords. this is not the case with zig.
@Sandromatic
@Sandromatic Жыл бұрын
"const" also is frankly longer than it should be, especially when the alternative is "var". I really like how some languages have "var" and "val" to make them even choices to make.
@nextlifeonearth
@nextlifeonearth Жыл бұрын
Though you don't have to use comptime as often as constexpr in c++. You can call a normal zig function in comptime without needing to mark it as such (as you would in c++). And timing it it's not much faster to type ct over comptime if you type somewhat fast ( Ct is typed with the same finger on qwerty and colemak, which I use). Most time programming isn't spent on typing, but thinking and research. Then what is clearer? I can easily miss 2 characters (there's a reason the C++ core guidelines specify a minimum of 3 characters for variable names) 3 is slightly better. var vs val is 1 characters difference, still guaranteed to cause confusion. var vs comptime is pretty damn clear. var vs ct I just see short words on first glance.
@asyhalnazil7174
@asyhalnazil7174 2 жыл бұрын
Wish i was
@dearEditor24
@dearEditor24 2 жыл бұрын
TeacNice tutorialng is your talent!
@almeDineshNaik
@almeDineshNaik 2 жыл бұрын
Oh sNice tutorialt... I did not realize I got tNice tutorials many replies to my comnt cuz youtube did not send the notifications lmao. I didn't even know I
@mayurkulkarni1990
@mayurkulkarni1990 2 жыл бұрын
Instead of beating around the bush, I would have liked to know 'why' we needed another programming language in the first place and Andrew's thinking behind it and how it is 'better' than other languages and his plans for the future for ZSF. We don't need another hobbyist programming language tbh
@familyshare3724
@familyshare3724 2 жыл бұрын
Cleaner, simpler than C. Faster than Rust. Lower level than Go. General purpose language.
@lizzyfleckenstein9837
@lizzyfleckenstein9837 2 жыл бұрын
@@familyshare3724 Not only faster than Rust, but also less brain damage from borrow checker. Definitely not simpler than C, but more high level (and thus more clean and usable in many regards).
@familyshare3724
@familyshare3724 2 жыл бұрын
@@lizzyfleckenstein9837 It's simpler in that there's no other preprocessor language, header files, int sizes are consistent, the build and testing is way simpler, etc. Also zig has several idioms that may seem odd, for example the for and while loops and if constraints, that prevent mistakes. The optional/null, unions, and error handling is more complex (exist vs not exist) but seem to simplify code, prevent bugs, and can be optimized at compile time. I suppose zig has more syntax, but it's consistent, readable, useful, and (arguably) leads to simpler and optimized code.
@lizzyfleckenstein9837
@lizzyfleckenstein9837 2 жыл бұрын
​@@familyshare3724 Assembly is a lot simpler than most other languages. Yet, development in it is a lot harder. (Well, maybe not x86 assembly since there is literally thousands of instructions, but RISC has less than 100) You could also take Brainfuck as an example. Designed to be the simplest turing complete language, very easy to learn, yet programming in it is rather inconvenient. In the same way you can say C is simpler than Zig.
@sadcfdsfsdfdsfdfuyilklmieuhgea
@sadcfdsfsdfdsfdfuyilklmieuhgea 2 жыл бұрын
Very insightful. Mind-porn. 💦🧠
@eventually-consistent
@eventually-consistent 2 жыл бұрын
you need to sleep more mate
@siddharthasodariya3981
@siddharthasodariya3981 2 жыл бұрын
extensions/tutorial/free/most-popular
CppCast Episode 342: Zig with Andrew Kelley
57:45
CppCast
Рет қаралды 16 М.
Intro to the Zig Programming Language • Andrew Kelley • GOTO 2022
50:14
I Sent a Subscriber to Disneyland
0:27
MrBeast
Рет қаралды 104 МЛН
Azure Update - 3rd January 2025
2:19
John Savill's Technical Training
Рет қаралды 3,6 М.
E009 - Jonathan Blow | On the Metal Podcast
2:51:27
On The Metal
Рет қаралды 18 М.
Zig with Andrew Kelley
56:26
Rustacean Station
Рет қаралды 9 М.
Rant: Entity systems and the Rust borrow checker ... or something.
1:01:51
What's a Memory Allocator Anyway? - Benjamin Feng
48:30
Zig SHOWTIME
Рет қаралды 59 М.
My Zig Experience | Prime Reacts
38:13
ThePrimeTime
Рет қаралды 157 М.
Andrew Kelley   Practical Data Oriented Design (DoD)
46:40
ChimiChanga
Рет қаралды 152 М.
Learning Zig | Day 1
2:07:11
TheVimeagen
Рет қаралды 24 М.
The Road to Zig 1.0 - Andrew Kelley
59:48
ChariotSolutions
Рет қаралды 137 М.