Wisdom From Linus | Prime Reacts

Поделиться
HTML-код
  • Опубликовано: 17 дек 2024

Комментарии • 995

  • @ThePrimeTimeagen
    @ThePrimeTimeagen  10 месяцев назад +1245

    For all of those asking "Why is hair blue?"
    I LOST A BET AND I AM A MAN OF MY WORD NO MATTER HOW STUPID I FEEL

    • @user-lz2oh9zz4y
      @user-lz2oh9zz4y 10 месяцев назад +49

      way worse if it were green

    • @MrAvocadoMan
      @MrAvocadoMan 10 месяцев назад +35

      thats a man of integrity

    • @onred_
      @onred_ 10 месяцев назад +28

      But what would you have gotten if you won?

    • @666ILIKECAKE
      @666ILIKECAKE 10 месяцев назад +8

      It works, keep it :D

    • @engineeranonymous
      @engineeranonymous 10 месяцев назад +2

      Respect

  • @gala_vs
    @gala_vs 10 месяцев назад +2087

    biblically accurate rust dev

    • @lonelywanderer2467
      @lonelywanderer2467 10 месяцев назад +17

      underrated comment bhahaha

    • @akhilbisht798
      @akhilbisht798 10 месяцев назад +1

      🤣

    • @nholms
      @nholms 10 месяцев назад +3

      What would Linus do? WWLD?

    • @ninocraft1
      @ninocraft1 10 месяцев назад

      hahaha, gottem good

    • @coolhologramkid
      @coolhologramkid 10 месяцев назад

      Programmers are also humans, has a video on Sr. rust dev.
      the dev also has blue hair.🤣🤣
      ruclips.net/video/TGfQu0bQTKc/видео.html

  • @DCCXXV
    @DCCXXV 10 месяцев назад +1008

    Nice senior rust dev hair

    • @RiwenX
      @RiwenX 10 месяцев назад +9

      🤣🤣🤣

    • @TheHighborn
      @TheHighborn 10 месяцев назад +65

      can't be one. He's not in a fur suit

    • @_Lumiere_
      @_Lumiere_ 10 месяцев назад +58

      It's part of the new Netflix uniform requirements

    • @jerichaux9219
      @jerichaux9219 10 месяцев назад +5

      @@_Lumiere_Either that or he has to personally go to Skid Row and greenlight a series pitched by a homeless drug addict.

    • @ok-alarm
      @ok-alarm 10 месяцев назад

      😂😂😂😂😂

  • @tacklemcclean
    @tacklemcclean 10 месяцев назад +1348

    That hair, telltale sign of entering the next phase of his furry arc

    • @CallMeMSL
      @CallMeMSL 10 месяцев назад +151

      Arc

    • @christophwinkler1655
      @christophwinkler1655 10 месяцев назад +54

      Trying so hard to pretend that he is not DrDisrespect

    • @hasan_haja
      @hasan_haja 10 месяцев назад +28

      @@CallMeMSL Arc

    • @yeetdeets
      @yeetdeets 10 месяцев назад +19

      I find it really jarring for some reason. I can't look at it too long, or I find it disturbing.

    • @ninocraft1
      @ninocraft1 10 месяцев назад

      ​@@yeetdeetsit is, maybe its just the autism speaking xD

  • @ycombinator765
    @ycombinator765 10 месяцев назад +470

    My biggest takeaway as a junior developer who is getting into real stuff.
    You dont have to solve every problem by creating a new abstraction, because not every problem is worth solving. - ThePrimeagen
    I love this. Thanks

    • @doc8527
      @doc8527 10 месяцев назад +15

      Also for all level of engineers. If you are not clear about the domain of a specific functions. Copy & Paste that function for your own usage with modification and clear out all the unrelated stuff is totally fine, it doesn't violate the DRY principle. Don't try to reuse everything, please.
      I have a hard hard hard time to watch people are arguing about DRY and Copy&Paste

    • @XDarkGreyX
      @XDarkGreyX 10 месяцев назад

      Yeah, i have stopped myself a many times.... but a reminder is always helpful

    • @AndrewTrumper
      @AndrewTrumper 10 месяцев назад +2

      YAGNI! You ain't gonna need it :-)

    • @Spoonbringer
      @Spoonbringer 10 месяцев назад +5

      Software developers like to be clever. Once your cleverness gets you in trouble a few times you'll learn to prioritize simplicity and maintainability.

    • @bike4aday
      @bike4aday 10 месяцев назад +9

      It's easier to write 5 lines of code 3 times than to write 50 lines of code to abstract those 5 lines and then share those 50 as a dependency in 3 projects that has to be maintained and documented for 20 years

  • @michaelslattery3050
    @michaelslattery3050 10 месяцев назад +171

    An experienced co-worker used to say: "you write it, you own it" and "Who's going to own it?". He would say this whenever someone would suggest a new tool or wrapper.

    • @ferinzz
      @ferinzz 9 месяцев назад +4

      Yes! Someone built a cheat sheet thing for... mostly another team. I haven't used it. I'm not sure who has used it and I'm not sure who has kept the info in there updated, if they ever did.
      He's no longer with the company, so now it's with another team who is just maintaining it.

    • @SXZ-dev
      @SXZ-dev 7 месяцев назад +4

      Then the communist co-worker says "i don't believe in private property" 😂

    • @Blaisem
      @Blaisem 7 месяцев назад +4

      And then the person who wrote/owns it leaves the company

    • @jocm99
      @jocm99 6 месяцев назад

      @@SXZ-dev "WE own it, damnit!!"

  • @batatanna
    @batatanna 10 месяцев назад +420

    therapist: Blue hair primeagen doesn't exist
    blue hair primeagen:

    • @DaliPose
      @DaliPose 10 месяцев назад +29

      Rust may make iron red but it makes programmers blue.

    • @Tony-mw-533
      @Tony-mw-533 10 месяцев назад +1

      He was like "hold my beer"

    • @private_account407
      @private_account407 10 месяцев назад +5

      primeagen isn't being treated by a therapist.
      the therapist is being treated by primaeagean

    • @batatanna
      @batatanna 10 месяцев назад

      @@private_account407 thats not how this meme works but ok

    • @Alan-ru5cg
      @Alan-ru5cg 10 месяцев назад

  • @petrus4
    @petrus4 10 месяцев назад +165

    Linus' two areas of proficiency are kernel development, and delivery of what TVTropes defines as the "The Reason You Suck speech."

    • @georgerogers1166
      @georgerogers1166 10 месяцев назад +14

      The two requirements for a BDFL.

    • @thule1823
      @thule1823 10 месяцев назад +7

      God bless Linus.

    • @Blaisem
      @Blaisem 7 месяцев назад +8

      Also made git

    • @aoeu256
      @aoeu256 7 месяцев назад +1

      @@Blaisem Git is hmm... kinda... messed up though, we use git because everyone else does. Where mercurial and whatever really worse?

    • @Blaisem
      @Blaisem 7 месяцев назад

      @@aoeu256 At different points they may have been, but I know some of their advantages have since been integrated into git. I don't know how they compare today.

  • @zacharythomasrobertson8471
    @zacharythomasrobertson8471 10 месяцев назад +192

    I can assure you my 20+ files of extensive boilerplate designed to track div toggle events are not garbage.

    • @ThePrimeTimeagen
      @ThePrimeTimeagen  10 месяцев назад +75

      i just wouldn't understand engineering (real engineering)

  • @nicholaswillhite5888
    @nicholaswillhite5888 10 месяцев назад +266

    The opposite of DRY (don't repeat yourself) is WET (we enjoy typing) :D

    • @dfcx1
      @dfcx1 10 месяцев назад +15

      This is why it's bad to have too nice a keyboard

    • @HansBezemer
      @HansBezemer 10 месяцев назад +5

      That's why the best programmers are lazy by default. We spend the extra effort to make a routine atomic, so we can make it into a module. That way we can just pull it in instead of having to write the whole darn thing again.

    • @mr-boo
      @mr-boo 10 месяцев назад +22

      I have learned that WET = Write Everything Twice; The heuristic being that you need at least three instances in order for an abstraction to be merited. It's not a perfect heuristic, but it's worth to keep in mind.

    • @pcwalter7567
      @pcwalter7567 7 месяцев назад

      Well said.

  • @dromedda6810
    @dromedda6810 10 месяцев назад +134

    prime is about to start wearing thigh highs, and run arch

    • @ninocraft1
      @ninocraft1 10 месяцев назад +22

      on his way to buy programming socks, software development is an equipment sport

  • @Finkelfunk
    @Finkelfunk 10 месяцев назад +302

    The even more funny thing:
    The guy who committed the change is a software engineer at Google and later admitted he actually did not understand what the function does or why it is important in detail.

    • @electrolyteorb
      @electrolyteorb 10 месяцев назад +36

      All in all, he f**ked up in the best way possible

    • @BeniaminSandu
      @BeniaminSandu 10 месяцев назад +143

      Thats not some random engineer at Google, he is one of the oldest kernel developers, a very known guy (speaks at conferences, part of Linux advisories boards, etc), and did most of the work for ftrace framework (IIRC). Which makes this thing kind of funny and awkward.

    • @dealloc
      @dealloc 10 месяцев назад +63

      Steven is not some random Google engineer.
      By Steven's own words; "tl;dr; Google had very little to do with the email thread. I didn't copy a function that I didn't understand but it was overkill for my use case which is why Linus said I didn't understand it. Linus was having a bad week when a bug report came in on my code."
      There's a longer comment on TheRegister explaining everything from his start as a kernel developer, building file systems, to the issue at hand and a more in-depth explanation of what happened.

    • @31redorange08
      @31redorange08 10 месяцев назад +5

      Why lie?

    • @Evan-dh5oq
      @Evan-dh5oq 10 месяцев назад +5

      ​@@deallocWeird to take Steven's words at face value while not taking Linus's

  • @thekwoka4707
    @thekwoka4707 10 месяцев назад +111

    "I have a video where I read an article about it"....peak reactor

    • @joestevenson5568
      @joestevenson5568 10 месяцев назад +23

      A prime reactor, even

    • @papsanlysenko5232
      @papsanlysenko5232 10 месяцев назад +4

      ​@@joestevenson5568prime reactor can not be even unless it's a 2

    • @supernova5434
      @supernova5434 10 месяцев назад +2

      @@papsanlysenko5232A prime reactor, odd

    • @timetraveler0002
      @timetraveler0002 10 месяцев назад

      @@joestevenson5568 nuclear reactor

    • @titos2k
      @titos2k 10 месяцев назад +1

      speaking of wrappers huh

  • @youkenez
    @youkenez 10 месяцев назад +88

    I like how polite and thoughtful Linus is there when he writes "*' in place of the "u". Anyway, I'd start using copilot if they upload a Linus agent, I need that.

    • @3lH4ck3rC0mf0r7
      @3lH4ck3rC0mf0r7 9 месяцев назад +17

      Don't let your memes be dreams. Train your own language model on aggro Linus emails.

    • @rgergigergeergergegergeg
      @rgergigergeergergegergeg 7 месяцев назад +1

      @@3lH4ck3rC0mf0r7 fuck. we need to do this.. lets make this a project.

  • @danielgulyas2575
    @danielgulyas2575 10 месяцев назад +34

    >wrap an already well known tool with their own tool because it helps shorcut some basic common usages
    i do that all the time, it's called a Makefile

    • @freasses
      @freasses 10 месяцев назад +2

      Cmake 🤣

    • @samuelwaller4924
      @samuelwaller4924 10 месяцев назад +1

      @@freasses ffs no. literally the definition of overcomplicating things

    • @rgergigergeergergegergeg
      @rgergigergeergergegergeg 7 месяцев назад

      @@samuelwaller4924 it depends what kind of tool.

  • @mx2000
    @mx2000 10 месяцев назад +25

    I agree, so much. Fighting this every day. I especially love it when teams create wrappers around APIs from other teams (not external, just another department), because, you know, maybe we want to change it at some point in the future.
    The more extreme version is the wrapper service, whose only purpose to map objects from a naming convention someone else invented to hour own naming convention.
    Add the microservices paradigms into the mix and you end up with a codebase that is 50% just wrapping and mapping.

    • @oblivion_2852
      @oblivion_2852 10 месяцев назад +11

      A significant portion of all computing is just generating and parsing json

    • @darekmistrz4364
      @darekmistrz4364 10 месяцев назад +4

      @@oblivion_2852 That is trully horrifying. Probably in the same order of magnitude of power usage compared to crypto mining

  • @davidli8936
    @davidli8936 10 месяцев назад +17

    As math grad, I think we have something similar to SWE’s obsession with abstraction, which is obsession with rigor, as described by Terry Tao’s article “There’s more to mathematics than rigour and proofs”.

  • @Griffin12536
    @Griffin12536 10 месяцев назад +14

    Why is his mustache dyed brown?

  • @sez5435
    @sez5435 10 месяцев назад +110

    Most calm Finnish person…

    • @Takyodor2
      @Takyodor2 10 месяцев назад +17

      *Perkele*

    • @lifelover69
      @lifelover69 10 месяцев назад +14

      Finland mentioned, torilla tavataan!

    • @topiuusi-seppa5277
      @topiuusi-seppa5277 9 месяцев назад +2

      The Swedes knew what they were talking about when they coined the term "Management by Perkele" to describe Finnish managers 😄 I suppose Linus managed to find just about the only niche where that style KINDA works. Anywhere else it's only harmful to everyone involved 😅

    • @rgergigergeergergegergeg
      @rgergigergeergergegergeg 7 месяцев назад +2

      @@topiuusi-seppa5277 thats completely untrue.
      this works everywhere, you people are just soft and trained to speak 90% lies and obfuscation.
      linus is pure honesty. and honesty is the only thing that works long term.

  • @flyguy8791
    @flyguy8791 10 месяцев назад +13

    This is something that happens all of the time at work for me too, where I continuously question "why did we make this so complicated" and the XY problem constantly comes up and haunts us! Definitely going to check your other videos on that.
    Ugh, with all rules in webdev - the rules like "DRY" are always "as needed" because you will inevitably end up over abstracting (or abstracting too early). Thanks for talking about the damage and impact this has had overall on a higher level!

  • @daniel85mg
    @daniel85mg 10 месяцев назад +132

    I'm worried what's gonna happen to the Kernel once Linus (fully)retires...

    • @maximofernandez196
      @maximofernandez196 10 месяцев назад +31

      I hope he finds someone just like him

    • @vilian9185
      @vilian9185 10 месяцев назад +12

      greg is there lol

    • @RicardoSilvaTripcall
      @RicardoSilvaTripcall 10 месяцев назад +54

      Looking at the Linux community today, once Linus retires, the whole thing is doomed ...

    • @AdamPippert
      @AdamPippert 10 месяцев назад

      Random fact: I bought a car at an estate sale from Linus’s neighbor once. The only reason I knew it was his house is because he used to drive this obnoxious yellow Mercedes with ‘LINUX’ on the license plate, and I saw it nearby.
      Also, we were friends in Google+, and I feel like that should count for something.

    • @TheJeremyKentBGross
      @TheJeremyKentBGross 10 месяцев назад +25

      A LOT of things in civilization only work because of the people who built them, or at least people who continued to have the same or similar standards of behavior, competence etc as those that did. Once that all goes away, everything falls apart.
      Tbh, as critical as Linux is, it looks like just the tip of the iceberg, or but one example case, atm.

  • @MarstonConner
    @MarstonConner 10 месяцев назад +16

    I am newish to software development but I have been in Tech for just shy of a decade. The issue I see a lot when people copy something they don't understand or they repeat certain patterns that are not optimal is time. A lot of people are afraid to take that extra step to learn the "Why's" of something because they may not "Feel" like they have the time to do so on a project, in a corporate setting. You should never have this issue on your own projects at home, take the time to learn!
    I am certainly guilty of this and I trying to get better with each new problem/project because I have found this to only hurt me in the long run.

    • @christopheriman4921
      @christopheriman4921 10 месяцев назад

      I literally went from trying to program games in java for a month or two to programming in C++ and trying to program game engines to then finding a game about making a turing complete computer and doing so to programming in Rust some other higher level things than that to finally what I am working on more actively right now which is learning about how operating systems work and trying to make one written completely in Rust without having to use assembly, I already know how annoying assembly is to program with because of the game previously mentioned and for the life of me I can't remember the conventions people have come up with for their version of assembly at best I know the most basic types of assembly work being just a find and replace with binary data that directly controls the hardware. What I mean to say with this is I found some very interesting things out by just trying to understand what code I was writing and how things worked.

  • @hackermanreal
    @hackermanreal 10 месяцев назад +38

    he's delving deeper into rust...

  • @daltonyon
    @daltonyon 10 месяцев назад +19

    Great things, every dev should read the XY problem every day until engrave this in mind! Linus say it a lot of true things that many times people don't want to hear these days!

  • @maxoumimaro
    @maxoumimaro 10 месяцев назад +20

    I think DRY is good if you apply KISS before. So primarily make things simple and as a way to do that, try and don't repeat yourself.
    In my current job, I made a task to abstract a "age of data checking" to a specific new class. It is so people don''t repeat themselfs, but much more about making it so if this fails, there is only one single point of failure. In the same project, we also have many linked lists (imposed by third party tool) and even if I could very well do something to make it less repetitive to handle, I didn't because it has no big added value, devs can just write a for loop for themselfs.

    • @nashiora
      @nashiora 10 месяцев назад +9

      Part of keeping it simple, for me, is repeating myself until I know more definitively if it was actually repetitive. All too often you assume something is the same as something else, and then you get further into the problem and you were either wrong or the circumstances have changed. It's often easy to combine things that turn out to overlap in the future if they truly do, but it's a pain starting and continuing to retrofit DRY early on regardless of the situation.

    • @SanderDecleer
      @SanderDecleer 10 месяцев назад +4

      Also, something I've seen happen too much is making something a function because it's used two or three times. This is fine as long as the same intent is behind the code. Sometimes the same code is used for different things and as such will change for different reasons.
      That is the biggest caveat I apply to DRY

    • @drygordspellweaver8761
      @drygordspellweaver8761 10 месяцев назад

      @SanderDecleer of course different code will use slightly different functions. That’s why function arguments accept VARIABLES. Lol. They VARY. Doesn’t mean there needs to be a separate goddamn function for every single variation.

    • @grimpowsify
      @grimpowsify 10 месяцев назад

      @@SanderDecleer as long as you write same code twice, its really bad, cose as soon as he need to be updated (and he will needs in general), you have to check every f**** spot where that code was duplicated to update those part too ...
      but feel free to copy paste same code if you want, as long as i dont work on it i dont really care x')

    • @SanderDecleer
      @SanderDecleer 10 месяцев назад

      @@grimpowsify In most cases I agree. But there are cases where two different concepts use the exact same code. When these concepts use the same method you might accidentally change more than you want while reworking that bit of code.
      That is why, for me in specific cases, I don't care two methods have the same nody.
      Copy pasting entire chunks of logic to do the exact same thing over and over again is an entirely different thing.

  • @kevinkkirimii
    @kevinkkirimii 10 месяцев назад +9

    It was an interesting thread to read, I appreciate the direct confrontation. There's a lot of maturity in this project.

    • @Blaisem
      @Blaisem 7 месяцев назад +1

      That was anything but mature from Linus lol. He ranted in his face for several paragraphs. He could have shut him down in 10 sentences tops and still done it via direct confrontation. Basically Linus went beyond shutting him down and bullied/intimidated him, as you can see from the other person's meek reply that Prime skipped over. Classic Linus, still toxic.

    • @kevinkkirimii
      @kevinkkirimii 7 месяцев назад +6

      @@Blaisem Read the whole thread, not what prime is just reacting to, understand the genesis of that conversation and you'll see why I came to that conclusion. Open source projects are hectic and repeated pull requests can be annoying, especially if they have the same issues re-occurring .

  • @wannabelikegzus
    @wannabelikegzus 9 месяцев назад +3

    1:00 - The biggest problem with complexity is that it creates problems at an exponential rate. I see this all the time at work, and it frankly drives me insane some days and completely deflates my will to contribute, because I know that I'm putting my stone in a cathedral of edge cases, gotchas, and 24-hr support SLA's that mean I'm going to have to twiddle my thumbs for two whole days before I get unblocked.

  • @lashlarue7924
    @lashlarue7924 10 месяцев назад +5

    8:00 Frankly, I don't get the obsession with DRY. If the code is readable and performant, then who cares if there's a bit of repetition? For smaller projects especially I think it can be taken too far to the point where future humans will be unable to quickly understand what past humans had built due to all the abstraction layers...

    • @halcyonramirez6469
      @halcyonramirez6469 10 месяцев назад

      Because it's a fundamental principle.
      11 times out of 10.
      breaking dry is just being g lazy.
      Why write twice when you can do it once?

    • @lashlarue7924
      @lashlarue7924 10 месяцев назад +1

      @@halcyonramirez6469 Yabut they can take it too far though. JS hyper-abstractions are a great example. Personally sometimes I find what you gain in elegance you often lose in future humans being unable to understand what the code is trying to do...

    • @HansBezemer
      @HansBezemer 10 месяцев назад

      If you don't get it, I'd consider a different career path.

    • @lashlarue7924
      @lashlarue7924 10 месяцев назад +2

      @@HansBezemer I'm in operations. My world is not the same as yours. I'm not developing the Linux kernel where everything needs to be cleaned with chlorine pentafluoride before the PR gets approved.

    • @HansBezemer
      @HansBezemer 10 месяцев назад

      @@lashlarue7924 Read my lips. Develop good programming practices. Because you can fall back on them when you need them.
      If you develop bad practices, you won't be able to shrug them off when you don't need them.

  • @seanmcconnell1874
    @seanmcconnell1874 9 месяцев назад +3

    PREACH!! I had a boss who literally told me that he would never approve duplicated code in reviews because DRY was the only way to write code

  • @zelbinian
    @zelbinian 5 месяцев назад +2

    The x-y problem is basically what librarian training is based on, learning how to unpack what the person is actually asking.

  • @MultiProGGer
    @MultiProGGer 10 месяцев назад +9

    You cannot make a problem simpler than it actually is. I feel like that people often try to abstract to make the problem simpler, but actually it almost always makes the problem more complicated. And even if that's just because now there is more code/tools/etc. to understand.
    Also: People should just stop inventing problems they don't actually have.

  • @muhammadhafizuddin2965
    @muhammadhafizuddin2965 10 месяцев назад +5

    Hii prime, just wanna say after i started watching you, i started to learn my environment. No im proud to say, im a neovim user, with all config i wrote from scratch after learning your video. Thanks so much man, you are like one of my idols ik programming world.
    Kinda crazy, but also crazy genius and passionate about programming. Btw, im from malaysia, small country in south east asia. Soo, ❤ from malaysia primeagen !!

  • @Kane0123
    @Kane0123 10 месяцев назад +49

    If I don’t solve tomorrow’s problems today, in a sense I’m the root cause of all problems that might not have needed to be problems if I’d problem-solved ahead of time…

    • @VojtěchJavora
      @VojtěchJavora 10 месяцев назад +19

      Sure, but in a way it's like branch prediction. If you are bad at guessing what tomorrow's problems are, you are just making it worse.

    • @3ventic
      @3ventic 10 месяцев назад +6

      The way you deal with that is documenting the known limitations and possible future problems ahead of time so fixing them can make it onto the roadmap before they become problems. It doesn't work for everything (e.g. software running off your premises or when software and hardware are tightly coupled), but often it does.

    • @martenkahr3365
      @martenkahr3365 10 месяцев назад +6

      The problem is, you don't know, actually know, what tomorrow's problems are going to be. And there's rarely a shortage of "today's problems" to deal with first.

    • @Gennys
      @Gennys 10 месяцев назад

      ​@@VojtěchJavoraso what you're saying is we should get CPU prediction architects to use their powers as a team leader instead of a CPU architect... Interesting.

    • @pianissimo7121
      @pianissimo7121 10 месяцев назад

      How come problems exist tomorrow?

  • @BeefIngot
    @BeefIngot 10 месяцев назад +2

    Being abusive to coworkers isn't cool no matter what's on your scoreboard.
    Making life difficult for other people for your amusement or because you're an adult who can't control their behaviour is a failure of you.
    People in general should try to route this behaviour out because I bet it's a big net negative for overall productivity and happiness. Real "10x" developer vibes from Linus on this one.
    We have too much technology and too many problems to be artificially be adding problems to other people's lives. Hiding bullying behind criticism is a weak excuse. You can criticize accurately and effectively without abuse.
    Being laid out so publicly and rudely is 100% a crushing experience for whoever this is aimed at.

  • @1414tyty
    @1414tyty 10 месяцев назад +3

    I would really appreciate it if Prime actually dove into the problem, not just sided with Linus, but formed his own opinion based on the problem space.

  • @mkvalor
    @mkvalor 10 месяцев назад +2

    Such good continued exposure for the X/Y Problem. Well done!

  • @FireStormOOO_
    @FireStormOOO_ 10 месяцев назад +4

    I want to hear more on this "don't take DRY too far" rant. The perfect abstraction can be amazing when it works, but so elusive sometimes.

  • @The-Funk35
    @The-Funk35 10 месяцев назад +2

    I wrote that docker tool, but in my defense we use a container registry that is not friendly with plain ole docker. We also have multiple environments and each environment has its own registry. I also had devs building containers from development git branches without realizing it. So the tool ensures you're building from the main branch, it tags everything for you, uploads to all of the different registries asynchronously to reduce wait times, it runs all tests prior to build and fails when tests fail, and it cleans up the registries now and then. Running the tool is a single command. I get what you're saying Prime but sometimes a wrapper is okay.

  • @MrRecorder1
    @MrRecorder1 10 месяцев назад +4

    8:20 - JavaScript does not have operator overloading... imagine JavaScript getting a global operator overload feature where any library you use can change the meaning of the +-operator at any time. :D:D:D:D

    • @clevrf0x916
      @clevrf0x916 10 месяцев назад

      Now we want this, someone should do it

  • @adriankal
    @adriankal 10 месяцев назад +2

    Except for the fact that Linus himself solved non existing problem back in early 90' when he sat down and created linux.
    Not solving nonexistent problems is a good rule in mature projects that many people relay on. But It also kills innovation.

  • @tuffgniuz
    @tuffgniuz 10 месяцев назад +5

    I suffered the consequences of striving to keep my code too DRY, to the point where it no longer made sense. The result was a need to refactor the code and learn that some repetition isn't inherently as bad as I initially thought.

  • @MikeC1
    @MikeC1 8 месяцев назад +3

    I once was trying to debug a web site that used an AJAX call that returned a JSON object, which contained several strings of JavaScript, HTML, and XML, which sometimes had further layers to debug within those strings,including calling a similarly packed AJAX function once unpacked and executed. All of these strings came from a database BTW. I was fired from that job because I wasn't productive enough.

  • @yoshi314
    @yoshi314 5 месяцев назад +1

    Linus has magical ability to look across the problem towards the real issue and foresight to avoid technical debt as much as possible.

  • @robonator2945
    @robonator2945 10 месяцев назад +4

    I genuinely fucking hate the "XY problem" because, no, sometimes you just need to do that thing, and now every single post anywhere online about doing that niche thing is just "do this entirely different thing that doesn't actually do what you asked" "Thanks, that solved it" and no-one who actually needs to do that niche thing can find out how. I'd rather the guy who can't be bothered to research a good solution deal with a suboptimal one then everyone who *_does_* know what they're doing be unable to actually do it because we tried to protect that one stupid person from themselves. If push comes to shove, just say "well, I think you're trying to do this, in which case go link>>> here

  • @georgeparaskevas8091
    @georgeparaskevas8091 8 месяцев назад

    That video was way more to the point than I thought it would be. Very nice.

  • @Cyanide300
    @Cyanide300 6 месяцев назад +28

    Bad engineers love complexity. Good engineers love simplicity.

    • @ProfShibe
      @ProfShibe Месяц назад

      Just as terry davis pointed out

  • @Zolodar
    @Zolodar 8 месяцев назад

    Does anybody have a link to Prime's video about the XY problem?
    I'd like to watch it, but I couldn't find it on either channel.

  • @UntitledProjectDemo
    @UntitledProjectDemo 10 месяцев назад +22

    MBA's are obsessed with the fantasy of JS-only companies, thinking that it will solve their recruiting problems while ignoring the complexity that writing JS exclusively brings. A company I worked for was acquired by a PE firm and they pushed us really hard to rewrite our 10yr old app in Node so that it would be easier to hire devs.

    • @JP-hr3xq
      @JP-hr3xq 10 месяцев назад

      This is so retarded. Just because the language is the same doesn't mean the libraries and API' are, let alone the design patterns. I thought we learned this lesson with Classic ASP and VBScript / JScript

  • @Kazshmir
    @Kazshmir 10 месяцев назад

    At 5:28 he says he has a video on the XY problem, but I can't find it. Anyone knows what it's called?

  • @CappytanMusic
    @CappytanMusic 10 месяцев назад +6

    I'm afraid of what Linux will become in the aftermath of the inevitable day when we lose Linus. :(

  • @acebasher1st360
    @acebasher1st360 8 месяцев назад +1

    I needed this video. I have a couple of projects now, where a customer wanted to 1) upload an Excel file 2) see the list the program makes of it and 3) runs whatever needs to be run. I basically copied my class from the first of such projects for all of them, making minor improvements.
    For this project of that sort, I wanted to abstract it somehow. This would undoubtably have taken a lot of time I don't have (because other big project going live soon). It would be a fake problem I guess, because copying a class takes almost no time and I can start working on what needs to be done for that particular use case. The level of abstraction needed would have been a nightmare, and the worst part is: I was seriously contemplating it for a while now.
    So ... thanks.

  • @harleyspeedthrust4013
    @harleyspeedthrust4013 10 месяцев назад +5

    lmao i just saw this yesterday and spent a good ten minutes reading the email chain between linus and steven

  • @DeanRTaylor
    @DeanRTaylor 10 месяцев назад +1

    Just so I understand the video, a bad PR on the Linux kernel that's written in C is the result of junior javascript developers?

  • @AaroRissanen-pi4td
    @AaroRissanen-pi4td 10 месяцев назад +6

    The lore friendly next step for him are the stripey programmer socks

  • @baka_baca
    @baka_baca 10 месяцев назад +2

    Real talk, I've been denying pull requests lately because devs were writing crazy complicated code for doing the simplest things. Often the abstractions required a lot more code (sometimes 3 times the amount) as compared with writing the code straight up.
    No... You do not need to make an array of objects and loop over them for everything, especially to save repeating 2 lines of almost identical code right next to each other.
    No... You don't need to create 3 layers of abstractions spread all over the file and code base to write that test, just write the dang test assertion in 1 line! Seriously I've deleted thousands of lines of code like this recently because of the craziness.
    I'd rather update a handful of lines of code by hand than learn whatever crazy abstraction you wanna invent on the fly.

  • @mainendra
    @mainendra 10 месяцев назад +5

    I totally agree. Instead of fixing problem find and fix the root-cause.

  • @Fulminin
    @Fulminin 10 месяцев назад

    7:58 the thing I always didnt understand about DRY is how are people pulling that off. like are they like endlessly just refactoring code and not finishing anything.

  • @alh-xj6gt
    @alh-xj6gt 10 месяцев назад +2

    There is "premature optimization" but there really should be "premature abstraction" too. Just because it is possible to wrap it in N layers of abstractions and indirections doesn't mean we should do that and think it is "maintainable" or "clean" or "DRY" or what ever unmeasured metric a large portion of devs are saying in a kneejerk defensive tone like they are kids caught red-handed with their hands in the cookie-jar. It reminds me of a blog series by Casey Muratori called "Semantic Compression", it is maybe a bit much text to review on stream but none the less pure gold.

  • @xdevs23
    @xdevs23 10 месяцев назад +3

    And Docker is just a wrapper around containerd and containerd is just a wrapper around linux namespaces and linux namespaces... yknow what, let's just write the OS from scratch

    • @grimpowsify
      @grimpowsify 10 месяцев назад

      yea its exactly what i tought ... ofc wrapper are fine if they respond to a need, and dont do (exactly) same boring thing X times is a need for me :)

  • @Dungeon_Synth_Enjoyer
    @Dungeon_Synth_Enjoyer 10 месяцев назад

    Can you drop a link to this message you reading from, the one in the description is not the same as in this video.Thanks

  • @Cirav
    @Cirav 10 месяцев назад +3

    I will solve problems which do not exist. I will use code I do not understand. I will over-complicate things. I will fail upwards while everyone else fails downwards. I will become a -10x engineer.

  • @russellf
    @russellf 10 месяцев назад +2

    Totally agree with this. In fact replace the word “tool” with “abstraction”. There are way too many abstractions that try to hide complexity but just add to the pile of stuff to learn.

  • @Lampe2020
    @Lampe2020 10 месяцев назад +7

    Linus may not be the nicest person in the world, but he certainly is one of the most important people in the world. He not only is a great developer, he also has basically the whole internet in his hands. Many network equipment parts (from fiber-to-wire-converters to the very servers that run the internet) run Linux or something based on Linux. Almost 100% of the web runs on Linux. And even 3.x% of desktop computers run Linux.

    • @youtubesuresuckscock
      @youtubesuresuckscock 10 месяцев назад

      Meh. It's not as important as you think it is. If it wasn't him it would have been someone else. It's just an offensive job that few--if any--sane people would actually want to do, so they let this little goblin do it.

    • @Lampe2020
      @Lampe2020 10 месяцев назад +4

      @@youtubesuresuckscock
      But because _he_ took that role _he_ is basically the most important person in the world. It's not because it's him, it's because he created and maintains Linux.

    • @youtubesuresuckscock
      @youtubesuresuckscock 10 месяцев назад

      @@Lampe2020 That's not my definition of most important. If he had never been born, things would have more or less played out the same way. The most important people had a significant impact. At the end of the day, no operating system really matters much.

    • @deleted01
      @deleted01 10 месяцев назад

      Had he not done what he did, other people would've come up with comparable solutions a few years later.

    • @Lampe2020
      @Lampe2020 10 месяцев назад +2

      @@deleted01
      Expand the answer section of this comment to see my answer to another user who said basically the same thing.

  • @BazsiDev
    @BazsiDev 10 месяцев назад

    As someone uninitiated, I don't understand how a _get_next_ino()_ call (sounds like a application-specific UID generator) can help achieve something that could otherwise be achieved with a _atomic 64_add return()_ call (sound like a very general arithmetic operation). What did the perpetrator hope, how could that function solve his/her problem?
    Apart from being ugly/unprofessional/etc., was there any chance that those were interchangable in the first place? O_o

    • @FaustoSaporito
      @FaustoSaporito 10 месяцев назад

      maybe is doing a simple addition to get the next unique inode number...

  • @wlockuz4467
    @wlockuz4467 10 месяцев назад +9

    Blue hair. Next step is the thigh high rainbow socks.

    • @rehoboth_farm
      @rehoboth_farm 10 месяцев назад

      Then he will cut off his penis. 🤣

  • @jewelsbypodcasterganesh
    @jewelsbypodcasterganesh 10 месяцев назад

    Does anyone know which video is the original XY Problem?

  • @schlopping
    @schlopping 10 месяцев назад +12

    Gordon Ramsey of coding

  • @andythedishwasher1117
    @andythedishwasher1117 10 месяцев назад +2

    1:30 "kinda just making up a thing, but..." *describes kubernetes*

    • @vilian9185
      @vilian9185 10 месяцев назад +2

      but kubernetes is documented

    • @andythedishwasher1117
      @andythedishwasher1117 10 месяцев назад

      @vilian9185 lol honestly not hating on k8s, but it kinda responded to exactly the perceived problem he was talking about.

  • @tatanyave
    @tatanyave 10 месяцев назад +25

    I like the way LT writes. Sharp, concise, clear. No superfluous words.

    • @BeefIngot
      @BeefIngot 10 месяцев назад +4

      "No superfluous words."
      What? He's verbose af. Like 20% of his words are dedicated to denigrating colleagues.

    • @bumblebee9426
      @bumblebee9426 10 месяцев назад +2

      Oh yeah, because you are not the subject.

  • @Lampe2020
    @Lampe2020 10 месяцев назад +1

    The "you copied the function without knowing why t works" is almost never true for me, although I still have to wrap my head around how _exactly_ the async function delay(ms) on my website (copied from SO) waits for the specified amount of milliseconds.
    Okay, I now (more than two years after adding it) finally understand how it works, it creates a promise that waits for a timeout to run out. Pretty clever!

  • @srujangurram
    @srujangurram 10 месяцев назад +22

    Heyy... Nice blue hair 😄

    • @RiwenX
      @RiwenX 10 месяцев назад

      It's green

    • @ea_naseer
      @ea_naseer 10 месяцев назад

      wait did he get his hair done or is this some video effect
      @@RiwenX

    • @VieiraBBX
      @VieiraBBX 10 месяцев назад

      @@RiwenX more like a teal

    • @RiwenX
      @RiwenX 10 месяцев назад

      @@VieiraBBX that’s one of those made up colors only girls recognize, like beige.

    • @lovredev
      @lovredev 10 месяцев назад

      @@ea_naseer He got his hair done

  • @256k_
    @256k_ 5 месяцев назад

    "making things more complicated than they need to be is a an apparent pass time of web development now"
    PREACH BROTHER

  • @CallousCoder
    @CallousCoder 10 месяцев назад +4

    At the bank where I did two freelance projects the last 5 years me and another freelance colleague always yelled: "STOP! What problem are we solving?"
    We are running BAU, so we know what the problems are that plague us, those we solve... Others that don't create business value, we flush!
    And the irony is that those devs who found the edge of the edge of the edge case, didn't even bother to check if a file open actually returned a valid FD. When the create an object that it actually isn't null when they ingest data from a source didn't bother to run the conformation and consistency checks -- two classes that actually bring value for data consitency.

  • @scamp3908
    @scamp3908 10 месяцев назад

    Can someone link the video of him talking about the XY problem?

  • @tanmaydas
    @tanmaydas 10 месяцев назад +3

    3:19 will probably be the most played segment of this video

  • @Luzgar
    @Luzgar 5 месяцев назад +1

    They end up making duplicate solutions meant to avoid repeating themselves. Genius !!

  • @MACAYCZ
    @MACAYCZ 10 месяцев назад +6

    I think he meant "do not solve problems that doesn't exists" other than "do not solve small problems"

  • @jonathan2847
    @jonathan2847 10 месяцев назад +2

    Docker is a wrapper around cgroups. Its wrappers all the way down.

    • @k.osiyuk
      @k.osiyuk 10 месяцев назад

      True, haha

  • @garthenar
    @garthenar 10 месяцев назад +3

    This is my first time seeing anything from Linus firsthand. I'm no expert by any means but I'm not going to lie; Sure he could have said that in a nicer way, but I agree with him on principle. I've often gotten flak for taking time to analyze the code that I'm supposed to just blindly import only to later fix a "crisis" with ease because I knew a bit about how the damn thing worked.

    • @Jefferson-ly5qe
      @Jefferson-ly5qe 10 месяцев назад

      Nothing wrong with inspecting code, as long as you aren't flaming people! As brilliant as LT is as a programmer, his social IQ is pretty low.

    • @U1TR4F0RCE
      @U1TR4F0RCE 10 месяцев назад

      Yeah, I don’t know if Prime has read old mailing list stuff but it has changed. He used to have more personal attacks on the dev rather than the code is garbage. He infamously said that someone should be retroactively aborted and were probably too stupid to find a teet to suck on.

  • @codyaimes4354
    @codyaimes4354 10 месяцев назад +1

    I'm not really in the computer coding community. When I build my own code, if i include a function, i do learn/understand it's structure. I guess that's why I'm slow/not good at it.

  • @xi9d
    @xi9d 10 месяцев назад +3

    bro dyed the hair blue, looking like Ninja(fortnite)

  • @MikeSwanberg
    @MikeSwanberg 10 месяцев назад

    OMG! This speaks to me so viscerally! I mean, sometimes you want a "wrapper" (usually scripts) to help people not make mistakes. Especially if it saves time from a daily set of tasks. But I agree 200%... sometimes companies build in-house things to do things in the way THEY do things and then they don't train the newbies or even have good up-to-date documentation. Preach, brother!

  • @DNAMIX1
    @DNAMIX1 10 месяцев назад +6

    He seemed to be a reasonable-sounding guy knowing his way, but then...... hi dyed his hair in a strange liberal color))

    • @ոakedsquirtle
      @ոakedsquirtle 10 месяцев назад

      He said he lost a bet haha

    • @Jabberwockybird
      @Jabberwockybird 10 месяцев назад

      He lost a bet

    • @senatrius1968
      @senatrius1968 9 месяцев назад +1

      I believe that strange "liberal color" is called "blue" these days.

  • @Neruomir
    @Neruomir 6 месяцев назад

    Linus keeps a tight ship and he's not shy about flaming out the code noob tourist trying to submit scrapcode just to brag he/she did kernel development.

  • @passioncorners
    @passioncorners 10 месяцев назад

    What does Prime means when JS can abstract anything at any point guys?

  • @oblivion_2852
    @oblivion_2852 10 месяцев назад +1

    The abstraction away from the actual tech (while the underlying tech stays the same) is something that cloud providers are notorious for. For example "hey you should come use our custom web gui routing system (nginx)" or "hey you should use our container apps with 90% of the features stripped and basic scale to 0 serverless orchestration (kube)"

  • @tanvski5984
    @tanvski5984 9 месяцев назад

    it has been a LONG TIME since I've heard something so useful on my lunchbreak quick videos. I'll share with my team the XY problem.

  • @snookandrew
    @snookandrew 10 месяцев назад

    What dye did you use for your hair?

  • @flyingchic3n
    @flyingchic3n 10 месяцев назад

    my team made a wrapper that brings up docker containers from a yaml file. It works just like, but not quite exactly like, docker compose

  • @choilive
    @choilive 10 месяцев назад +1

    People are saying Linus is back to his self. No, younger Linus was much much worse. Young Linus would have said "Your code is garbage, and so are you " vs older Linus says "Your code is garbage, get better or I'm going to ignore you".

  • @ymi_yugy3133
    @ymi_yugy3133 7 месяцев назад +2

    Call me a snowflake, but if I'd get such a code review I'd quit. A simple "Hey, this abstraction might be unnecessary. Please remove it or explain why it's needed" would have sufficed.

  • @normbograham
    @normbograham 8 месяцев назад

    Developers need to have meetings like AA, where they have to stand up and introduce themselves, and admit their code is crap. Honestly, things would advance, if people were open to criticism, and improve their code, rather then thinking they are so far above everyone else, and refuse to budge.

  • @LtNotzoClutch
    @LtNotzoClutch 4 месяца назад

    Anyone have the link to the XY Problem vid?

  • @robertfletcher8964
    @robertfletcher8964 10 месяцев назад +1

    I missed old Linus. Knowing he's there protecting the Kernel from well meaning dummies makes me feel a bit better.

  • @acetributon
    @acetributon 10 месяцев назад +2

    Yay 5 minutes after post! Can't wait to actually get into it!

  • @randommango1337
    @randommango1337 10 месяцев назад

    I don't even code and I love your content dude, keep up posting. Also respect for opening about your struggles in previous videos, big respect.

  • @Meketrefe84
    @Meketrefe84 10 месяцев назад

    thanks, Linus/x for having a look deeply at core changes, I really appreciate that you are the last bastion

  • @rockobonaparte
    @rockobonaparte 10 месяцев назад

    There's a one-two combo I really hate when asking for help online: The X-Y Problem and tl;dr. If I'm going to ask a question, I've often already had to look at alternatives and know about them. Now if I make my question very concise, I get asked why I'm doing X instead of Y. If I show my receipts to explain the entire situation, then it's too long and gets ignored. There's some middle ground in there that's pretty hard to hit, and it's kind of a moving target too.

  • @Oktokolo
    @Oktokolo 10 месяцев назад +1

    deciding how much abstraction is enough and how much is too much is one of the hard parts of being a dev.

  • @TomasLiutvinas
    @TomasLiutvinas 10 месяцев назад

    Anyone got a link to the-xy-problem reacting video?