It is indeed a golden oldie from the 90s. The decision to base communication on file to file transmission (FFT)
is controversial but it has paid off in terms of portability. Interestingly ChatGPT gave a good account of
Why is communication through files frowned on as a means of communication between programs?
You'll get a detailed answer. The main point in favour here is the ability to sustain communication within
the KL instruction set. The arguments against from ChatGPT don't apply here except in two areas; performance
and concurrency. Disk writing is slow. But for human interaction through a GUI, it is humanly instantaneous. Generating the GUIs takes a second or two. This is partly because I've put a delay into the TCL event loop of 0.01s
to save cycles when idle and I may cut that to 0.001s.
Concurrency only kicks in when you've got two processes competing for the TCL/tk event loop. At the moment
any attempt to communicate to TCL/tk while another Shen process is communicating would put the later
call on standby until a space is cleared. I don't see any problem there.
TCL/tk is not fast anyway. I don't think it would be suitable for CPU intensive graphics like modelling air flow
over a wing. But is great for what it does - providing GUIs. Shen/tk rationalises TCL/tk, cuts out a lot of ugly
stuff and allows you to produce type secure GUIs. The IDE for Shen/tk is type secure and takes (so far) about
79,000 inferences to prove type secure.
Mark