A Systems-Minded Approach to Creating a Music Player Application by Andrew Kelley

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 63

  • @notsoren665
    @notsoren665 3 місяці тому +34

    I love the emphasis on relying on labour and not a language

  • @10e999
    @10e999 3 місяці тому +65

    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.

    • @10e999
      @10e999 3 місяці тому +1

      Love the ethics comments too!

  • @UliTroyo
    @UliTroyo 3 місяці тому +30

    Andrew's talks are so much fun

  • @jamestansx289
    @jamestansx289 3 місяці тому +60

    "It blew up its leg with its foot gun"

    • @seanhdka
      @seanhdka Місяць тому

      damn i love that part

  • @hikingpete
    @hikingpete 3 місяці тому +7

    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.

  • @dBradbury
    @dBradbury 21 день тому

    19:26 - So good (on top of the interesting talk!) - Thanks Andrew for putting this out there!

  • @juliendebache8330
    @juliendebache8330 2 місяці тому +3

    Great talk, great technique, great philosophy behind these techniques. Cheers to many more of these!

  • @capability-snob
    @capability-snob 3 місяці тому +37

    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.

    • @randjey24
      @randjey24 3 місяці тому +3

      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"

    • @ultimaxkom8728
      @ultimaxkom8728 3 місяці тому +1

      Everyone, groups or otherwise, use anything as justifications; weapon and shield. Ethics is just one of them. Freedom and resentments are another.

    • @capability-snob
      @capability-snob 3 місяці тому +7

      @@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.

    • @y9tw0t
      @y9tw0t 3 місяці тому +1

      @@randjey24, 🤦🙄

    • @anonymousanon4822
      @anonymousanon4822 3 місяці тому +3

      ​@@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.

  • @workflowinmind
    @workflowinmind 6 днів тому +1

    19:29 banger

  • @dwylhq874
    @dwylhq874 3 місяці тому +5

    Watching live! Super stoked! 😍

  • @JoseTrigueros
    @JoseTrigueros 3 місяці тому +2

    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

    • @AndrewKelley
      @AndrewKelley 2 місяці тому +2

      Jose!! how have you been my friend? please send me an email and say hi

    • @JoseTrigueros
      @JoseTrigueros 2 місяці тому

      @@AndrewKelley ayo Andy! Reaching out :D

  • @FranzBrummer
    @FranzBrummer 3 місяці тому

    Love the mixture of fun and useful info in Andrews talks

  • @boy_deploy
    @boy_deploy 3 місяці тому +2

    Everything with "Andrew Kelly" I watch. Even that one Oprah show where he's a magician

  • @eduardomosko853
    @eduardomosko853 3 місяці тому +2

    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 😅

  • @IgorGuerrero
    @IgorGuerrero 3 місяці тому +2

    Damn I miss Amarok 1.4 too! First time reading Andrew's blog post about the music player.

  • @ChimiChanga1337
    @ChimiChanga1337 3 місяці тому +3

    Love the intro. Groovy.

  • @canismajorisvy
    @canismajorisvy 3 місяці тому

    great talk, thank you very much

  • @lowflyingdonut
    @lowflyingdonut 3 місяці тому +18

    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.

  • @meme6793
    @meme6793 2 місяці тому +3

    Chimera Linux mentioned!

  • @astroversace466
    @astroversace466 3 місяці тому +1

    wonderful talk, i enjoyed it

  • @coxley_dev
    @coxley_dev 3 місяці тому +4

    Let’s go!

  • @binitrupakheti4246
    @binitrupakheti4246 3 місяці тому +8

    Never would've suspected Andrew was also a audio nerd.

    • @UliTroyo
      @UliTroyo 3 місяці тому +3

      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!

    • @yyny0
      @yyny0 3 місяці тому +2

      @@UliTroyo I believe (and hope) it was C++ not C xD

  • @NuttySwiss
    @NuttySwiss 27 днів тому

    On Unix, you can use lpr/lpd/etc to implement an audio player and queue. 😎

  • @coxley_dev
    @coxley_dev 3 місяці тому +2

    Is the Q&A accessible anywhere?

  • @pearshaped9116
    @pearshaped9116 3 місяці тому +1

    Nix Mentioned!!

  • @weeb3277
    @weeb3277 3 місяці тому +3

    like the cut of your jib

  • @JimBalter
    @JimBalter 17 днів тому +1

    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.

  • @minma02262
    @minma02262 3 місяці тому +21

    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.

    • @cysia3683
      @cysia3683 3 місяці тому +15

      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.

    • @minma02262
      @minma02262 3 місяці тому

      @@cysia3683 Thank you!

    • @10e999
      @10e999 3 місяці тому +9

      IMO, the answer does not lie in the language choice; it's in the craft of programming.
      Complexity is easy; Simplicity is hard.

    • @araarathisyomama787
      @araarathisyomama787 3 місяці тому +6

      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.

    • @stretch8390
      @stretch8390 3 місяці тому

      @@araarathisyomama787 Out of curiosity, did you use c++23 conventions?

  • @johnyepthomi892
    @johnyepthomi892 3 місяці тому +1

    I love sum 41

  • @Kenbomp
    @Kenbomp 2 місяці тому

    Well at least it works for its users

  • @krumbergify
    @krumbergify 3 місяці тому +6

    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.

    • @Cosmeoes
      @Cosmeoes 3 місяці тому +10

      Did you watch the presentation?

    • @arian386
      @arian386 3 місяці тому +19

      Touch some grass, go outside, your mind has been damaged

    • @dothex
      @dothex 3 місяці тому +1

      @@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.

    • @krumbergify
      @krumbergify 3 місяці тому +1

      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.

    • @krumbergify
      @krumbergify 3 місяці тому

      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.

  • @codingenthusiast3652
    @codingenthusiast3652 3 місяці тому +4

    yt-dlp for the win 🙏