3 ms·
Computing natural laws are much much much stricter and simpler than the laws of physics. When in physics you have many fundamentally distinct fileds with their
by a-nikolaev 11y ago
Computing natural laws are much much much stricter and simpler than the laws of physics.
When in physics you have many fundamentally distinct fileds with their own models and view of the world: mechanics, thermodynamics, statistical physics, electronics, optics, quantum physics and all sorts of fundamental theories like string theory. This is a very rich system, with many complex models. Scienetists only hope fore some unification there, but for the most part you have to deal many diverse parts of a huge multi-scale puzzle, and the peices don't always fit together nicely.
When you look at computation, what it really is, well a primitive Turing machine is all you can hope for really. Some resarchers push it a little bit into infinite-time computability, but it's not a realistic model of computation anyway.
What you can do with computation are conditions, loops, and variable assignment. Or in lambda calculus, it's just substitution and name binding. Even worse, name binding is not really necessary if you express your program with combinators. So, fundamentally computation is substitution, a rewriting system.
Computation is simple and trivial, but still, it's a great model, and you can create amazing things in it, even though the laws of computation are really trivially simple.
- agumonkey 11y agoWell, nobody lives at the TM or LC level. I agree that these theories are as strict as a theory can be. But we stack so many layers, the theory disappear and it's all politics. As if in the end programming was more about running a city than building an engine. And then, simplicity feels like a pipe dream.
- a-nikolaev 11y agoOf course no one in their right mind writes code for complex Turing machines, but don't be confused by all the layers of abstractions. Programming at any level is fundamentally the same, it's about iteration, branching, composition of smaller pieces, and packaging smaller pieces into bigger ones. No matter at what level you write your code, it's always like this. The differences in API are not important. EDIT: I think that concurrency is a bit different in this respect. It really requires somewhat different prespective, but again it reduces to simple basic elements (like the agent model, or pi calculus) which are reiterated and reimplemented many times.