This commit is contained in:
Miloslav Ciz 2025-04-14 21:57:02 +02:00
parent 5604db85d2
commit d8f1711fa8
33 changed files with 2096 additions and 2036 deletions

View file

@ -1,6 +1,6 @@
# Dependency
Dependency of a piece of [technology](technology.md) is another piece of technology that's required for the former to [work](work.md) (typically e.g. a [software](software.md) [library](library.md) that's required by given computer [program](program.md)). Dependencies are [bad](shit.md)! Among programmers the term **dependency hell** refers to a very common situation of having to deal with the headaches of managing dependencies (and [recursively](recursion.md) dependencies of those dependencies). Unfortunately dependencies are also unavoidable. However we at least try to minimize dependencies as much as possible while keeping our program functioning as intended, and those we can't avoid we try to abstract (see [portability](portability.md)) in order to be able to quickly drop-in replace them with alternatives. It turns out with good approach we can minimize dependencies very close to zero.
Dependency of a piece of [technology](technology.md) is another piece of technology that's required for the former to [work](work.md) (typically e.g. a [software](software.md) [library](library.md) that's required by given computer [program](program.md)). Dependencies are [bad](shit.md)! Among programmers the term **dependency hell** refers to a very common situation of having to deal with the headaches of managing dependencies (and [recursively](recursion.md) dependencies of those dependencies). Unfortunately dependencies are also unavoidable. However we at least try to ruthlessly minimize dependencies as much as possible while keeping our program functioning as intended, and those we can't avoid we try to [abstract](abstraction.md) away (see [portability](portability.md)) in order to allow their quick drop-in replacement them with alternatives. It turns out with [good approach](lrs.md) we can [minimize dependencies](bootstrap.md) to near [zero](zero.md).
Having many dependencies is a sign of **[bloat](bloat.md) and bad design**. Unfortunately this is the reality of mainstream "[modern](modern.md)" programming. For example at the time of writing this [Chromium](chromium.md) in [Debian](debian.md) requires (recursively) 395 packages [LMAO](lmao.md) xD And these are just runtime dependency packages, we aren't even counting all the hardware features each of this package relies on etc...
@ -24,8 +24,8 @@ In [software](software.md) development context we usually talk about software de
- [mouse](mouse.md), [speakers](monitor.md) and other I/O devices
- ...
- other:
- know-how/education: Your program may require specific knowledge, e.g. knowledge of advanced math to be able to meaningfully modify the program, or nonnegligiable amount of time spent studying your codebase.
- running cost: e.g. electricity, Internet connection cost
- know-how/education: Your program may require specific knowledge, e.g. knowledge of advanced [math](math.md) to be able to meaningfully modify the program, or nonnegligiable amount of time spent studying your codebase.
- running cost: e.g. [electricity](electricity.md), [Internet](internet.md) connection cost
- culture: Your program may require the culture to allow what it is presenting or dealing with.
- ...