So, we re-wrote Jyro
Over the past 6 months we’ve learned a lot about what we wanted out of a safe, secure, embeddable scripting language designed to run untrusted code from unknown sources.
Our initial interpreter was written in C#, and that effort provided a lot of insight into how we could really make Jyro shine as a language. We believe Jyro occupies a unique niche in the Dotnet ecosystem, and we want to make sure that it is as useful as it can be to solve real-world problems for everyone.
Over the past few weeks, we’ve completely reimplemented the language from scratch in F#. The functional approach has yielded enormous benefits in speed, safety, maintainability and reliability. Jyro is the best it’s ever been.
The codebase is tight, the grammar is consistent, the language surface is intuitive, and the API is performant. Jyro scripts execute in milliseconds and do so reliably and predictably. We even included a binary format suitable for embedded systems that run the same scripts over and over.
To make omelettes, you need to break eggs, and our kitchen got covered in them. Jyro 0.9.1 is radically different from 0.9.0 with numerous breaking changes. If you had scripts in the old format, the best thing to do is read the current, up-to-date documentation for 0.9.1 here, and adjust your script accordingly. We expect that (in the absence of any major feedback as we march towards 1.0), the language surface - keywords, stdlib, function behaviour, operators etc. - is now stable, and we are starting to put production workloads on it.
0.9.2 is now on Nuget, and the Playpen site has been upgraded to it, so you can try out the new Jyro look and feel there.
As always, feedback is welcome. Happy scripting!