I totally agree that UnityScript and Boo were terrible ideas and executions that were cursed, and it's a great thing they're deprecated.

JavaScript itself though is great. But the standard ways of integrating Unity and JavaScript in the WebGL back-end are extremely inefficient, terribly designed, and leave a lot to be desired.

There are much more efficient ways of communicating by judicious use of P/Invoke and insight into how WebAssembly and the C# / Unity JavaScript runtime binding works, which I've studied and leveraged in UnityJS. See some of the links in the other message I posted about UnityJS that discuss the JavaScript/C# JSON messaging bridge I developed, which is based on P/Invoke instead of Unity's terrible "GameObject.SendMessage", and techniques for blitting images and raw arrays of typed numbers back and forth between Unity and JavaScript.

The great thing about Unity that makes it worth all the effort of making up for its other weaknesses is its editor, and the ability to extend the editor with custom user interfaces, by widgets and editors in the object property sheets and 3d gadgets and objects in the world itself. The editor and its customizable UI facility is a common ground for artists and programmers to meet, that enables programmers to give artists a huge amount of power and flexibility, and artists to see and totally control what they're creating immediately and interactively.

Here's a demo of Unity3D pie menus that shows and explains some custom editors, as well as in-world editing tools. (It's kind of old, so the demo requires the now-obsolete Unity browser plug-in, since it isn't compiled for WebGL.)

https://www.youtube.com/watch?v=sMN1LQ7qx9g

I've made a general purpose pie menu component in C# for Unity3D, which supports text items, image items, and 3d object items too!

I will make it available as free open source software on the Unity3D app store!

Here's a silly demo, showing a set of SimCity pie menus:
https://www.donhopkins.com/home/PieMenuDemo/PieMenuDemo.html
(If you don't have the Unity3D browser plug-in installed, it should show you a link to install it.)

They have a full set of useful notifiers so you can tightly integrate them with your application to give rich feedback during tracking (for example, modifying the 3D menu items, or previewing the effect of the menu item and distance parameter in real time, making them more like "direct manipulation").

For example, to show how you can implement feedback like The Sims pie menus with the head in the center that looks at the selected item, I've made a 3d object in the pie menu center with the webcam texture on it, so YOUR head is in the center of the menu, looking at the selected item! (That's why the demo asks for permission to use the webcam.)

The pie menu and each item has a title as well as a description. One feature I've added is the ability not only to disable an item, but also to provide an explanation of why the item is disabled! (PacMan in the demo is disabled, for example.) I wish other menus and widgets would do that -- it's frustrating when you can find an item you want, but can't figure out why it's disabled!

Another nice thing about them is that you can either configure algorithmically with an API, or with JSON data (which makes it easy to make dynamic data driven menus downloaded from a server or database), or construct them in the Unity3D editor out of objects (which makes it easier for artists to design them)!

I've made a custom Unity3D editor that lets you edit the properties, drag and drop textures and objects, edit and rearrange the items, and has some convenience commands, so you can place the 3D item objects in a circle in the 3D world, and call a command that figures out which item is in which direction by their position, and tidies them up. (That is much easier than arranging their order in a linear list of items.)

I'm going to play around with more in-world editing features, to make them easier for artists to design them.

Source code:

https://www.donhopkins.com/home/PieMenuDemo/PieMenuDemo.zip