> Nearly every physical system is implementing nearly every pure algorithm, ie., every computable function.
Sure. And also about the air and neural network. This is all irrelevant, for the same reason that every possible program and every possible copyrighted work being contained in the base-10 expansion of the number PI is irrelevant. Or that a photo of every event that ever happened anywhere is contained in the space of all possible (say) 1024x1024 24-bit-per-pixel bitmaps. It's all in there, but it's irrelevant, because you have no way of determining which combinations of pixels are photos of real events. And any random sample you take is most certainly not it.
> All actual algorithms, when specified, have massive non-computational holes in them called 'i/o', device access etc.
Only if you stick to a subset of maths you use for algorithms, and forget about everything else. The only actual hole there would be in your memory, or knowledge.
Sure, I/O doesn't play nice with functional programming. It doesn't stop functional programming from being useful with real computers in the real world. We have other mathematical frameworks to describe things that timeless, stateless computation formalisms can't. You are allowed to use more than one at the same time!
> You cannot implement a web browser on 'gears' in any useful sense, in any sense in which the partices of their air arent already implementing the web browser.
Of course I can. Here is the dumb approach for the sake of proof (one can do better with more effort):
1. Find a reference for how to make a NAND gate with gears. Maybe other logic gates too, but it's not strictly necessary.
2. Find the simplest CPU architecture someone made a browser for, for which you can find or get connection-level schematics of the chip; repeat for memory and other relevant components, up to the I/O boundary. Make sure to have some storage in there as well.
3. Build electricity/rotational motion transducers, wire them to COTS display, keyboard, mouse and Ethernet ports.
4. Mechanically translate all the logic gates and connections from point 2. to their gear equivalents using table 1., and hook up to 3.
5. Set the contents of the storage to be the same as a reference computer with a web browser on it.
6. Run the machine.
Of course, this would be a huge engineering challenge - making that many gears work together, in spite of gravity, inertia, tension and wear, and building it in under a lifetime and without bankrupting the world. Might be helpful to start by building tools to make tools to make tools, etc.
But the point is, it's a dumb mechanical process, trivially doable in principle. May be difficult with physical gears, but hey, it worked in Minecraft. People literally built CPUs inside a videogame this way.
> We have rigged a system of electrical signals to immitate a formal programming langauge -- but this is an illusion.
It's the other way around: we've rigged a system of electrical signals to make physical a formal theoretical program. We can also rig a system of optical signals, or hydraulic signals, or pidgeon-delivered paper signals, to "immitate a formal programming language" and implement a formal theoretical program - and as long as those systems immitate/implement the same formal mathematical model, they're functionally equivalent and interchangeable.
I think you aren't following the defintion of 'computer' or 'computable', you seem to have a mixed physical notion of what a 'computer' is.
A computer, from a formal pov, is just an abstract mathematical object (like a shape) which has abstract properties (eg., like being a circle) that are computable, ie., are functions from integers to integers.
The physical devices we call 'computers', in many ways, arent. They exist in space and time and hence have non-computable properties, like their (continuous) extension in space and time.
See Turing's own paper where he makes this point himself, ie., that physical machines arent computers in his sense because they're continuous in time.
Insofar as you appeal to any causal aspects of a physical system you arent talking about a computer in turing's sense, and nothing like a turing equivalence would apply.
We already know that all computable functions can be implemented by 'arbitary substrates' -- this is just the same as saying that you can 'make a circle out of any material'.
In exactly the same sense as gears can be networked, sand dunes already are. You can just go around labelling particles of sand with 0s and 1s, and for a subset, there you have it: the computable aspects of the TCP/IP protocol.
But this is irrelevant. TCP/IP isnt useful because of its computable aspects. It's useful as a design sheet for humans to rig systems of electrical devices with highly specific causal properties.
The system we call 'the internet' is useful because it connects keyboards, screens, mice, microphones, webcams, SSDs, RAM, etc. together -- and because these devices are provide for human interaction.
The sand dune is likewise already implementing arbitary computable functions, so is the sun, so is the air, and any arbitary part of the universe you care to choose.
But the sand dune lacks all the properties the internet has: there's no webcam, no keybaord, no screen, etc.
What we actually use are physical properties. Talk of algorithms is just a design tool for people to build stuff
Sure. And also about the air and neural network. This is all irrelevant, for the same reason that every possible program and every possible copyrighted work being contained in the base-10 expansion of the number PI is irrelevant. Or that a photo of every event that ever happened anywhere is contained in the space of all possible (say) 1024x1024 24-bit-per-pixel bitmaps. It's all in there, but it's irrelevant, because you have no way of determining which combinations of pixels are photos of real events. And any random sample you take is most certainly not it.
> All actual algorithms, when specified, have massive non-computational holes in them called 'i/o', device access etc.
Only if you stick to a subset of maths you use for algorithms, and forget about everything else. The only actual hole there would be in your memory, or knowledge.
Sure, I/O doesn't play nice with functional programming. It doesn't stop functional programming from being useful with real computers in the real world. We have other mathematical frameworks to describe things that timeless, stateless computation formalisms can't. You are allowed to use more than one at the same time!
> You cannot implement a web browser on 'gears' in any useful sense, in any sense in which the partices of their air arent already implementing the web browser.
Of course I can. Here is the dumb approach for the sake of proof (one can do better with more effort):
1. Find a reference for how to make a NAND gate with gears. Maybe other logic gates too, but it's not strictly necessary.
2. Find the simplest CPU architecture someone made a browser for, for which you can find or get connection-level schematics of the chip; repeat for memory and other relevant components, up to the I/O boundary. Make sure to have some storage in there as well.
3. Build electricity/rotational motion transducers, wire them to COTS display, keyboard, mouse and Ethernet ports.
4. Mechanically translate all the logic gates and connections from point 2. to their gear equivalents using table 1., and hook up to 3.
5. Set the contents of the storage to be the same as a reference computer with a web browser on it.
6. Run the machine.
Of course, this would be a huge engineering challenge - making that many gears work together, in spite of gravity, inertia, tension and wear, and building it in under a lifetime and without bankrupting the world. Might be helpful to start by building tools to make tools to make tools, etc.
But the point is, it's a dumb mechanical process, trivially doable in principle. May be difficult with physical gears, but hey, it worked in Minecraft. People literally built CPUs inside a videogame this way.
> We have rigged a system of electrical signals to immitate a formal programming langauge -- but this is an illusion.
It's the other way around: we've rigged a system of electrical signals to make physical a formal theoretical program. We can also rig a system of optical signals, or hydraulic signals, or pidgeon-delivered paper signals, to "immitate a formal programming language" and implement a formal theoretical program - and as long as those systems immitate/implement the same formal mathematical model, they're functionally equivalent and interchangeable.