This is a discussion that happened in the chat a while back, you're welcome to join us, link up top. I think mostly Gdscript already covers a python like scenario, types will come eventually, and there are benefits to the language being built for the engine. This was a design decision, I don't think it's going to change anytime soon. C# is to cater to the needs of a big group of devs. That said, with future godot versions I believe the engine will be open to any language integration, so ppl can add python if they want.

They probably picked C# because most people who dislike GDScript, do it due to its dynamic typing. Plus, since Godot is an open-source project, C# is a great choice: it's pretty popular, resulting in a bigger userbase, which will eventually help in its development.

Now, personal experience: GDScript is a bit slow compared to C#. I've made an AStar class but whenever I called the function to find paths, I could notice stutterings, which are pretty annoying. Said thing doesn't happen when I do the same in C# engines. I'm also not a big fan of how identation works, but this is just me. I recall having this and this issue some time ago I deleted an entire project because it got me mad as hell. :#

Because C# is about 30 times faster than Python, and only about 2 times slower from C++. And above all it is modern language.

Python doesn't have threads, which makes it unsuitable for Godot.

@wyslij said: Because C# is about 30 times faster than Python, and only about 2 times slower from C++. And above all it is modern language.

CPython is slow but Python is also available in fast implementations. And Python can even be compiled using C language translation.

https://lbolla.info/blog/2013/12/23/python-threads-cython-gil

Maybe these solutions have downsides. But it sounds cool if we want something similar to GDscript syntax.

I'm curious to know what you mean by "modern language" ? I'm a total newbie with C# ;)

@Megalomaniak said: First 2 results for me are python doc's on threading for v2.7.x and 3.5.x respectively...

From the links I got from your Google search:

[...] currently, there are no priorities, no thread groups, and threads cannot be destroyed, stopped, suspended, resumed, or interrupted

Doesn't seem like proper support. Also, Python wasn't meant to be embedded, so it is really awful to do so. There might be some embeddable implementations though those things usually doesn't support the full language and/or are slow.

Anyway, if it is possible to embed Python, anyone is welcome to make it so. One of the reasons for C# is simply that someone decided to work on it.

@vnen said: One of the reasons for C# is simply that someone decided to work on it. Yeah, to be clear I'm not against any language here, the more the merrier. :) Well, as long as there's someone to maintain it too.