Difference between revisions of "New software crisis"

From apm
Jump to: navigation, search
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 wikipedia article is mainly about the "old fist crisis" ist seems. <br>
+
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

This article is a stub. It needs to be expanded.

(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

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.