As always, it's a pleasure to listen to Andrew: He has a great Engineering mindset and his rents are hilarious. I would love to see a walkthrough between the C++ and Zig implementation, explaining the desing decisions that lead to a smaller code, smaller memory footprint and faster execution.
I remember getting Groovebasin running back in the day. Not only did the experience put me off actually using the thing, it was a deeply formative experience resulting in passionate feelings about software packaging. Glad to see Andrew has learned as much as I did from the experience.
I actually feel is concerning.. I was able to donate to zig at personal level several times in the past years due to having salary due to working for a corporation.. do corporations do bad stuff ? yeah they do sometimes, but that's not the fault of corporations that's the fault of people, people do bad stuff working for a corporation large or small or not working for anything at all.. so if he replaces "large corporation" with "a lot of people" that would be more correct statement. I'm planning on starting my own business in my small country this year, for one of the features I want to build I was planning to use zig and donate to their foundation, as to any and all open source tool I would be using, but after hearing this I'm not sure about that. You can be critical of any corporation and government ( if you live in a country with freedom for that ) all you want, but basically trying to justify robbing for them as "ok" because they are a large corporation or they are on the advertisement business.. come on... mind you I don't like youtube censorship and other things they do, I believe the US government should revoke their legal protection of a platform (instead of publisher) if they don't stop with this censorship nonsense. basically I feel this type of rhetoric of we are good they are bad, either by using c++ or they are vc backed or they are a large corpo. This is not good for the community, which sucks cuz I really like zig a lot, I think he did an amazing, amazing job with the language so far, can't wait to see what else he will do until 1.0, especially keen to see the final solution for async/await, interfaces, and of course the best of them all the "no llvm backend compiler"
@@randjey24But it's the truth. Companies care about nothing but profit. No ethics. He's saying that you're not a bad guy if you treat them with the same selfishness. It's not that deep, relax.
Why wouldn't it be deterministic? If the algorithm is replicated then it should be. Even if an RNG were used, you can assure that the same random sequence is used.
Would be interesting to see the actual process on how a few thousand lines of C++ code can be shortened into a few hundred zig lines of code. Is it because of zig data structure, code golfing, cheating by not using any comments, super-power from zig comptime, etc? Seems a bit counter-intuitive because C++ supposed to have more abstraction layer that will reduce the amount of code. But if the C++ programmer used it as "C with classes" then it would make sense because they didn't even use C++ abstraction correctly.
Most likely he didn't port the whole codebase, just what was needed to calculate the fingerprint. Original codebase contains a lot of unit tests that were most likely omitted, and the utility code like handling base64. I did similar port to Rust myself and the actual 'meat' can easily fit in under 1kLOC.
I rewrote my 5-10k (depends on how you count) C++ project to Zig. I'm convinced it's almost 1:1 in LOCs (maybe up to 25% deviation) if you're comparing it fairly and you don't count edge cases in language and standard library design choices, but just your everyday code. The feeling of the language is completely different though and LOC's are never a good metric anyway.
I do admire Andrews work, BUT is it really so bad to slap a docker around your application? Yes, it will be unneccesarily large, but in many cases you need to sandbox it anyway. Rewriting everything yourself or compiling the world is not a scalable approach either.
@@theguatemalian if thats the case he can have more options like with any repo release Standard. EXE / Portable Zip / RAR / Tar -> compiled Zip / RAR / Tar -> UNcompiled Docker installation In the same way he was speaking about relying on the people working on YTDLP, now it would be up to him to have to bare the burden of making sure every release had all those installation options.
Calm down guys :) I see the point, but I wonder how big the problem really is in practice. Something like podman or even flatpak is supported by a whole range of distos and it opens the door for everything else.
Calm down guys :) I see the point, but I wonder how big the problem really is in practice. Something like podman is supported by a whole range of distos and it opens the door for everything else.
I love the emphasis on relying on labour and not a language
As always, it's a pleasure to listen to Andrew: He has a great Engineering mindset and his rents are hilarious.
I would love to see a walkthrough between the C++ and Zig implementation, explaining the desing decisions that lead to a smaller code, smaller memory footprint and faster execution.
Love the ethics comments too!
Andrew's talks are so much fun
"It blew up its leg with its foot gun"
damn i love that part
I remember getting Groovebasin running back in the day. Not only did the experience put me off actually using the thing, it was a deeply formative experience resulting in passionate feelings about software packaging. Glad to see Andrew has learned as much as I did from the experience.
19:26 - So good (on top of the interesting talk!) - Thanks Andrew for putting this out there!
Great talk, great technique, great philosophy behind these techniques. Cheers to many more of these!
19:20 oh yes. To a large corporation, ethics is a weapon to be wielded by their legal and marketing departments. This is one tasty, quotable take.
I actually feel is concerning.. I was able to donate to zig at personal level several times in the past years due to having salary due to working for a corporation.. do corporations do bad stuff ? yeah they do sometimes, but that's not the fault of corporations that's the fault of people, people do bad stuff working for a corporation large or small or not working for anything at all..
so if he replaces "large corporation" with "a lot of people" that would be more correct statement.
I'm planning on starting my own business in my small country this year, for one of the features I want to build I was planning to use zig and donate to their foundation, as to any and all open source tool I would be using, but after hearing this I'm not sure about that.
You can be critical of any corporation and government ( if you live in a country with freedom for that ) all you want, but basically trying to justify robbing for them as "ok" because they are a large corporation or they are on the advertisement business.. come on...
mind you I don't like youtube censorship and other things they do, I believe the US government should revoke their legal protection of a platform (instead of publisher) if they don't stop with this censorship nonsense.
basically I feel this type of rhetoric of we are good they are bad, either by using c++ or they are vc backed or they are a large corpo. This is not good for the community, which sucks cuz I really like zig a lot, I think he did an amazing, amazing job with the language so far, can't wait to see what else he will do until 1.0, especially keen to see the final solution for async/await, interfaces, and of course the best of them all the "no llvm backend compiler"
Everyone, groups or otherwise, use anything as justifications; weapon and shield. Ethics is just one of them. Freedom and resentments are another.
@@randjey24 I think it's not so much a value judgement as it is a lens through which we can understand how large corporations treat ethical concerns.
@@randjey24, 🤦🙄
@@randjey24But it's the truth. Companies care about nothing but profit. No ethics. He's saying that you're not a bad guy if you treat them with the same selfishness. It's not that deep, relax.
19:29 banger
Watching live! Super stoked! 😍
Loved the talk!
Thanks for showing the journey on how you went on porting a tool over. Glad to see GrooveBasin is still alive and well :D
Jose!! how have you been my friend? please send me an email and say hi
@@AndrewKelley ayo Andy! Reaching out :D
Love the mixture of fun and useful info in Andrews talks
Everything with "Andrew Kelly" I watch. Even that one Oprah show where he's a magician
Great presentation. At the end I really though that he would use the zig toolchain to compile the CPython interpreter to WebAssembly and isolate it 😅
Damn I miss Amarok 1.4 too! First time reading Andrew's blog post about the music player.
Love the intro. Groovy.
great talk, thank you very much
I need a room I can go to whenever I want, explain a bug I just fixed to an audience there and receive an applause.
... vanity
Chimera Linux mentioned!
wonderful talk, i enjoyed it
Let’s go!
Never would've suspected Andrew was also a audio nerd.
You should check out his first talk about Zig! He explains wanting to make a DAW using C is how he decided to create Zig. It's a great talk!
@@UliTroyo I believe (and hope) it was C++ not C xD
On Unix, you can use lpr/lpd/etc to implement an audio player and queue. 😎
Is the Q&A accessible anywhere?
Nix Mentioned!!
like the cut of your jib
Why wouldn't it be deterministic? If the algorithm is replicated then it should be. Even if an RNG were used, you can assure that the same random sequence is used.
Would be interesting to see the actual process on how a few thousand lines of C++ code can be shortened into a few hundred zig lines of code. Is it because of zig data structure, code golfing, cheating by not using any comments, super-power from zig comptime, etc?
Seems a bit counter-intuitive because C++ supposed to have more abstraction layer that will reduce the amount of code. But if the C++ programmer used it as "C with classes" then it would make sense because they didn't even use C++ abstraction correctly.
Most likely he didn't port the whole codebase, just what was needed to calculate the fingerprint. Original codebase contains a lot of unit tests that were most likely omitted, and the utility code like handling base64. I did similar port to Rust myself and the actual 'meat' can easily fit in under 1kLOC.
@@cysia3683 Thank you!
IMO, the answer does not lie in the language choice; it's in the craft of programming.
Complexity is easy; Simplicity is hard.
I rewrote my 5-10k (depends on how you count) C++ project to Zig. I'm convinced it's almost 1:1 in LOCs (maybe up to 25% deviation) if you're comparing it fairly and you don't count edge cases in language and standard library design choices, but just your everyday code. The feeling of the language is completely different though and LOC's are never a good metric anyway.
@@araarathisyomama787 Out of curiosity, did you use c++23 conventions?
I love sum 41
Well at least it works for its users
I do admire Andrews work, BUT is it really so bad to slap a docker around your application? Yes, it will be unneccesarily large, but in many cases you need to sandbox it anyway. Rewriting everything yourself or compiling the world is not a scalable approach either.
Did you watch the presentation?
Touch some grass, go outside, your mind has been damaged
@@theguatemalian if thats the case he can have more options like with any repo release
Standard. EXE / Portable
Zip / RAR / Tar -> compiled
Zip / RAR / Tar -> UNcompiled
Docker installation
In the same way he was speaking about relying on the people working on YTDLP, now it would be up to him to have to bare the burden of making sure every release had all those installation options.
Calm down guys :) I see the point, but I wonder how big the problem really is in practice. Something like podman or even flatpak is supported by a whole range of distos and it opens the door for everything else.
Calm down guys :) I see the point, but I wonder how big the problem really is in practice. Something like podman is supported by a whole range of distos and it opens the door for everything else.
yt-dlp for the win 🙏