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

  Рет қаралды 16,773

Sourcegraph

Sourcegraph

2 жыл бұрын

How do you improve on C? In this episode of the Sourcegraph Podcast, Andrew Kelley, creator of the Zig programming language and the founder and president of the Zig Software Foundation, joins Beyang Liu, co-founder and CTO of Sourcegraph and special guest Stephen Gutekanst, software engineer at Sourcegraph, to talk about what it takes to create a new programming language. Along the way, Andrew shares how programmers can get funding for their side projects and hobbies, why conditional compilation exposes philosophical differences between Zig and C, and explains why and how Zig can be faster than both C and Rust.
Show notes & transcript: about.sourcegraph.com/podcast...
Sourcegraph: about.sourcegraph.com

Пікірлер: 36
@steveoc64
@steveoc64 2 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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.
@AnitaSV
@AnitaSV 2 жыл бұрын
7:07 c++ is known for not having enough features. Lol 😆
@wabilemotswasele8705
@wabilemotswasele8705 2 жыл бұрын
I guess it is time to learn and practice some zig programming. Thank you for the insightful discussion.
@masmullin
@masmullin 2 жыл бұрын
Fantastic discussion.
@_slier
@_slier 2 жыл бұрын
fun talk..thx!
@SimGunther
@SimGunther Жыл бұрын
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.
@sybekon
@sybekon 9 ай бұрын
...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!
@familyshare3724
@familyshare3724 2 жыл бұрын
Fantastic talk. Thanks.
@epmek96
@epmek96 2 жыл бұрын
super fun listening to you guys!
@miguelangelminambresprieto7348
@miguelangelminambresprieto7348 Жыл бұрын
Boas, muito obrigado pela dica Sr Mr AndyPee, Muitos Abraços.
@ashishpanchal249
@ashishpanchal249 Жыл бұрын
you are literally the best
@stephenkoller89
@stephenkoller89 Жыл бұрын
Liberty BASIC! Now that's a throwback!
@manums__
@manums__ Жыл бұрын
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
@etodemerzel2627
@etodemerzel2627 2 жыл бұрын
1:11:27 - ROFL :'D
@LewisCampbellTech
@LewisCampbellTech 7 ай бұрын
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.
@karmylr
@karmylr Жыл бұрын
zig is currently the most efficient language.
@eanappi
@eanappi Жыл бұрын
Cool only 🎉
@nanthilrodriguez
@nanthilrodriguez 5 ай бұрын
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 8 ай бұрын
😢Other uses of Zig, include Bun and Roc (the standard library) .
@asyhalnazil7174
@asyhalnazil7174 Жыл бұрын
Wish i was
@khushhirani9389
@khushhirani9389 Жыл бұрын
'... add a vst like a setup' * H E A V Y B R E A T H I N G *
@sanjaygatne1424
@sanjaygatne1424 2 жыл бұрын
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 7 ай бұрын
"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 6 ай бұрын
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.
@dearEditor24
@dearEditor24 Жыл бұрын
TeacNice tutorialng is your talent!
@almeDineshNaik
@almeDineshNaik Жыл бұрын
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
@sadcfdsfsdfdsfdfuyilklmieuhgea
@sadcfdsfsdfdsfdfuyilklmieuhgea Жыл бұрын
Very insightful. Mind-porn. 💦🧠
@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 Жыл бұрын
@@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 Жыл бұрын
@@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 Жыл бұрын
​@@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.
@eventually-consistent
@eventually-consistent Жыл бұрын
you need to sleep more mate
@siddharthasodariya3981
@siddharthasodariya3981 Жыл бұрын
extensions/tutorial/free/most-popular
My Zig Experience | Prime Reacts
38:13
ThePrimeTime
Рет қаралды 142 М.
CppCast Episode 342: Zig with Andrew Kelley
57:45
CppCast
Рет қаралды 14 М.
The most impenetrable game in the world🐶?
00:13
LOL
Рет қаралды 16 МЛН
Intro to the Zig Programming Language • Andrew Kelley • GOTO 2022
50:14
Interview with Zig language creator Andrew Kelley
17:30
Context Free
Рет қаралды 45 М.
The Road to Zig 1.0 - Andrew Kelley
59:48
ChariotSolutions
Рет қаралды 125 М.
Why a linker author had to write a YAML parser in Zig
38:26
Zig Meetups
Рет қаралды 13 М.
How Zig is used at Uber - Motiejus Jakštys
36:56
Zig SHOWTIME
Рет қаралды 23 М.
Paid Zig Stream
3:20:37
Tsoding Daily
Рет қаралды 84 М.
Rant: Entity systems and the Rust borrow checker ... or something.
1:01:51
Как я сделал домашний кинотеатр
0:41
RICARDO
Рет қаралды 1,5 МЛН
Готовый миниПК от Intel (но от китайцев)
36:25
Ремонтяш
Рет қаралды 455 М.
Samsung Android Mobile Battrey
0:39
Gaming zone
Рет қаралды 342 М.
M4 iPad Pro Impressions: Well This is Awkward
12:51
Marques Brownlee
Рет қаралды 6 МЛН
ПРОБЛЕМА МЕХАНИЧЕСКИХ КЛАВИАТУР!🤬
0:59
Корнеич
Рет қаралды 3,1 МЛН
Which Phone Unlock Code Will You Choose? 🤔️
0:14
Game9bit
Рет қаралды 11 МЛН
Эффект Карбонаро и бумажный телефон
1:01
История одного вокалиста
Рет қаралды 2,5 МЛН