An idea that may or may not be terrible, written down so I can get it out of my head and into someone who can do something about it.

What if we started from scratch with code represented as graphs, not text?

https://functional.computer/blog/starting-from-scratch

Starting from scratch / Ideas for free  ❤︎  samir : coffee → nonsense

@samir I think you'd enjoy CSP (occam-pi!), if you want zoomable views on a program...

Editors that work on an AST and happen to render text, or graphs, sounds fun though :)

@twigathy I definitely would enjoy learning more about this stuff. Do you have any good places to start?

@samir It is, unfortunately, quite thoroughly link-rotted, but https://www.cs.kent.ac.uk/projects/ofa/kroc/#occampi has some places to start. Think go before go was a thing, or erlang but with blocking channels....

The part about it being "zoomable" - basically if you define a process with some inputs and outputs, and then glue it together with a few others, you can treat the whole thing as one black-box with some ins and outs and forget about its internals.

Go is, probably, the closest modern thing to it.

occam-pi and KRoC: blending CSP and the pi-calculus

occam-pi and KRoC (the Kent Retargetable occam(-pi) Compiler)

@twigathy Aha, I get you now! This is the best thing about proofs (I feel the same way about dependently-typed programming). The more information you can convey in a signature or type, the less you need to look inside.

I'm surprised you say that Go is close to it, though; is this because of culture? I'm sure that Rob Pike shouting “don't do anything clever" every time you open a .go file helps.

@samir More the channels / communicating processes than anything :)

I bet if you could treat blocks of your AST-program as a black box (Thanks to the mysteries of CSP), it would make reading the whole thing way easier!