Search code examples
language-designnew-operator

Why do C# and Java bother with the "new" operator?


Why does the new operator exist in modern languages such as C# and Java? Is it purely a self documenting code feature, or does it serve any actual purpose?

For instance the following example:

Class1 obj = new Class1();

Class1 foo()
{
    return new Class1();
}

Is as easy to read as the more Pythonesque way of writing it:

Class1 obj = Class1();

Class1 foo()
{
    return Class1();
}

EDIT: Cowan hit the nail on the head with the clarification of the question: Why did they choose this syntax?


Solution

    1. It's a self documenting feature.
    2. It's a way to make it possible to name a method "Class1" in some other class