upvote
> was meaning for a while to do an article with 'all ways we know how to compute (beyond von Neumann)'.

Would be very glad to read this.

In the meantime, I reproduce a part of an article by Steve Yegge:

---

What Computers Really Are

Another realization I had while reading the book is that just about every course I took in my CS degree was either invented by Johnny von Neumann, or it's building on his work in mostly unintelligent ways.

Where to start? Before von Neumann, the only electronic computing devices were calculators. He invented the modern computer, effectively simulating a Universal Turing Machine because he felt a sequential device would be cheaper and faster to manufacture than a parallel one. I'd say at least 80% of what we learned in our undergrad machine-architecture course was straight out of his first report on designing a programmable computer. It really hasn't changed much.

He created a sequential-instruction device with a fast calculation unit but limited memory and slow data transfer (known as the infamous "von Neumann bottleneck", as if he's somehow responsible for everyone else being too stupid in the past 60 years to come up with something better. In fact, Johnny was well on his way to coming up with a working parallel computer based on neuron-like cellular automata; he probably would have had one in production by 1965 if he hadn't tragically died of cancer in 1957, at age 54.)

Von Neumann knew well the limitations of his sequential computer, but needed to solve real problems with it, so he invented everything you'd need to do so: encoding machine instructions as numbers, fixed-point arithmetic, conditional branching, iteration and program flow control, subroutines, debugging and error checking (both hardware and software), algorithms for converting binary to decimal and back, and mathematical and logical systems for modelling problems so they could be solved (or approximated) on his computing machine.

-Steve Yegge, Math Every Day

https://archive.ph/6tOQF

reply
Von Neumann may possibly have been the smartest man to ever live, but giving him credit for all of this is too much, brushing aside many other inventors (oft independent, to his credit).
reply
>term rewriting

In uni we had to make a spreadsheet software.

I volunteered to do the formula parser, thinking it sounded like a fun challenge.

I was stumped for a week, until I realized I could rewrite the formulas into a form I knew how to parse. So it would rewrite 1+1 into ADD(1,1) and so on.

I also refused to learn regex, so the parsing code was "interesting" ;)

I recall a comment from a colleague. "Okay, Andy says it works. Don't touch it." XD

Guy from another group used regex and his solution was 20x shorter than mine.

reply
Regular expressions are probably not enough for parsing formulas (depending of course on the exact task given), they usually are at least a context free language.
reply
> plus up and coming (actual production-ready)

Plus up and coming (not quite production-ready IMO, but used in production anyways): ChatGPT and the like.

Of course, it’s debatable whether they are programming languages, but why wouldn’t they be. They aren’t deterministic, but I don’t think that is a must for a programming language, and they are used to let humans tell computers what to do.

reply
also Sussman's propagators are nice to check out [0]

[0] The Art of the Propagator (mit url down for the moment)

reply
Great list of languages that don't fit the conventional families. I've been curious about some of them, like Petri nets and term rewriting, and will enjoy exploring the others.

Found a working link to the paper about propagators.

The Art of the Propagator, Alexey Radul and Gerald Jay Sussman. https://groups.csail.mit.edu/mac/users/gjs/6.945/readings/ar... (PDF)

reply
pure [https://agraef.github.io/pure-lang/] is probably the most "practical" term rewriting language, though mathematica is the most used one by far.
reply
<snark>So they reinvented speadsheets?</snark>
reply
Logic programming in S9 scheme:

https://www.t3x.org/amk/index.html

You can just get the code without buying the book, learn with Simply Scheme or any other book and apply the functions from the code, the solvers are really easy to understand.

reply