4 ms·
Comparing Vala to C# isn't fair. Vala is transpiled to C, then compiled to machine code, therefore has source compatibility with C and uses automatic reference
by Longhanks 10y ago
Comparing Vala to C# isn't fair. Vala is transpiled to C, then compiled to machine code, therefore has source compatibility with C and uses automatic reference counting, while C# is compiled to byte code, needs wrappers around C and uses garbage collection.
They both are high level languages, but definitly with different goals.
- carussell 10y agoWhy should this matter to someone interacting with Vala as a programmer the language? These are implementation details of the runtime. Vala predates the new plans laid out over the last ~18 months, but at this point, shouldn't Vala be a research branch of C#? Seems like this kind of approach would serve as a multiplier for the benefits Vala is trying to bring to the world, from both sides.
- bsznjyewgd 10y ago"shouldn't Vala be a research branch of C#?" Vala is a nicer shinier layer for programming with GObject in C. I don't really understand what it has to do with C#? Do you mean just the syntactic influence? Keep in mind, lots of vocal people hated Mono, not just because of some vague looming threat of possible patent action, but because they disliked the memory heavy and slow startup nature of the runtime (see: Tomboy).
- carussell 10y ago1. Start with C# 2. Create research fork 3. Change it just enough until it can do what you're trying to get out of Vala right now (including whatever sweeping changes you want from the runtime by targeting GObject, so that it exhibits the static properties Vala wants here) Result: GNU/Gnome/Vala benefits from it, and the C#/.Net folks can benefit from it, if ever that research makes its way upstream. Which in turn brings another round of benefits to Vala's users and maintainers. My overall point is that symbiosis is nice. There's strength in numbers.
- pjmlp 10y ago> C# is compiled to byte code Mono supports AOT compilation to native code, as well as .NET Core. Languages and implementation aren't the same thing.