How I learned to love build systems

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

КОМЕНТАРІ • 153

  • @Whatthetrash
    @Whatthetrash Рік тому +300

    I have no idea how you got on my UA-cam recommended feed, but I'm oh so glad you did. Fantastic, clear, informal videos that honestly excite me to go out and learn -- which is an incredible resource. Subscribed... and thanks for what you do! :)

    • @fasterthanlime
      @fasterthanlime  Рік тому +15

      Thanks so much! This is exactly why I do these :)

    • @QmVuamFtaW4
      @QmVuamFtaW4 Рік тому +1

      for me i got his RSS feed from some personal site, and goddamn i fell in love with his yt channel.

    • @smalldjo
      @smalldjo Рік тому

      same, i follow on twitter, for some reason i forgot now and i wont pretend i understand all of this but still enjoy it. weird

  • @neilweidinger
    @neilweidinger 2 роки тому +52

    Fantastic video, really mirrors my experience of going from the comfortable but illusory plug-and-play nature of clicking buttons in an IDE to understanding the intricacies and complexities of building source code for multiple platforms

  • @pnuema1.618
    @pnuema1.618 2 роки тому +91

    This is a fantastic video. Its educational and gives a clean abstracted overview of build systems. Personally I find that abstracted overview is hard to come by because most people convoluted the general overview of what a build system does. The only issue I have is your title. I searched for "most used build systems" and found this video but I think this video belongs more in the "what is a build system and why do I need one" category which I feel like your title excludes you from. Either way I am happy I found this video!

  • @chickenscrap2000
    @chickenscrap2000 Рік тому +15

    Kudos to you for keeping a good attitude about them and even coming to appreciate them! I’m at a point in my career where I understand why they’re needed, but dread every minute I spend modifying a jenkins file/web pack/grunt/maven/make/gradle/{whatever} config.
    It’s time that I should be spending on the actual problem I’m trying to solve.
    Don’t think I’ll ever be able to say I love them.

  • @terrypark3690
    @terrypark3690 Рік тому +2

    I thought this was going to be tips on what you have to learn to build systems but it literally was how you learned systems. It's amazing and helpful to hear your journey!

  • @CyborusYT
    @CyborusYT 2 роки тому +64

    "I also write articles that are equally long"
    Well-

  • @velvetrock9933
    @velvetrock9933 Рік тому +4

    As a DevOps I recently encountered a sort of build engineer(ish) task of gluing together a C++/ML desktop app, which allowed me to make a deep dive into build systems during work hours. Started to read a blog of a Ninja-build creator, Professional CMake book, etc. Man, build systems stuff is sooo interesting, deeply cool / technically beautiful and at the same time not unappreciated/ viral enough!
    Thank you for spreading the word and chad content in general!

  • @theNoriLi
    @theNoriLi Рік тому +1

    ah this was great! "car no go space, cargo road" will be stuck in my head for a while :P

  • @Chalisque
    @Chalisque Рік тому +29

    Back around 1997, I used to walk to/from university (around 3 miles each way) with a Zip drive and 2 or 3 Zip disks to download stuff that I could take home in my bag, configure, make, run. Seemed so amazing at the time that I could even do that, compared to how it was before with 1.44M floppies. 256MB USB sticks circa 2005 were magic.

    • @antonliakhovitch8306
      @antonliakhovitch8306 Рік тому

      And now, we have NixOS which might download 5GB of data when you modify your mounts 😅
      (Disclaimer: NixOS is amazing and I run it on all of my machines. Nonetheless it's reliant on a fast network connection and would be absolute hell to use in the university / zip disk situation)

    • @igorordecha
      @igorordecha Рік тому +2

      @@antonliakhovitch8306 me: plugs in a usb drive
      NixOS: well, time to backup everything and reinstall the OS. Like they say "better safe than sorry"

    • @Albtraum_TDDC
      @Albtraum_TDDC Рік тому +1

      I remember in around 1993 we got an Amiga 1200 and we got a couple CD's of AmiNet, by snail mail from Germany to Greece, as it was faster and cheaper than over the practically nonexistent internet.

  • @whatamievendoing
    @whatamievendoing Рік тому +1

    Well, it was fun to watch you do such a deep dive into this niche software dev topic. Very informative stuff, thanks for sharing!

  • @coderedart
    @coderedart 2 роки тому +26

    "Part of the answer is that, games are not food" @ 2:29
    - FasterThanLime

  • @torphedo6286
    @torphedo6286 Рік тому +10

    I've loved CMake ever since I started using it. It's awesome to be able to have a simple, easy to read project file that can also manage all my unit tests and build for both Windows and Linux

    • @SolarLiner
      @SolarLiner Рік тому +4

      The syntax is appalling though. It's a great tool but Meson has such better ergonomics and I wish people would switch.
      Recent CMake is better in ergonomics, but it's the same old ugly syntax.

    • @gideonunger7284
      @gideonunger7284 Рік тому +3

      i never understood how people move through life so uncritically. CMake is one of the worst things we ever forced upon hardware to execute.
      But peoples only criteria seems to be "it works in my small frame of reference" but they are wholly uncritical and uneducated on how things should be.
      for c/c++ i write my own build systems. bc its a brutally trivial task. even cross platform. maybe 200 lines tops. thats probably 2-3 orders of magnitude less than the average cmake code used to just configure a project.

  • @WhosShamouz
    @WhosShamouz Рік тому +1

    Lol I thought this video was about how you're gonna takle a task with a certain framework, thinking in systems or whatever, but I also enjoyed what you had to say :) Noted the quoted regarding accidental complexity, amazing!

  • @imjasonmiller
    @imjasonmiller 2 роки тому +3

    Great video, Amos. Thank you!

  • @MechMK1
    @MechMK1 Рік тому +5

    I vividly remember when I first started to play around with Linux and the command line in general, I was very overwhelmed by it. I was also the only one in my family who had any computer experience at all, so if something wasn't working, I had no one to rely on. It was unpleasant, but it also taught me alot of stuff.

  • @Seandotcom
    @Seandotcom Рік тому +1

    I knew nothing about build systems until I got into embedded development. I fumbled around with SCons for a bit but now have learned to love CMake. Great video!

  • @luserspaz
    @luserspaz 2 роки тому +2

    "sccache (which by the way is looking for a maintainer right now)" 😅
    Great video!

  • @someghosts
    @someghosts Рік тому +3

    Such a great storyteller

  • @loganhodgsn
    @loganhodgsn Рік тому +5

    I initially didn't want to watch this video, but I figured I should, and I learned so much about computer development! Definitely grateful for your experiences

  • @bitbraindev
    @bitbraindev 2 роки тому +7

    Great video! I'd love a course/tutorial by you where you show step by step how to setup a build system like this.

  • @namgnoi
    @namgnoi 2 роки тому +9

    reflecting a bit what have me drawn to these kind of "lower-level" tools like the cli and vim, was a kind of appreciating of exposure to these, often difficult, parts to lessen the uncomfortableness of leaky abstractions. and on further reflection it gave me confidence that I so felt the need for, quite often as a coping mechanism for feeling most of the time insignificant from childhood events. now after more or less being able to move beyond that need I find myself sensing a more natual curiosity emerge to explore these dimension. Thank you for this video which had much value in it for me.

  • @rxphi5382
    @rxphi5382 Рік тому +14

    You know that you're on the right path to becoming a computer expert if this video shows up in your feed, loved it😊

    • @alexeyagapov4205
      @alexeyagapov4205 Рік тому +3

      As an eternal amateur who never went past console-run games made using the Curses library and some Unity stuff... I want to believe :D

    • @monsieurLDN
      @monsieurLDN Рік тому +3

      Tutorial hell

    • @ADarnSmore
      @ADarnSmore Рік тому

      that just means you watch youtube videos about computers

  • @quorrafromtron
    @quorrafromtron Рік тому +4

    This video would've been so useful like 5 years ago, I went through pretty much the same learning process (even started with a ti84 lol)

  • @DougAnderson444
    @DougAnderson444 2 роки тому +12

    "There's only one of you, so make it last" -- love it!

  • @noncote6642
    @noncote6642 8 місяців тому +1

    Kojima is a genius

  • @alt404s
    @alt404s Рік тому

    This was recommended to me
    and now im subbed.

  • @phantruong1217
    @phantruong1217 Рік тому

    Wow, incredible video. Great job :)

  • @eazypeazy8559
    @eazypeazy8559 Рік тому

    that's so cool, man! I have completely different experience, but I came to similar questions...

  • @lorenzorossi2000
    @lorenzorossi2000 2 роки тому +16

    I have no idea on js history, I only know that there are a lot of import-styles, build systems and complexity but it would be really interesting to know about all of that history (and it would be enlightning to know why some dependencies only like some build system for whatever reason)

    • @Luxalpa
      @Luxalpa Рік тому

      Many of the weird behavior of javascript is due to its original focus on interacting with HTML, which has things like bools and numbers all stringified so in order to be ergonomic, JS would need to be able to treat strings like numbers or booleans.

  • @DannysGalaxyTab
    @DannysGalaxyTab Рік тому

    This video is great please make more.

  • @ToastingInEpicBread
    @ToastingInEpicBread Рік тому

    Fascinating video topic, i am going to have to revisit this. i subbed

  • @yogpanjarale
    @yogpanjarale Рік тому

    15:23 Loved to watch it

  • @DzintarsDev
    @DzintarsDev Рік тому

    It clicked for me when i was working on a complete full-stack solution involving TypeScript, Websocket, Go, gRPC and Swagger. You make one single change in the API and you need that change to propagate to entire stack. Running every single tool by hand would be nightmare. Build system solves this issue and solves it in 2s.

  • @FalconFour
    @FalconFour Рік тому +3

    Currently bashing my head into this mess while going on a multi-hour grind marathon of trying to compile rtl_433 for Windows. Great video and good points. However, I think the end moral of the video leaves out one important point: build systems (like cmake) are very often implemented half-way. It's only as good as the devs/maintainers make it. So, quite often I find cmake setups that were bent to wrap-around a platform-specific quirk (or several), or that leave-out dependencies their code relies on (or several), with no clear way to identify or mitigate these issues on other platforms. (example: rtl_433 needs linker options "-lws2_32", "-lwsock32", "-lnetapi32" added to some obscure mid-build "linker.txt" file after linker errors are produced -- oh and if you build using the 32-bit mingw platform, it'll fail to initialize USB when you think you got it all compiled - you have to use the 64-bit x86_64-w64-mingw-* tools instead, etc etc)
    I often still end up finding it's just the same problems in slightly different packaging. Devs gonna dev.
    I ended up getting it working in the end (as of 5 minutes ago, after about 6 total hours across 3 days, trying countless different approaches), and I could write a small novel on the problems in the build system that it revealed. But Windows is the least-loved of all platforms for open source software, so I mostly just expect to get roundly mocked or ignored or "closed::willnotfix"'d if I write this stuff up.
    So hey, I solved it for myself at least. The last binary Windows build of the software in the wild is still from 2019.

  • @GratuityMedia
    @GratuityMedia Рік тому

    More of this content please

  • @torphedo6286
    @torphedo6286 Рік тому +3

    CMake can also generate Ninja project files, it's very nice

  • @eart-studio
    @eart-studio 2 роки тому +2

    Great video! I could use a vide about compiler optimizations. But it has to be so simple that even it can be used in programming game like ShenzhenIO or Human Resources Machine.

  • @luxusAI
    @luxusAI Рік тому

    cool video. i loved the summary

  • @sanidhyas3s
    @sanidhyas3s Рік тому

    Loved the video!

  • @Y3arin
    @Y3arin 2 роки тому

    Thanks, Amos. Great video!

  • @patiencebear
    @patiencebear Рік тому

    I don't know why I'm watching this. I'm using CI/CD since more than a decade, and probably started earlier than this you. Still interesting seeing how others started their journey.
    Good vid.

  • @chillidog8726
    @chillidog8726 7 місяців тому

    I had the exact same experience just not in the same way but I had the same revelations

  • @dorillos4201
    @dorillos4201 Рік тому

    Gracias Alexby

  • @unfa00
    @unfa00 Рік тому +3

    The biggest issue I have with Chrome is not technical at all. It's that Chrome is a vessel for Google to dominate the browser market, and that hurts us all, because they can push standards and practices that benefit their business while hurting everything else. Because most of the users will just accept it, everyone else has to adapt. It's the main reason I came back to using Firefox (which I am aware Google is also sponsoring indirectly).

  • @archamondearchenwold8084
    @archamondearchenwold8084 Рік тому

    such a good watch!

  • @bennguyen1313
    @bennguyen1313 8 місяців тому

    So many different projects..cmake, meson, maven , gradle , bazel
    Is there a latest-and-greatest set of tools that provide the most flexibility in building for calculators, windows, linux, etc?

  • @JustAnotherLight
    @JustAnotherLight Рік тому

    great video

  • @BriceFernandes
    @BriceFernandes Рік тому

    This video is not about build systems. I think that the concluding question here - When something doesn't make sense: Is it incidental complexity OR have you had a unique insight OR Is your current worldview missing some key pieces? - is critical. No matter what the answer is, asking the question when you reach a "WTF?!" moment is enlightening. I can easily project this onto my science education. Wish someone had told me this much earlier in my education and career.

  • @gamingwithvaibhav2787
    @gamingwithvaibhav2787 9 місяців тому

    my first build tool was Maven with Java and then gradle again with Java, at I first I hated the idea of using a build tool, I only realised the importance of build tools when I discovered MinGW and cross-compiling

  • @bigdaddy5303
    @bigdaddy5303 Рік тому

    I also started with my graphics calculator in the mid 90s :)

  • @sorenrichenberg3313
    @sorenrichenberg3313 Рік тому

    great storytelling ez subscribe

  • @thats-no-moon
    @thats-no-moon Рік тому

    This is a great video.

  • @ccgarciab
    @ccgarciab Рік тому +4

    "Sure, I had to learn English, but I also got a lifetime of trauma for being extremely online. So it's impossible to tell if that was good or not"
    I didn't sign up for this vicious targeted attack

  • @elietheprof5678
    @elietheprof5678 Рік тому +6

    I think most of these complex build systems exist to solve real problems that should have never been created in the first place.

    • @KirbyZhang
      @KirbyZhang Рік тому +2

      it's because people have competing visions of computing and the different visions have gained their respective mindshares. If you had just one vision that had the entire world's mindshare, then you wouldn't need any build systems. 😂

    • @elietheprof5678
      @elietheprof5678 Рік тому

      @@KirbyZhang Sometimes I wonder if forking entire projects would be a better solution to handling different visions of how things should be implemented. Forking would bring some redundant work, but maybe it would still be more efficient than dealing with bloated dev tools. Plus, people would probably abandon most forks rather quickly; it might help rapidly determine which implementation vision is really the best.

  • @grave0x
    @grave0x Рік тому +1

    And now we're at wsl2 and wsa

  • @BRP-Moto-Tips
    @BRP-Moto-Tips Рік тому

    you earned subscriber, a bit for the great video but mainly for the car go road meme lol

  • @oglothenerd
    @oglothenerd 8 місяців тому +2

    Is Objective-C++ actually a thing?

  • @jeremybobbin
    @jeremybobbin Рік тому

    7:27 “That’s new… and also annoying!” 😂😂

  • @MatthieuVion
    @MatthieuVion 2 роки тому +7

    This is a fascinating video which really complements your articles I was already reading. I can't wait to see more !
    For your next videos, maybe you could set up some sort of prompter, it is kind of weird to not have you looking directly into the camera, maybe it's because of the global trend that do it that cause it to me, but it's my feeling. I hope you won't take it personally :)

    • @fasterthanlime
      @fasterthanlime  2 роки тому +4

      I bought a teleprompter recently and use it in my latest video. Enjoy!

  • @samuelfischer3764
    @samuelfischer3764 Рік тому

    the internet has definitely changed this video, i needed to send a executable from a rust program to my friend on windows and all i had to do was just look up mingw

  • @3rdGen-Media
    @3rdGen-Media Рік тому

    Geez it took you longer than it should have to come to these realizations

  • @Morimea
    @Morimea Рік тому +3

    Literally my experience with computers and Linux/Java/OGL
    it was so painful to include LWJGL to your java build and make it work on more than your system, and linux build will always crash/fail on other linux because binary LWJGL library include other library that no presented on target linux...
    And you endup making something that currently Steam on Linux use - just pack half of Ubuntu libraries with your libraries, but even in 2010 size still mattered, so having 50Mb of binary libraries +90Mb portable binary java build because not a single linux had Java preinstalled... for your 500Kb jar file - it was not an option
    And yes - dont use opensource software it has no value and Elon Musk hate it.

    • @warpspeedscp
      @warpspeedscp Рік тому +1

      Thank goodness thimgs like arch linux's aur exist so that work can be delegated to the build system

  • @kajacx
    @kajacx Рік тому

    "These things you bang your head against the wall about have a place." Yea I agree. Most of the times that place will be to be replaced with Rust.

  • @BebehCookieIcecream
    @BebehCookieIcecream Рік тому

    I'm only in my third semester of computer engineering so I don't understand shit, but the wizard in the video makes me feel eager to learn things

  • @hansdampf2284
    @hansdampf2284 Рік тому

    Nearly all things made sense in the context or "world view" how you called it, they were made in. Otherwise people would not make them. Things only get bad when we use things in a context they were not made for. Because there is no more suitable tool (yet).
    I am a package maintainer for a linux distro. Maintainers often complain about the modern languages like Go and Rust because with their hang for static linking they do not quite fit into this package world that was mainly made with C in mind. Yet I still like coding in Rust and I can see how much this static linking simplifies the whole dependency process.
    Its interesting to see both "world views". Both are correct in their own context, yet

  • @ivanhbxyz
    @ivanhbxyz Рік тому

    this is great

  • @Kavukamari
    @Kavukamari Рік тому +1

    i want to make things that are cross platform too... i wish i could figure out all of those things as well

  • @linerider195
    @linerider195 Рік тому

    Here's a weird one, why do CCSDS standards exist?
    CCSDS - Consultative Committee for Space Data Systems, is a committée that does standards for satellites and rockets and space stuff. And most of space digital infrastructure, especially legacy and/or government infra, which in space is like 99% of it, relies on it.
    What's curious is they felt the need to redo the entire communications stack, from the physical layer through TCP and IP and beyond. They have their packet definitions and whatnot. And my question is, why? What need were they solving that required them to redo everything as opposed to say, take the normal internet stacks and do a couple adjustments for the intermittent long-delay radiowave-reliant communications typical of the space environment?
    TCP/IP has been used in space applications, I suspect the reason for this divergence is historic. But I don't know, and I wonder!

  • @RAHUDAS
    @RAHUDAS Рік тому +1

    I Hope I get this video 5 years ago

  • @BlackHermit
    @BlackHermit Рік тому +1

    Build systems are a science and an art. But once you understand how much time these things can save you, you adhere to the Law.

  • @felixinfinita3777
    @felixinfinita3777 Рік тому +6

    There's clearly a reason why build systems exist and how they got more and more complicated over time. But it doesn't have to be this way and that's a terrible oversight from the whole SW industry. Starting from OS libraries management and language architectures, it's a mess. I don't want to learn a different language just to build a program, we shouldn't tolerate unnecessary complexity.

  • @stabassam
    @stabassam Рік тому

    This was really good! Also, who was the person you wanted to share your first game with. :)

    • @fasterthanlime
      @fasterthanlime  Рік тому

      Just some schoolmates!

    • @stabassam
      @stabassam Рік тому

      @@fasterthanlime love your passion and drive. It led you to some great things! :)

  • @ravenecho2410
    @ravenecho2410 Рік тому

    spark-sxala kyro classes require so much builders or they dont exist at run time
    i think they now have an option to say hey cache these before run time.

  • @the_kovic
    @the_kovic Рік тому +2

    I'm going to take you on that call at the end of the video and ask a question to you (or any other knowledgeable stranger) that has been bothering me for a while - what are linker scripts and why do they exist?

    • @fasterthanlime
      @fasterthanlime  Рік тому +3

      The place I've seen them (from afar) is for embedded development, for hardware that expects the image to have sections in a certain fixed place - I believe the linker script defines the structure of the generated file, so it matches what the piece of hardware expects.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 Рік тому +2

      They are needed for special purposes. For example, say you are building a ROM for an embedded processor. Or you are building the Linux kernel. These are pieces of code that need special memory layouts, initialization/loading procedures etc. You control that in part via the linker script.
      Type “info ld” to find out more than you wanted to know about it.

  • @firesquid6
    @firesquid6 Рік тому

    Had the same experience discovering github actions

  • @SianaGearz
    @SianaGearz Рік тому

    I don't know doesn't every book on the subject explain where the executables come from, where the compiler is etc?

  • @Slipping_thru_the_Seams
    @Slipping_thru_the_Seams 7 місяців тому

    i ❤ this channel

  • @sofialmeidah
    @sofialmeidah Рік тому

    I was a bit surprised to see ikenna as a programmer

  • @leonie9248
    @leonie9248 2 роки тому +2

    I started the video thinking its topic was "How I learned to love to build systems". But no. :D

  • @victor.hausen
    @victor.hausen Рік тому

    I need to know the name of the game at 2:01, i've played it as a kind and have never been able to find it online!

  • @enigmeta
    @enigmeta 2 роки тому

    The Photoshop/3DS Max/Cubase screenshots loool

  • @nagendra3610
    @nagendra3610 4 місяці тому

    Awesome

  • @pondopondo1497
    @pondopondo1497 Рік тому

    The joke about trauma of being on the internet made me chuckle.

  • @sebastianwardana1527
    @sebastianwardana1527 Рік тому

    and .exe that run on windows mac and linux are a reality!

  • @TysonTc
    @TysonTc Рік тому

    Have you checked out tup build system you can use lua alongside the build system

    • @fasterthanlime
      @fasterthanlime  Рік тому

      Yeah I know tup! We used it to build everything when I worked at itch.io

  • @jakob1952
    @jakob1952 Рік тому

    Video title: How I learned to love build systems
    What I've read: How I learned to build love systems
    Close enough 😂

  • @sebastianwardana1527
    @sebastianwardana1527 Рік тому

    why dont we just use ftp for everything? i dont get networking... i have no clue...

  • @nexovec
    @nexovec Рік тому

    11:40 now I know which facebook group you're in

  • @Zubbbz
    @Zubbbz Рік тому

    I really liked this video as someone who is learning to program and isn't that knowledgeable

  • @yohannes2kifle
    @yohannes2kifle 2 роки тому +8

    This is awesome! Can't wait for your next uploads, hopefully more Rust hacking 😄

    • @fasterthanlime
      @fasterthanlime  2 роки тому +5

      Well that comment gave me an idea for a Rust video... now to actually, erm, make it. That's the hard part!

  • @sbmoonbeam
    @sbmoonbeam Рік тому

    just realised I've spent the last 20 years pronouncing MinGW like "ming-wee" and maybe most people don't

  • @TheHippyhopp
    @TheHippyhopp 2 роки тому +1

    Well right now im wondering why bash and sh exists. Why are there two slightly different systems?

    • @fasterthanlime
      @fasterthanlime  2 роки тому +3

      There's a bit of history here: www.aosabook.org/en/bash.html
      sh is the Bourne shell, bash is the Bourne again shell. There's plenty of other shells! dash, zsh, fish, nushell, etc. etc.

    • @lawrencedoliveiro9104
      @lawrencedoliveiro9104 Рік тому

      One of the many revolutionary aspects of Unix (compared to other systems of the time) was that the command processor was not built into the OS. It was built like any ordinary user program, and ran as an ordinary user process, with no special privileges. So if you didn’t like it, you could write your own. And lots of people did.

  • @leonie9248
    @leonie9248 2 роки тому

    Uh I had that CD, too!

  • @ramomehmedovic351
    @ramomehmedovic351 Рік тому +1

    0:38 I don't believe you. I am quite sure you missed some steps, you write some code, press a button, get an error, fix the error, get more errors and eventually it starts.

  • @samuellotz8304
    @samuellotz8304 Рік тому

    The last point about cargo is a big one. Its really annoying that it wants to do everything for you and its highly non-trivial to integrate it with a meta build system/package manager... As a non Rust programmer just using Rust dependencies (e.g. webgpu) you'll understand this very quickly.

    • @BosonCollider
      @BosonCollider Рік тому

      I don't entirely agree with this, it still makes it so that all the dependencies exist in one repository, and you have the benefit of always knowing that a tool that can compile this code for anymachine actually exists, which is not true of C++ projects, and that all the configuration exists in toml files that define everything specific to a project, so that tools exist to integrate it with bazel. Don't underestimate standardization as a way to avoid complexity. It makes it so that you don't need to download a vm image with the exact build env of the author

    • @samuellotz8304
      @samuellotz8304 Рік тому

      @@BosonCollider check out how you have to use cargo with tools like nix or Spack and I think you'll see my point. It's just about cargo adding some options to support it rather than the hacks needed now with e.g. bazel and nix

    • @clonkex
      @clonkex Рік тому +1

      As someone who cannot stand the excessive complexity of managing C/C++ dependencies and build systems, Cargo is great. Like C# or NodeJS, Rust/Cargo "just works". Grabs dependencies for you, compiles things, no long cli arguments, just "build this thing as the developer intended" and away it goes.

  • @arturo.gonzalex
    @arturo.gonzalex Рік тому

    As a teenager, I used to drink, smoke and had a lot of fun. Never been interested in such boring subject as computer science.
    15 years past, my attitude has changed :D

  • @egmluvr
    @egmluvr Рік тому +1

    Joy Wave

  • @trejkaz
    @trejkaz Рік тому

    These days, you can go into IDEA, make a new project from a template, and it will make a build script which can even build the installers.
    For a long time, tools would give us ways to get to a .jar file and then actually distributing the app in a useful way was still annoying. I feel like we have only just made it back to the convenience we used to have when visual development tools first appeared. We're still missing the drag and drop UI designer for Compose, so actually writing the code still takes time, but once that's in place we'll be back to what Visual Basic used to feel like when it first came out.

  • @espeon91
    @espeon91 Рік тому +2

    Hi Amos, great video!
    Have you read the paper Build Systems a la carte? There is a companion video as well. The authors give a general framework to understand build systems by comparing make, bazel, excel (!!) along axis of dynamic dependency handling, minimalism and distributed builds. They then move on to"build" a build system which works along these axes in Haskell.
    Paper: simon.peytonjones.org/assets/pdfs/build-systems-jfp.pdf

  • @SemiMono
    @SemiMono Рік тому

    Withhold judgement on a codebase until you understand it in its entirety.
    Withhold judgement on the developers of that codebase until you understand the entire history of that codebase.
    Someday... maybe... I'll be able to not freak out when I see seemingly "stupid" code.