Control Your Dependencies

Sdílet
Vložit
  • čas přidán 6. 09. 2024
  • Previous Episodes: • Music Visualizer
    References:
    - Tsoding - Musializer - github.com/tso...
    - Raylib - www.raylib.com/
    - Miniaudio - miniaud.io/
    - nu11 - WIP Works 2016-2022 - / nu11-wip-works-2016-2022
    Support:
    - BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9
    - Servers: zap-hosting.co...

Komentáře • 68

  • @khenstot
    @khenstot Před 6 měsíci +200

    Sorry Tsoding, but this project needs npm+asyncify and 500mb of packages, my PR is ready and you can't stop me.

  • @stackercoding2054
    @stackercoding2054 Před 6 měsíci +9

    I started to learn C around 2 months ago because I kinda want to switch to systems/embedded programming, coming from a background of 5 years working as a webdev (shame on me), and discovering raylib was the best thing that could happen to me, I really learned a lot of how Makefiles work, how linking works, managing libraries, cross-platform compilation, etc. I feel really comfortable with the dev flow of a C project now.

  • @Kknewkles
    @Kknewkles Před 6 měsíci +74

    The thing about C dependencies: there are so few of them(STB, Raylib, Sokol, etc) and they are so minimal and neat that you don't need a fricking package manager for C. They are so good you're happy to go dl them and put them in the folder.

    • @jambalaya974
      @jambalaya974 Před 6 měsíci +32

      And the reason for why these libraries don't really require a package manager is because they're built to be standalone for the most part. Whereas in languages that have package managers as a feature, the culture is very much to introduce a chain of dependencies; to build a dependency they use lots of dependencies that use lots of dependencies and so on without any care in the world. It is quite horrifying what behaviour package managers normalise when it comes to an ecosystem.
      Everyone agrees spaghetti code is bad, but dependency hell is just spaghetti code on a module basis, but everyone just accepts it because of convenience.

    • @boccobadz
      @boccobadz Před 6 měsíci +13

      @@jambalaya974 The culture (aka web dev) is that people after bootcamps (so without any understanding of underlying tech) copy-paste code without any thought. I mean, things like leftpad and isArray exist in npm-ecosystem, it's enough of a proof. Those people not only never read language docs, they don't even stop to think for a second - 'Do I really need to pull hundreds of dependencies to get this to work?'. Not to mention that some of those deps can be malicious.
      It's refreshing to see that it can be done "the other way".

    • @user-uf4rx5ih3v
      @user-uf4rx5ih3v Před 6 měsíci

      ​@@jambalaya974 C has make and cmake, which are basically just terrible package managers if you think about it.
      In languages with a decent package manager, many libraries are designed to work as small parts of many other dependencies. Apart from outrageous compile times (which are not uncommon) you get all the advantages of code reuse and small modules with non of the downsides.
      Also, many projects in C have many dependencies. Look at GAP for an example of spaghetti C code with a ton of dependencies.

    • @Daniel_Zhu_a6f
      @Daniel_Zhu_a6f Před 6 měsíci +1

      @@jambalaya974 so your solution is to just not include package manager? it sounds kind of like "let's just not give smartphones to kids" -- it may sound ok, but the result is always garbage. maybe there is a better strategy like reviewing and pruning packages over time, or merging the ones that are downloaded concurrently into a single bundle? i mean, if you need a program to actually work, you will include whatever stupid thing. you cannot write on a short notice linear algebra or statistics or codecs, it requires a serious amount of time and effort, and a thorough knowledge of the subject. this is why, btw, such things exist as several separate packages in the first place.
      then there are also proprietary libraries (which in many cases are so hideous, that they can only be fixed by communism)

    • @jambalaya974
      @jambalaya974 Před 6 měsíci +5

      ​@@Daniel_Zhu_a6f I did not make a prescriptive statement on whether package managers as a language feature are a necessary evil or not for the time being. Just that they are not ideal and the culture they breed is awful.
      To me, Nix is ideal.

  • @friedbrainz7998
    @friedbrainz7998 Před 2 měsíci +2

    I thought this was a video about getting more money back from the tax man for my kids. Now Im hooked on C!

  • @SpaghettiRealm
    @SpaghettiRealm Před 6 měsíci +15

    26:25 that Beat is 🔥

  • @D-V-O-R-A-K
    @D-V-O-R-A-K Před 6 měsíci +17

    Why doesn't Raylib just #define NO_WAV macros etc ONLY when miniaudio's header guard isn't already #defined? Seems like an easy solution to the problem

  • @blackhaze3856
    @blackhaze3856 Před 6 měsíci +14

    Looks like we are ALIVE ❤

  • @anon_y_mousse
    @anon_y_mousse Před 6 měsíci +4

    I had a weird thought regarding plugin functionality. What if you made the buttons themselves loadable as plugins. Say for instance a dynamic library or maybe a scripting language so if recording doesn't work on someone's platform they could rewrite the code and load it once they've repaired it and bingo. It would increase the complexity of the plugin system, but it would be interesting to see someone come up with a filter that could be passed around and loaded up on demand to say make your recording sound like a robot voice, or to invert the colors of the visualizer.

  • @wandermaus4571
    @wandermaus4571 Před 6 měsíci +6

    great video, great beatbox 😊

  • @apppples
    @apppples Před 6 měsíci

    I just wanted to say this video was great. It was a lot better than the last non stream video. Actually excellent. I loved it

  • @hoodrealestate_0212_mp
    @hoodrealestate_0212_mp Před 2 měsíci

    habamax is a black magic sleeper cell segway

  • @c0ld_r3t4w
    @c0ld_r3t4w Před 6 měsíci +14

    honey look! tsoding uploaded

  • @markblacket8900
    @markblacket8900 Před 6 měsíci +6

    What are the benefits of a header-only lib over the same code in separate .c and .h files? I've always considered it to be a gimmick, a-la "Look, my whole library fits in just one file!", but some way more experienced programmers seem to like them a lot, what am I missing?

    • @pokefreak2112
      @pokefreak2112 Před 6 měsíci +10

      There's a section explaining this in in the STB repo. Single header isn't the only appeal though, it's also just that other C libraries like libpng are significantly more low level than the API you usually get with single header libraries. Experienced programmers like them because they get you started quickly. You can get a window up or image loaded in just a couple lines of code instead of hundreds and immediately start writing the applications you actually wanted to make. Once your needs become more specific you can either switch to the lower level API that the lib exposes or ditch it entirely for a more robust alternative.

    • @pwii
      @pwii Před 6 měsíci

      I assume it's just for simplicity, it's easier to move one file around and you don't need to add header files to whatever build system or script you're using

  • @blackhaze3856
    @blackhaze3856 Před 6 měsíci +1

    This video reminds me 'debug the debugger' episode. Epic.

  • @angelcaru
    @angelcaru Před 6 měsíci +4

    depend on your control

  • @ZhouHenry
    @ZhouHenry Před 6 měsíci +1

    Please do more of this kind of videos❤

  • @clubpenguinfan1928
    @clubpenguinfan1928 Před 6 měsíci +2

    Looks like we're-- wait what

  • @buzzerbeatz5927
    @buzzerbeatz5927 Před 6 měsíci +2

    After you are done with the main functionality, are you going to make a plug-in version of misializer (like .vst or .aex)? I think it would be cool to explore this topic

  • @nulligor
    @nulligor Před 6 měsíci

    this thumbnail is fire!!

  • @ecosta
    @ecosta Před 6 měsíci

    I'm surprised how Raylib doesn't support audio input. It is useful for chatting and other features.

  • @SXZ-dev
    @SXZ-dev Před 5 měsíci +3

    No, migrate this to Rust, install and compile 500 crates containing 320 different versions of the same duplicate dependencies.

  • @flyLeonardofly
    @flyLeonardofly Před 6 měsíci +1

    🎵DEEM ©AAAA! 🎵

  • @rogo7330
    @rogo7330 Před 6 měsíci +2

    I believe software in 2024 must run in watch -n 0.5 and my cpu will not even go up by 0.1 degree celsius.

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff Před 6 měsíci

    18:18 what if remove `#include "raylib.h"` but not change compiler command?

  • @Quique-sz4uj
    @Quique-sz4uj Před 6 měsíci +2

    No asyncifiy?

  • @plushrei5926
    @plushrei5926 Před 6 měsíci

    Упустил немного момент: почему отказываемся от записи вейв файлов через миниаудио, если от целого миниаудио не отказываемся (с девайсом через него работаем)?

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff Před 6 měsíci

    01:07:42 did that just change when you unpressed mouse!?

  • @spacewad8745
    @spacewad8745 Před 6 měsíci +1

    no looks like we're live. my day is ruined

  • @sanalyny2807
    @sanalyny2807 Před 6 měsíci +3

    я смотрю тебя уже примерно год, но так и не понял, что значит азузин сешн? (остальное меня не смущает)

    • @TsodingDaily
      @TsodingDaily  Před 6 měsíci +16

      Люди не могут прочитать Цодинг, поэтому часто называют меня Зозин :)

    • @Kknewkles
      @Kknewkles Před 6 měsíci

      ​ @TsodingDaily во дают.
      А я думал это твоя фамилия, ан нет, еще один уандерфул сарказм))) Так и слышу каждый раз - "Мистер Азузин" 😂

  • @thetruedaveshow6830
    @thetruedaveshow6830 Před 6 měsíci

    Alexej are you using Debian?

  • @vanvothe4817
    @vanvothe4817 Před 6 měsíci

    Maybe nix(nixos) is also a way

  • @amj864
    @amj864 Před 6 měsíci +6

    Day 10,000 of asking you to do odin

  • @nysewerrat6577
    @nysewerrat6577 Před 6 měsíci +1

    Baj programmer PagMan

  • @glowiak3430
    @glowiak3430 Před 6 měsíci +1

    1:10:44 Lol Vim's Visual Mode can do that and even more. Can your stinky emacs do that?

  • @heyclore5728
    @heyclore5728 Před 6 měsíci +1

    am i first?

  • @amigaworkbench720
    @amigaworkbench720 Před 6 měsíci +1

    3:38 BSD or gtfo!