Open hanoixan opened 3 years ago
Hi there,
no, not much happening here :-)
I think Shovel is pretty slow, it was always meant as 'interruptible glue', so if anything needed speed, it ended up as C# code.
I guess Shovel is only useful if A) you need something that runs on .NET (might need a bit of resurrecting for .NET core) AND B) you're not exactly happy with writing WF code (I think MS dropped WF for .NET core, there's an UiPath version IIRC).
One of the bigger issues with the Shovel VM is that closure implementation is a very naive (and quick to implement) environment-based solution (a la SICP/PAIP) - which causes a lot of allocation even when you don't need to close over stuff. I remember seeing a lot of time spent in GC :-) and big differences in performance between Mono and .NET due to the fact that the .NET GC was so much faster.
Miron, just wondering what happened with this project? I've been looking for a language and compiler that has similar features. The closest behavior I could find was Lua+Pluto/Eris, or Java+Rhino+Javascript.
Did you ever do any performance tests on this compared to other bytecode VMs? I've written a C# expression VM that works in a similar fashion (bytecode lookups calling Actions), and I'd expect compiled C# to be about 10-20x faster than the VM.
For what it's worth, I think your take on a simplified Javascript is very clean--nice work.