Почему новый оператор существует в современных языках, таких как С# и Java? Является ли это исключительно функцией самодокументирующегося кода или выполняет какую-либо фактическую цель?
Например, следующий пример:
Class1 obj = new Class1();
Class1 foo()
{
return new Class1();
}
Легко читается как более питонезский способ его написания:
Class1 obj = Class1();
Class1 foo()
{
return Class1();
}
EDIT: Cowan ударил ноготь по голове с разъяснением вопроса: почему они выбрали этот синтаксис?