Difference between revisions of "New software crisis"
(some basic text) |
|||
Line 2: | Line 2: | ||
{{wikitodo|Discuss this}} | {{wikitodo|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 <br> | ||
+ | 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). <br> | ||
+ | Bridging via plaintext without hard structural guarantees. <br> | ||
+ | See [[Gaps in software]]. | ||
+ | |||
+ | '''Bad abstractions:''' The saying goes: <br> | ||
+ | Ever problem in computer science can be solved with yet another layer of abstraction. <br> | ||
+ | Except the problem of too many layers of abstraction. <br> | ||
+ | Also there is a lack of languages that are conducive for <br> | ||
+ | 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 == | == Related == |
Revision as of 10:20, 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
Software crisis ...
The wikipedia article is mainly about the "old fist crisis" ist seems.
A lot of new severe large scale problems/challenges have arisen since then.