[Feedback Request] Development of a new programming language for Unity

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 :slight_smile:

Beginner here. I doubt I would use this.

The main concern I have is the community support. When I hit an issue while programming, I turn to the documentation, code snippets in the forums and Answers. I don’t use Boo because there are few examples and if I asked for help on the forums, I would most likely be met with silence. Languages need a critical mass of users for them to be viable. C# and, to a lesser extent, Unityscript have that while Boo doesn’t which is why no one uses it. It doesn’t matter how many features your language has or how much better it is than the others. If only 1% of users use it, it will be of no use to me, because I won’t be able to build a game from scratch in a language only a few others use.

I commend you for the work you are doing, but this seems overboard. I don’t think anyone is looking for a fourth language for Unity, just better implementation of the languages it uses.

Weren’t you working on an FPS server solution? How is this related to that?

I would never use a language in unity that wasn’t built and supported by unity. Nothing against you, but the risk of something happening to you or you deciding not to continue the project, would be to great. This could completely destroy a project, and leave you with so much work that is worthless.
So many times we have purchased and used third party utilities, and the author has disappeared, or dropped it. This is to be expected. But with something as fundamental as the very language you are using, it is way too risky.

+1