Comparison of Programming Languages

From Unify Community Wiki
Revision as of 04:37, 4 August 2009 by Slippyd (Talk | contribs)

Jump to: navigation, search


This is a comparison of the features and instructions of the three high-level programming languages offered by Unity: JavaScript, C#, and Boo.


Contents

Conventions of This Article

The bold is the literal code. The non-bold is interpreted by the reader. Statements in guillemets (« … ») are optional. tab indicates a necessary indent.

The following tables compare code differences of the Unity programming languages. See also the Comparison of Programming Languages for general information.


Features

The following tables compares major features of the Unity programming languages.

Language Boo C# UnityScript/JavaScript
Paradigm(s)
Standardized Variation? Yes Yes, ECMA, ISO ECMA-334; ISO/IEC 23270:2006 No
Type Strength strong strong weak
Type Safety safe safe
Expression of Types implicit with optional explicit typing explicit implicit
Compatibility Among Composite Types name-based
Type Checking static with optional dynamic typing static with optional dynamic typing dynamic with optional static typing

Type Identifiers

Integer

Language Boo C# UnityScript/JavaScript
8 bit (byte) Signed sbyte N/A
8 bit (byte) Unsigned byte byte N/A
16 bit (short integer) Signed short short N/A
16 bit (short integer) Unsigned ushort N/A
32 bit Signed int int N/A
32 bit Unsigned uint N/A
64 bit (long integer) Signed long long N/A
64 bit long integer) Unsigned ulong N/A

Floating Point

Language Boo C# UnityScript/JavaScript
Single Precision single float N/A
Double Precision double double Number
Arbitrarily Precise (bignum) decimal


Other Types

Language Boo C# UnityScript/JavaScript
Text Character N/A char N/A
Text String string string String
Boolean) bool bool Boolean
Object/Universal) object object Object


Derived Types

Array

Language Boo C# UnityScript/JavaScript
one-dimensional fixed size array (type) type[size] type[]
multi-dimensional fixed size array type[size1, size2,...]
one-dimensional dynamic size array List System.Collections.ArrayList
or
System.Collections.Generic.List<type>
Array
multi-dimensional dynamic size array


Other Types

Language Boo C# UnityScript/JavaScript
Record Simple Composite Types struct name {type name;...}
Enumeration Simple Composite Types

enum condition:
tab item1
tab «item2
tab …»

Basic Unity-Specific Types

Language Boo C# UnityScript/JavaScript


Declarations

Language Boo C# UnityScript/JavaScript


Flow Control

Conditional Statements

Language Boo C# UnityScript/JavaScript


Loop Statements

Language Boo C# UnityScript/JavaScript


Exceptions

Language Boo C# UnityScript/JavaScript


Other Flow Control Statements

Language Boo C# UnityScript/JavaScript


Functions

Language Boo C# UnityScript/JavaScript


Type Conversions

Language Boo C# UnityScript/JavaScript



Programming Index

Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox