What will migration be like from GDScript to C#?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Trent McPheron
:warning: Old Version Published before Godot 3 was released.

Hi there. I’m pretty excited to have C# in Godot; static typing gives me peace of mind and I just generally really like the language. But I would also like to start working in Godot now rather than waiting for C# to be done. Will GDScript and C# have any sort of interoperability so that I can gradually port scripts that are already done?

:bust_in_silhouette: Reply From: Akien

You’ll be able to use both at the same time, so you can port your scripts to C# one by one while keeping the rest in GDScript.

I am very concerned about the news about C#. Akien, Godot in Linux will depend on Mono?

DimitriyPS | 2016-08-11 09:44

Only the Mono version, which will be distributed separately from the GDScript-only version. (i.e. one build with the mono module, one build without)

Akien | 2016-08-11 09:47

Do I understand correctly, will be supported 2 version Godot, one with Mono and one without Mono?

The dependence on Mono in Linux - is very bad.

DimitriyPS | 2016-08-11 09:52

Yes. The main version will have nothing to do with Mono.

Akien | 2016-08-11 09:55

I’m a little concerned about this FUD regarding Mono. Some of Linux’s best games are XNA ports. What’s so bad about Mono?

Trent McPheron | 2016-08-11 13:14

The main issue that I can see is the Microsoft patents that loom over its head like a sword of Damocles. Microsoft has made a “patent promise” not to sue Mono users for infringing their patents, but that’s still a bit… unsettling.

You’ll find quite a few Linux and free software users very wary of a Microsoft technology with such patents; the open source world has a peculiar relationship to Microsoft, and though they seem to be more friendly to open source since a couple of years, the “embrace and destroy” strategy is still a threat. Whether this fear is justified or not, I can’t judge - but I understand the caution.

As for Godot, as long as we’re not made to be dependent on Mono, I don’t see any issue. Best case, everything goes well and we’re happy with our Mono version; worst case, we drop the module and continue with the other languages we already have and intend to keep.

Also as a Linux packager, I can tell that (at least the open source ones) Linux games (and other applications) relying on Mono are a real pain to package and maintain. In my experience the Mono stack is as unfriendly to packagers as Java; that doesn’t make it a bad technology per se, just not one I want to fiddle with too much :stuck_out_tongue:

Akien | 2016-08-11 13:22

Mono on Linux is a foreign body. That nothing will ever change because in this technology there is no important need. Very often, Mono is removed from the PC after the OS installation. Dependence of Mono for programs in Linux - it does not Bode well. Based on this discussion of patent policy or discuss the positive qualities of Mono - meaningless.

DimitriyPS | 2016-08-11 14:30

Is there any particular reason C# is being supported in Godot? For example, will C# be more performant than gdscript? Or maybe Godot is trying to lure disgruntled developers away from Unity?

ericdl | 2016-08-11 15:03