What is Belt Machine?

πŸ…°πŸ…½πŸ†ƒπŸ…ΈπŸ†€πŸ†„πŸ…΄ πŸ„ΆπŸ„·πŸ„ΎπŸ…‚πŸ…ƒ on September 21, 2019

Explain me Belt machine like I'm 5.

Also what is Mill architecture?
What makes it unique? Is it something that will revolutionise the computing?

markdown guide

Thanks for the question, as I had not heard of this. And I enjoyed reading about it.

I think to explain it would require explaining how CPU architectures currently work, the problems that arise from those design choices (e.g. data hazards), and how they are currently mitigated. I won't pretend to have a complete enough understanding to do that here.

I will say that I have been looking for something like this to happen in the hardware side of the industry for a while. As programmers we have long been faced with a shared mutable state problem. The linked article points primarily to parallelism, but it also becomes a limiting factor for the humans (devs) who need to understand the code. It is not possible to look at a section of code that uses a shared mutable state and understand exactly what will happen at runtime. Not unless you also simultaneously understand every other piece of code that reads/writes the same shared mutable state. And at some point the human brain (mine at least) reaches a practical limit of how much code can be loaded and understood at once. A.K.A. "Hard to reason about"

We have tried to tame shared mutable state over the years using programming paradigms. Including Structured Programming, Object-oriented Programming, and more recently Functional Programming has been in resurgence. In the end, one of the factors limiting the success of solving this problem is the fact that the CPU itself operates as a shared mutable state machine. All abstractions are leaky, and at the lowest levels, the languages we create need to work in a way that is compatible with the hardware.

I always felt it was odd that CPUs operate as shared mutable state machines, considering most of its computational circuitry are the electrical equivalents of deterministic functions.

I'm not entirely sure if the Mill architecture will help us to finally solve the shared mutable state problem (and who knows what new problems will arise), but many of its strategies -- including the belt machine -- look to be movements in the right direction. I also appreciate that they are planning for backward-compatibility (getting existing programs to run on their architecture without being rewritten). I don't think it could possibly be successful without that.

In the end, an idea is only as good as its execution. So we will have to wait and see what they do and how it affects the industry.

Also relevant for context: Can Programming Be Liberated from the von Neumann Style? (PDF)

code of conduct - report abuse