Slightly OT (but maybe not, as the article is about running strange things on the EV3): The EV3 is an incredible platform. I worked a bit (and am currently writing part of my PhD about it) on declarative Programming on EV3.
You can find Prolog-bindings provided by me on the EV3Dev website, which are about as fast as the JS bindings and make for quite a fun weekend, combining declarative planning and plan execution in the same language. You can find my paper on that here: https://dx.doi.org/10.18420/inf2019_ws41
And if you have a lot of spare time on your hand, you can get both HUGS (a Haskell implementation) and PureScript (using the JS bindings) running on the EV3. What you should not do, is try to run clojure, as the runtime is too massive. You can try other JVM languages, but I would suggest you don't.
Cool. I have a NXT lying around. I didn't use it much at the time and when I tried again a few years later the brick was dead. I was not aware that the sucessor to the EV3 was already available. After reading a few reviews it seems the EV3 would be better for me, as it's compatible with the pieces in the set I already own and processing power in the new generation is worse.
The ARM M4 in Robot Inventor (well, I'm using teardown info from Spike Prime which is supposedly identical other than color) is slower overall than the older ARM9 in the EV3. EV3 has 2.5x the DMIPS and 200x the RAM (64MB instead of 320KB). Robot Inventor doubled flash to 32MB, but also removed the SD slot. Boot times are many times faster, but that's because it's basically bare metal instead of an entire Linux kernel.
As I see it, there is zero reason for them to have chosen the M4. The STM H7A3 series soundly beats the F4 series LEGO went with as it has 4x the RAM (1.4MB), nearly 2x the DMIPS/MHz (2.14 vs 1.25), nearly 3x the clockspeed (280MHz vs 100MHz), dual issue instead of single-issue, bigger caches, branch prediction, double-precision floats, and without going on, beating the F4 on basically everything including total power consumption with 120mA/MHz vs 112mA/MHz at much higher performance per MHz (F4 is 90nm while H7 is 40nm). With the same VGT6 packaging in quantities of 1k, there seems to only be around a $0.60 difference (around 10%).
The easiest way would be to use the normal python bindings and flask and attach some http endpoints to actor and sensor functions. I think this would only take a few hours to have something that essentially works.
You can find Prolog-bindings provided by me on the EV3Dev website, which are about as fast as the JS bindings and make for quite a fun weekend, combining declarative planning and plan execution in the same language. You can find my paper on that here: https://dx.doi.org/10.18420/inf2019_ws41
And if you have a lot of spare time on your hand, you can get both HUGS (a Haskell implementation) and PureScript (using the JS bindings) running on the EV3. What you should not do, is try to run clojure, as the runtime is too massive. You can try other JVM languages, but I would suggest you don't.