What’s Wrong With The Function-Based Paradigm?
That’s actually tough for me to explain. One of those "it's so deeply ingrained in me, that I find it hard to put into words", but, I am thinking about it.
Here'a trivial example: just about all function-based programming languages use the concept of exceptions. When you step back and look at that, you see that this simple addition violates the principles of structured programming. It should be 1 in and 1 out, but it is 1 in 2 out. And, it can create hoary control flows.
That's a tell that we hit the edges of the paradigm. Instead of switching to another paradigm, we just worked-around the problem and continued. In Copernicus' day, this kind of thing was called an epicycle.
In one of my other projects, I'm staring at the 1972 schematics for Atari Pong1. 1 page. About $100.00. No CPU needed. If I look at the same game written in Lua (Love2D), I see millions of lines of code (about 200 LOC Lua, another 50,000,000 LOC for Windows or MacOS or Linux) and the game can’t run unless you use an expensive laptop (or phone?) with some operating system pre-installed and paid-for. This smells bad.
At the moment, I think that the idea of synchronizing EVERYTHING is causing lots of bloatware. The Atari schematic incorporates massive parallelism, but, this fact never bothered anyone, nor was even noticed. 0D tries to fake out Components that can be massively parallelized.
Sector Lisp2 respects the function-based paradigm and its limitations. Most modern programming languages do not respect the limitations of the function-based paradigm. For example, heap-based garbage collection is the antithesis of the function-based paradigm. Most modern programming languages do not respect the limitations of CPUs. Subroutines are not functions, yet, most programming languages create the edifice of functions, at the cost of extra bloatware.
See Also
References: https://guitarvydas.github.io/2024/01/06/References.html
Blog: https://guitarvydas.github.io/
Videos: https://www.youtube.com/@programmingsimplicity2980
Discord: https://discord.gg/Jjx62ypR
Leanpub: https://leanpub.com/u/paul-tarvydas
Gumroad:
https://tarvydas.gumroad.com
Twitter: @paul_tarvydas

