Difference between revisions of "New software crisis"
m (→Main problems: lowercase) |
(→External links: Incidental complexity is not the same as accidental complexity!) |
||
Line 37: | Line 37: | ||
== External links == | == External links == | ||
+ | |||
+ | '''Incidental complexity is not the same as accidental complexity!''' <br> | ||
+ | Incidental complexity is unnecessary but still may be partially fully intentional introduced. <br> | ||
+ | See: https://coder-mike.com/blog/2021/09/24/incidental-vs-accidental-complexity/ <br> | ||
+ | The lack of necessity of incidental complexity of the complexity may fall anywhere on the spectrum knowledge quadrant spectrum. <br> | ||
+ | |||
+ | '''Accidents:''' | ||
+ | * unknown unknowns – Not influencable fate. | ||
+ | * unknown knowns – Oops, I actually totally would have known that this decision is bad if I would have been more vigilant. | ||
+ | '''Conscious decisions:''' | ||
+ | * known unknowns – This could be bad but it's hard to think about, so lets juts hope for the best. | ||
+ | * known knowns – Very consciously doing bad ugly horrible hacks. | ||
+ | |||
+ | === Old crisis === | ||
[https://en.wikipedia.org/wiki/Software_crisis Software crisis] ... <br> | [https://en.wikipedia.org/wiki/Software_crisis Software crisis] ... <br> | ||
− | The | + | The Wikipedia article is mainly about the "old fist crisis" it seems. <br> |
A lot of new severe large scale problems/challenges have arisen since then. | A lot of new severe large scale problems/challenges have arisen since then. |
Revision as of 13:31, 1 January 2023
(wiki-TODO: Discuss this)
Main problems
Accelerating bit-rot from:
- dependency hell
- incidental complexity
- plumbing across gaps
- bad abstractions
Incidental complexity growing acceleratingly all the way to the point
where a rewrite from scratch is the only option. Just another form of bit-rot.
Plumbing: Lack of good abstractions over barriers in underlying hardware (including network barriers).
Bridging via plaintext without hard structural guarantees.
See Gaps in software.
Bad abstractions: The saying goes:
Ever problem in computer science can be solved with yet another layer of abstraction.
Except the problem of too many layers of abstraction.
Also there is a lack of languages that are conducive for
tools to easily trace across levels of abstraction.
Main cures
- provably guaranteed purity of code (purely functional languages aka denotative languages)
- super fine grained content addressed (fine grained per function / closure)
Related
- Gaps in software
- The problem with current day programming and its causes
- General software issues
- Software
External links
Incidental complexity is not the same as accidental complexity!
Incidental complexity is unnecessary but still may be partially fully intentional introduced.
See: https://coder-mike.com/blog/2021/09/24/incidental-vs-accidental-complexity/
The lack of necessity of incidental complexity of the complexity may fall anywhere on the spectrum knowledge quadrant spectrum.
Accidents:
- unknown unknowns – Not influencable fate.
- unknown knowns – Oops, I actually totally would have known that this decision is bad if I would have been more vigilant.
Conscious decisions:
- known unknowns – This could be bad but it's hard to think about, so lets juts hope for the best.
- known knowns – Very consciously doing bad ugly horrible hacks.
Old crisis
Software crisis ...
The Wikipedia article is mainly about the "old fist crisis" it seems.
A lot of new severe large scale problems/challenges have arisen since then.