Programmers are always like "ok I'll explain dependency injection... Let's say you need to foo bar with your baz, instead of bazzing your class foo you initialize the baz with your bar"
@Gulfie quite a few years ago i was trying to work out what the actual fuck dependency injection was, or what problem it solved. it genuinely took me like a day to even get my head around it. actually now i've forgotten since it was a while ago, but i seem to remember that it was a solution to basically a fake made-up problem caused by another part of the way their programming language/libraries work, which explains why i'd never encountered it before outside of that language/ecosystem
@Gulfie it took me so long to get it and it's just "it makes it easier to write tests"
@Gulfie Dependency injection is one of those things that convience me nobody has a clue what designing software even is. Like, it always seems like it's making "give something an object wrapping a bunch of capabilities to do something else" way to complicated. Like I swear it's just like
```
foo, bar = Thingy.new(), Thingy.new()
foo.doThinger = SuperDoThinger.new()
bar.doThinger = UltraDoThinger.new()
```
and it's complicated and messy cause your language sucks balls.
@Gulfie Maybe I'm too prototype-based to understand why "dynamically changing the capabilities of an object" is so novel.