One engine – multiple languages
Unity is one of the most popular 3D indie game engines, with support for three programming languages:
- Boo (a python inspired languages)
Unity supports this wide range of languages to target as many programmers as possible.
Unity uses the open source Mono project (a .NET implementation) for scripting support in their engine. This means that all three languages are compiled into Common Intermediate Language (CIL). The CIL bytecode are then translated into machinecode when loaded on the target platform (at least that is true for PCs).
Most of the API documentation in Unity is written for UnityScript, but since the API is exactly the same for C# it is not a big deal.
The language C# is also closer to the Common Intermediate Language than UnityScript. This means that in some (rare) situations, you are able to write code in C# that performs better than in UnityScript.
For UnityScript, you can use UnityDevelop for Windows (a modified FlashDevelop editor) that also support context sensitive help and auto completion.
If you for some reason prefers a plan text editor, you can use the build in Unitron editor.
I would recommend any programmer to use C# for Unity. In my opinion C# has the best editor support and gives the programmer most control (the price is a slightly more complex language to learn).
Both languages are used a lot, so there is no wrong choice.