I just don't like these DI systems that pull stuff "out of thin air" auto-magically instead of just passing arguments.
I just don't like these DI systems that pull stuff "out of thin air" auto-magically instead of just passing arguments.
Effect's type-safe DI simplifies application architecture (you now have a clear algebra that is interfaces + layer composition), promotes important architecture principles (e.g. it's a lot easier to compose within the application when components are not tangled because they have to pass "ambient" service props through), and as a result apps are a lot easier to maintain and evolve.
This is the sort of guardrail that really matters in the age of AI, because AI can still mess things up, but the blast radius of messing things up locally is very different than sloppifying architecture—and makes the problem of slop itself more treatable.