Is there any difference besides syntax between C#, javascript and mobo?

The differences between the languages is just syntax or there is any performance difference as well?

Since all languages are compiled to the same intermediate language the resulting code runs equally fast. However in UnityScript (Unity’s JavaScript variant) its way easier to write less efficient code with less lines of code as the compiler does a lot things behind the scenes.

A typical example is this:

// Unityscript
transform.position.x = 1;
transform.position.y = 2;
transform.position.z = 3;

This would be compiled as

var temp1 = transform.position;
temp1.x = 1;
transform.position = temp1;

var temp2 = transform.position;
temp2.x = 2;
transform.position = temp2;

var temp3 = transform.position;
temp3.x = 3;
transform.position = temp3;

Since position is a property and Vector3 is a struct you can’t directly change a component of the struct without a temp variable. Unityscript does this behind the scene, however for each component separately.

There are several features which exist only in C#.

  1. Delegates
  2. Lambda expressions
  3. Events
  4. Extension method shorthand
  5. Expression trees

C# also has a direct relation to the underlying .NET which it gets compiled to. UnityScript (Javascript) does not and, asa result, may be less efficient. You can use #pragma strict in UnityScript to bring it closer in performance to C#.

Js and C# are pretty much the same capability-wise but Js is WAY easier to learn.I personally prefer Js since it’s easier to learn and has the same capability as C#. Mobo , however , doesn’t support mobile development, in fact, the people who use mobo are almost no-one , you can’t even use mobo (or boo) in 5.0 anymore. Forget about boo, Js and C# are both cool languages.