Difference between revisions of "Gaps in software"
m (added Category:Programming) |
m (→External links) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{stub}} | {{stub}} | ||
+ | Up: '''[[Software trouble pages]]''' | ||
With the development of [[atomically precise manufacturing]] we'll <br> | With the development of [[atomically precise manufacturing]] we'll <br> | ||
Line 15: | Line 16: | ||
* GUI commandline rift | * GUI commandline rift | ||
* (Caches-level barriers) | * (Caches-level barriers) | ||
− | * [[value-level type-level barrier]] – | + | * [[value-level type-level barrier]] – Dependently typed languages try to solve this one. Also gradually typed ones? <br> A related topic is: [[Interleaving edit, compile, and runtime]] |
---- | ---- | ||
* Safe cross thread communication in concurrent computing | * Safe cross thread communication in concurrent computing | ||
+ | ---- | ||
+ | Domain specific languages DSLs: | ||
+ | * [[DSL to general purpouse programming language barrier]] <br> Having a [[DSL as a library]] is highly desired but then <br>there still can be a [[DSL to host language barrier]] <br>related to [[homoiconicity]] | ||
+ | |||
+ | == Why these gaps are highly problematic, damaging, and harmful == | ||
+ | |||
+ | * Losing stability from lack of stable links in a large ad-hock patchwork of tools (that typically know little of each other). <br>Getting fragility and rapid bit-rot instead. | ||
+ | * Losing terseness and localness staying in a single programming language. Instead getting verboseness, <br>overwhelming complexity from idiosyncrasies of a patchwork of very many tools (Rube Goldberg machine). <br>Also one gets lots (too many) of nontrivial to trace indirections. | ||
+ | * Losing guarantees given by a good programming language <br>like e.g. type safety and guarantees on referential transparency <br>(see: [[Purely functional programming]]). <br>Instead getting heisenbugs and silent very hard to reproduce runtime type errors. | ||
+ | * There is likely more missed in this listing here. | ||
+ | |||
+ | '''All this drives up cost of production and worse cost of maintenance of code and software.''' <br> | ||
+ | Software creators increasingly become the slave of their own creation falling apart ever more rapidly if unattended. <br> | ||
+ | Likely a reason why free and open source software (not funded by crypto gambing) is increasingly in a crisis. <br> | ||
+ | And why the (to the authors view) false dichotomy "If you don't pay you are the product." gets <br> | ||
+ | increasingly lifted up to harmful(?) gospel. <br> | ||
+ | '''End of rant.''' | ||
+ | |||
+ | == Gaps in SW due to low level techinical challenges & high level social challenges == | ||
+ | |||
+ | === Technical === | ||
+ | |||
+ | A rant on Rube Goldberg software framework plumbing and app(lication)s being closed of silos: <br> | ||
+ | [https://pchiusano.github.io/2013-05-22/future-of-software.html The future of software, the end of apps, and why UX designers should care about type theory] – by Paul Chiusano 2013-05-22 | ||
+ | |||
+ | === Social === | ||
+ | |||
+ | Beside that there are gaps that will be eternally again and again recreated due to <br> | ||
+ | governance across the internet being not yet solved and thus distrust being the default leading to <br> | ||
+ | '''artificial security sandboxing barriers being erected again and again.''' <br> | ||
+ | |||
+ | Best effort to solve internet governance problem (highly nontrivial technical solution for a huge social problem) <br> | ||
+ | that [[this wikis author|APM:About]] has seen so far (2024) is holochain. <br> | ||
+ | Or more generally '''some of the principles of that the holochain protocol project pursues'''. <br> | ||
+ | Specifically the part about <br> | ||
+ | '''cross community (today cross platform) migratable self-souvereingn reputations''' <br> | ||
+ | (a subset of self souvereign identity SSID) <br> | ||
+ | '''and from these a buildup of a network of trust (partly via gossiping partly higher level).''' <br> | ||
+ | <small> That plus zero knowledge proofs allowing to '''reveal only parts of ones identity that are required and one is willing to share.'''</small> <br> | ||
+ | The CAL cryptrograpic autonomy license was (for one thing) created to enforce souvereignity (and thus transferability) <br> | ||
+ | of ones reputation and other aspects of identity. <br> | ||
+ | [https://opensource.org/license/cal-1-0 Cryptographic Autonomy License Version 1.0 – on OSI website] <br> | ||
+ | |||
+ | == Whorf-Conway (in a) cycle 🔁 == | ||
+ | |||
+ | Combining Whorfs and Conways law. Very briefly the laws are: | ||
+ | * [https://en.wikipedia.org/wiki/Linguistic_relativity Linguistic relativity (Sapir–Whorf hypothesis)] – "the structure of a language affects its speakers' worldview or cognition" (and what we they express) | ||
+ | * [https://en.wikipedia.org/wiki/Conway%27s_law Conway's law] – "organizations design systems that mirror their own communication structure" | ||
− | + | 🔁 '''Now adding both together one can get the following cycle:''' <br> | |
+ | * Bad/good (programming) "languages" for human computer communication limit/enhance what we can express (Saphir-Whorf). <br> | ||
+ | * This is a limit on (or enhancement of) our communication structure, and ultimately leads to worse/better (programming) "systems" being built (Conway). | ||
+ | Somewhat loose interpretation but perhaps interesting. | ||
== Related == | == Related == | ||
Line 37: | Line 89: | ||
* [https://en.wikipedia.org/wiki/Serialization Serialization] | * [https://en.wikipedia.org/wiki/Serialization Serialization] | ||
* [https://en.wikipedia.org/wiki/Inter-process_communication Inter-process communication] | * [https://en.wikipedia.org/wiki/Inter-process_communication Inter-process communication] | ||
+ | * [https://opensource.org/license/cal-1-0 Cryptographic Autonomy License Version 1.0 – on OSI website] | ||
=== Great article about barriers, gaps, rifts, and plumbing === | === Great article about barriers, gaps, rifts, and plumbing === | ||
− | * [https://pchiusano.github.io/2013-05-22/future-of-software.html The future of software, '''the end of apps''', and why UX designers should care about type theory – by Paul Chiusano 2013-05-22] – plumbing | + | * [https://pchiusano.github.io/2013-05-22/future-of-software.html The future of software, '''the end of apps''', and why UX designers should care about type theory – by Paul Chiusano 2013-05-22] – plumbing – [https://web.archive.org/web/20240318120002/http://pchiusano.github.io/2013-05-22/future-of-software.html (same via internetarchive)] |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
=== Concurrency === | === Concurrency === | ||
Line 59: | Line 101: | ||
[[Category:Programming]] | [[Category:Programming]] | ||
+ | [[Category:Software]] |
Latest revision as of 11:29, 6 May 2024
With the development of atomically precise manufacturing we'll
eventually reach a future world where matter essentially becomes software.
So it is really important to fix all the cracks and gaps within software till then.
Heck, if problems are not fixed there will be serious problems long before
advanced productive nanosystems arrive.
Contents
List of gaps / cracks / rifts / barriers /...
- RAM to HDD serialization barrier
- The CPU GPU gap
- inter process communication barrier
- network serialization barrier
- GUI commandline rift
- (Caches-level barriers)
- value-level type-level barrier – Dependently typed languages try to solve this one. Also gradually typed ones?
A related topic is: Interleaving edit, compile, and runtime
- Safe cross thread communication in concurrent computing
Domain specific languages DSLs:
- DSL to general purpouse programming language barrier
Having a DSL as a library is highly desired but then
there still can be a DSL to host language barrier
related to homoiconicity
Why these gaps are highly problematic, damaging, and harmful
- Losing stability from lack of stable links in a large ad-hock patchwork of tools (that typically know little of each other).
Getting fragility and rapid bit-rot instead. - Losing terseness and localness staying in a single programming language. Instead getting verboseness,
overwhelming complexity from idiosyncrasies of a patchwork of very many tools (Rube Goldberg machine).
Also one gets lots (too many) of nontrivial to trace indirections. - Losing guarantees given by a good programming language
like e.g. type safety and guarantees on referential transparency
(see: Purely functional programming).
Instead getting heisenbugs and silent very hard to reproduce runtime type errors. - There is likely more missed in this listing here.
All this drives up cost of production and worse cost of maintenance of code and software.
Software creators increasingly become the slave of their own creation falling apart ever more rapidly if unattended.
Likely a reason why free and open source software (not funded by crypto gambing) is increasingly in a crisis.
And why the (to the authors view) false dichotomy "If you don't pay you are the product." gets
increasingly lifted up to harmful(?) gospel.
End of rant.
Gaps in SW due to low level techinical challenges & high level social challenges
Technical
A rant on Rube Goldberg software framework plumbing and app(lication)s being closed of silos:
The future of software, the end of apps, and why UX designers should care about type theory – by Paul Chiusano 2013-05-22
Social
Beside that there are gaps that will be eternally again and again recreated due to
governance across the internet being not yet solved and thus distrust being the default leading to
artificial security sandboxing barriers being erected again and again.
Best effort to solve internet governance problem (highly nontrivial technical solution for a huge social problem)
that APM:About has seen so far (2024) is holochain.
Or more generally some of the principles of that the holochain protocol project pursues.
Specifically the part about
cross community (today cross platform) migratable self-souvereingn reputations
(a subset of self souvereign identity SSID)
and from these a buildup of a network of trust (partly via gossiping partly higher level).
That plus zero knowledge proofs allowing to reveal only parts of ones identity that are required and one is willing to share.
The CAL cryptrograpic autonomy license was (for one thing) created to enforce souvereignity (and thus transferability)
of ones reputation and other aspects of identity.
Cryptographic Autonomy License Version 1.0 – on OSI website
Whorf-Conway (in a) cycle 🔁
Combining Whorfs and Conways law. Very briefly the laws are:
- Linguistic relativity (Sapir–Whorf hypothesis) – "the structure of a language affects its speakers' worldview or cognition" (and what we they express)
- Conway's law – "organizations design systems that mirror their own communication structure"
🔁 Now adding both together one can get the following cycle:
- Bad/good (programming) "languages" for human computer communication limit/enhance what we can express (Saphir-Whorf).
- This is a limit on (or enhancement of) our communication structure, and ultimately leads to worse/better (programming) "systems" being built (Conway).
Somewhat loose interpretation but perhaps interesting.
Related
- Potentially solving a lot of the rifts: content addressed approach
Gaps in the development of APM
- Bridging the gaps in the development of advanced productive nanosystems
External links
- Serialization
- Inter-process communication
- Cryptographic Autonomy License Version 1.0 – on OSI website
Great article about barriers, gaps, rifts, and plumbing
- The future of software, the end of apps, and why UX designers should care about type theory – by Paul Chiusano 2013-05-22 – plumbing – (same via internetarchive)