3 ms·
It seems the complicated part of using a computer is not adding numbers together but organisation and preparing an environment for computation. To run a comput
by samsquire 4y ago
It seems the complicated part of using a computer is not adding numbers together but organisation and preparing an environment for computation.
To run a computation I need code and data to be in the right place. If you analysed the number of add instructions of an average compiled program, I feel we would be surprised how many instructions are actual computations and not copying or moving. I'm excluding address calculations and referring to "add" or "subtract".
Preparing an environment for computation is copying data to the machine and preparing dependencies such as docker, package managers, compilation and other work. It's also moving data between registers in preparation for a calculation. It's similar to a factory processing raw ingredients that need transportation.
How do you represent all this movement and logistics efficiently and untediously? I feel computer science could probably expend some effort on representing logistics efficiently.
- Serenacula 4y agoI think the entire field of computer programming might be described as various methods of organising and representing logical structures efficiently.
- samsquire 4y agoYou're right. Within a codebase there's a arbitrary number mental models that that particular code base uses to solve problems. Perhaps it uses a calling convention, or a REST API or a C FFI API. Or Spring. The problem is ultimately how do I get data from here to there so that I understand it for doing an organised computation on it. When you go outside that codebase, you switch mental models of how to solve and think of problems. It's similar to switching between writing in Python and then writing commands in bash shell. It's similar to switching between HTML, CSS and Javascript as a frontend developer. Or embedded C programming or the code of a compiler. I feel the logistical problem is space or position based, which can also be computed with numbers or vectors as with language models. How many of the problems that people solve with programs are the same problem, said slightly differently? BSD sockets standardised communication but we have so many solutions to positional+placement logistics: systemd, sysv, Tomcat/application servers, kubernetes, package managers, docker, wasm runtimes, virtual machines, firecracker, OSGI, LXC, processes, threads, databases and so on. Said another way: what is where.
- 082349872349872 4y agohttps://en.wikipedia.org/wiki/KeyKOS https://en.wikipedia.org/wiki/KeyKOS was an OS that attempted to solve the problem of bringing code and data together when both parties don't wish to leak any information to the other. (example: the code is a third-party key management app, and the data are an org's private keys) Unfortunately, having been in development from 1977-1988, it was an example of Solving a Problem Too Early.