Yeah, apologies for the super confusing naming. Itās hard to name and describe things that donāt exist yet - itās much guesswork as it is planning!
As it currently stands, Tau5 is the broad name for the suite of technologies Iāve been exploring and building. Think of it more like a code name, kind of like id Tech 5 ( id Tech - Wikipedia ).
1 year ago I had strong ideas about what I wanted to build and those ideas are still pretty consistent, but the technology that Iām currently considering is quite radically different.
The big change was starting work on SuperSonic last summer. It completely turned things on its head. Firstly I was able to port SuperColliderās synth engine to the web which was the missing piece to my plans. Secondly the process of implementing that port taught me a lot about how audio synth engines work, how they maintain stable latency and jitter, and these were things that I really wanted. I had been prepared to give up on super low latency in favour of security and good (advanced) scheduling. With the clockwork approach I wondered if I could have both.
Sonic Tau was meant to be a short small experiment. Could I build a clockwork language? Could I implement enough of a subset of Sonic Pi that it could be useful for introductory workshops? The plan was just to do this, have a nice ābaby Sonic Piā website that educators could use, and then to step back, learn from the experience and start hacking on the new Tau5 language core.
It turned out that all of the deep design thinking I had done over the years unfolded into something rather powerful and elegant and Iāve been able to get way further than I imagined - even beyond Sonic Pi in key areas (https://www.patreon.com/posts/re-re-rerezzed-155986856?utm_medium=clipboard_copy&utm_source=copyLink&utm_campaign=postshare_creator&utm_content=join_link)
Therefore, Lua/Luerl is no longer in consideration. My clockwork language ideas offer the security sandboxing and raw speed. However, Iām still strongly considering stopping, taking a step back, extracting and synthesising the core ideas, re-deigning them and then building Tau5 - which will be very similar to the internals of Sonic Tau. The broad goal would be able to easily re-implement Sonic Tau on top of Tau5 Tech.
With respect to language deign. Ethan is right. Sonic Pi was heavily based on Ruby. It is essentially a modified Ruby not just implemented in Ruby. Sonic Tau is not Rust. It is a completely new language that happens to be implemented in Rust. It has completely different internals with radically different constraints. Kind of like how Elixir looks similar to Ruby but is a totally totally different beast.
Iām copying Sonic Piās language closely with Sonic Tau because itās something I know and understand (kind of like how js devs may learn a new framework by implementing a TODO app for the 50th time). Itās also a nice challenge with clear goals. Also, and perhaps most importantly it should be possible for educators to easily transition their lesson plans and education material from Sonic Pi to Sonic Tau.
Still, Sonic Tau is a partial language. Itās definitely not complete - will have huge holes here and there. But thatās not the goal. The goal is to see if the approach works and see if I can implement most of Sonic Pi with it. Then I can stop back and implement something a bit more holistically with more solid foundations for the future.