4 ms·
Pet peeve: This shouldn't be called computers. Doing so blurs the difference between what they and <the natural conceptspace cluster normally called "computers"
by SilasX 3y ago
Pet peeve: This shouldn't be called computers. Doing so blurs the difference between what they and <the natural conceptspace cluster normally called "computers"> do.
This is a calculator: a machine cable of doing a one-off operation (implementing something interpretable as a calculation) before requiring further intervention. "Computer" should be at least reserved for those that can do a lot of instructions, preferably indefinitely, without human involvement.
And I don't think this is a terminological nitpick, it bleeds into a fundamental disconnect that leaks out in their puffery:
>The aim is to demonstrate how very simple reactions, simple enough that they occur in real physics, can be combined to perform mathematical calculations — which hopefully helps explain how large numbers of transistors can combine to play Doom.
No, it doesn't. No matter how many of these domino calculators you string together, you're not getting Doom (even with the appropriate hardware to use the calculation's results). To model the core dynamic needed to run Doom, you at least need the ability to indefinitely run such calculations, in a way that subsequent ones depend on the results of earlier ones. By construction, these systems can't do that, and provide no insight into how you would.
It does provide a demonstration that a (non-electronic) physical system can implement the dynamic behind addition. Cool. But I'm not sure what layperson actually has trouble on that point. There are lots of physical systems that do that -- the confusion, I think, would lie in how you can bridge the gap to Doom. (At least, it was for me when computers seemed mysterious.)
Cool, they found one more physical way to implement a specific calculation. Call it a domino calculator. Don't call it a computer, don't imply it solves the core difficulties needed to run Doom.
Okay, rant over, now you can accuse me of making a mountain out of a molehill.
- fwip 3y agoIf the dominos had little motors to stand themselves back up after N seconds, would it then fit your criteria? Also, more pedantry - if you string enough domino calculators together, you could get arbitrarily long running-time of Doom - even the 49.7 days of uptime after which Windows 95 would restart. :)
- SilasX 3y agoI made a comment in the neighboring subthread that I think answers this: https://news.ycombinator.com/item?id=40080169 https://news.ycombinator.com/item?id=40080169
- VyseofArcadia 3y agoWhen I was little and first starting to dig through my local library for books about how computers work, I ran across something sort of like this domino example, and I spent years trying to work out how you could build something Super Mario Bros. out of just a bunch of stuff that a cheap four-function calculator could to. Sure, I guess ANDs and ORs are a little different from + and -, but they're still fundamentally calculations. Eventually I realized the same thing you called out here. You need a few extra things to really do computation instead of calculation. Memory, for one, and branching is crucial. But these little demo "computers" like this and Steve Mould's water computer always leave these out. There's probably dozens of little curious minds like mine that look at this, get excited that they'll finally understand how that magic rectangle works, and then get frustrated when they can't see how the rubber meets the road (because they're missing crucial pieces through no fault of their own).
- SilasX 3y agoThank you! It feels so good to know I wasn't alone in thinking this! Here's an earlier comment where I fleshed out the point (connected to a possibly dubious, parallel argument about LLMs). Start from "If my point isn't clear": https://news.ycombinator.com/item?id=35472089 https://news.ycombinator.com/item?id=35472089
- galdosdi 3y agoThe key thing you end up needing is a clock (along with memory of course, yeah) I still remember clearly the day I in college read the SICP chapter on simulating circuits and realized how computers work -- a purely functional circuit combined with a clock to govern that circuit so its inputs come from memory which came from the previous state but its outputs go into memory for the next state. Prior to that I always had the same confusion you describe -- logic happens, but how does anything actually progress? Branching isn't really necessary per se in that you can do tricks to avoid it but essentially accomplish the same thing (differentiable computing leans heavily on this), eg if you want to select A or B, rather than saying `if(x) a else b`, you can say `xa + (1-x)b`
- andoando 3y agoBut a loop can be constructed with just these gates. CPU, memory, and etc sre just a collection of these gates, connected by these gates. For sure, you need to go further in this direction to build a general purpose computer, but it is in this direction that you have to go.
- SilasX 3y ago>But a loop can be constructed with just these gates. No, it can't be. You could unroll a constant length loop into a network of these domino calculators (which is how you get Turing-completeness in homomorphic encryption from a few logical primitives), but you cannot implement arbitrary looping that real computers can do. >CPU, memory, and etc sre just a collection of these gates, connected by these gates. No, they aren't. Those implement the additional functionality necessary to do that for arbitrary cycles of calculations, not just one static loop unrolled into a fixed-size circuit. >For sure, you need to go further in this direction to build a general purpose computer, but it is in this direction that you have to go. No, the functionality implemented here cannot generalize to arbitrary computation until you implement other, orthogonal primitives.
- andoando 3y agoA CPU is only capable of generating loops so long as one feeds it enough power. In essence it is creating a constant length loop which is bounded by how long the machine is turned on for. These dominoes are distinct in that they cannot flip the state back and therefore cannot rerun the same sections, and need need more and more dominoes to do more computations, but fundamentally I dont see how that is any different than providing a longer and longer input of energy into a modern computer. Can you clarify what "orthogonal primitives" are missing?
- SonOfLilit 3y agoOk, but do you get how there's something fundamentally different between repetition and unrolled repetition?
- hi-v-rocknroll 3y agoIt's the fallacy of perpetual motion and conflation between a Turing machine that requires net external energy to operate and a passive Rube Goldberg machine. While one can create combinational "logic" out of valves or dominos, it's impossible to create sequential logic out of passive physical objects. Sequential logic takes the form of S-R latches like: -+++++++++++===++++++-. ==::::::::::::::::::::=*- .-==. .. ==::::::::::::::::::::::-*-. .:-=. :#*++++++++++++++++++++++++++++++*=::::::::::::::::::::::::==. .-++. ==:::::::::::::::::::::::::=+ ==::::::::::::::::::::::::::*- ==::::::::::::::::::::::::::-*..::. .... ==:::::::::::::::::::::::::::*-+..==. .:. .:..= .= ==:::::::::::::::::::::::::::*==..-+-:::::-*+::::::::==..=-== ==:::::::::::::::::::::::::::#..--:. .=: .... ==::::::::::::::::::::::::::+= .=: ==:::::::::::::::::::::::::-*. .=: .-+++++++++++++#=::::::::::::::::::::::::-+. .=: .=- ==:::::::::::::::::::::::++. .=: .=- ==::::::::::::::::::::-++. .+: .=- -*++++++++++++++++**+-:. .:+*=:. .=- ...-**-. .=- .-=+=:. .=- :=+=:.. .==... ...-+*-. .:=+=-.. ..-=+=:. ..:=*+:. .:=*=:.. .-*+-.....-+*=.. .+#*#+:. .=*=:.....:=*+:. ...:+*=. .=*+-... ..-=+=:. .:=+=-.. .==.. ..:=*=:. .=- .=*+-... .=- .:=+=-.. .=- ..:=*=:. .=- =*===============++**=:.. ..=*+-. .=- ==::::::::::::::::::::-++. .=: .=- ==:::::::::::::::::::::::++. =: .-+++++++++++++*=::::::::::::::::::::::::-+. =: ==:::::::::::::::::::::::::-*. =: ==::::::::::::::::::::::::::+= =: ==:::::::::::::::::::::::::::#..--:. =: .=++: ==:::::::::::::::::::::::::::*==..-+-------*+--------==..=.:= ==:::::::::::::::::::::::::::*-+:.==.....................+:=- ==::::::::::::::::::::::::::-*. ... ==::::::::::::::::::::::::::*- .=++: ==:::::::::::::::::::::::::=+. .==+: :##++++++++++++++++++++++++++++++#=::::::::::::::::::::::::==. .:..-. . ==::::::::::::::::::::::-*-. ==::::::::::::::::::::+*:. :*++++++++++++++++++=:.