Over the past six months I have been slowly working on a new programming language for Unity, it’s not anywhere close to ready for production but I have gotten far enough that I would like to get some feedback from the community. Sadly you will not be able to get a hold of the code yet, but I have a few questions and thoughts I would like feedback on.
The language is statically typed like C# as there really is no other option when you need good performance. The compiler is written entirely in C# which allows you to host the compiler inside the Unity runtime and even compile code during the execution of your game (To allow for user scripting of your game, for example). Built-in support for real Co-Routines like the ones you can find in Stackless Python and Googles Go, not the IEnumerator hack currently available in Unity. All the standard stuff like classes, structs, generics, etc. is all there, with a syntax very similar to C#.
The one huge feature, and really the entire reason I started this project initially is that the language compiler allows you to extend it with custom keywords, syntax, etc. This opens up the possibility of doing syntax extensions targeted at game development in general and Unity specifically. This feature is something which is open to the end user of the language (that is: those of you building games for Unity!), need a custom syntax for defining state machines? no problem. You can extend the syntax in any way you wish, to create any type of DSL you’d want. You could even end up creating a great language extension and sell it on the asset store yourself.
-
Full static typing, like C#
-
Can be run from inside Unity (Allows you to use it like Lua is used in WoW - end user scripting)
-
Built in support for real Co-Routines
-
Extensible compiler for custom syntax or DSL
-
Functions can return multiple valuesMy questions to the community (both beginner and professional) are the following:
-
Would you even consider using another language then C# or UnityScript?
-
If you were to use another language, what features would you like to see?
-
What parts of the tooling (Editors, debuggers, etc.) has to exist for you to even consider using another language?
-
Is there any specific feature of the ones listed that is particularly interesting to you?
Edit #1:
Someone on IRC asked me about how this would work on mobile, the only thing that would be prohibited on iOS and Android is the ability to run the compiler from inside your own game to allow end-user scripting, other then that it will work the same as C# or UnityScript.
Edit #2:
Also the reason I am asking this, is because I want to see if there is an interest for something like this from the community so I know if I should push for a proper release or just abandon ship