What is the purpose of the "new" keyword in Java, PHP, etc.? : <p>In many languages, we use <code>new</code> to instantiate a new instance of a class. For example, in Java:</p>

<pre class="lang-java prettyprint-override"><code>class MyClass {
    int number = 1;

    MyClass(int n) {
        self.number = n;
    }
}
</code></pre>

<pre class="lang-java prettyprint-override"><code>MyClass obj1 = new MyClass(5);
</code></pre>

<p>However, as I've been using Python more and more, I've come to wonder why the <code>new</code> keyword is even necessary. In Python, we can simply do:</p>

<pre class="lang-py prettyprint-override"><code>class MyClass:
    def __init__(self, n):
        self.n = n
</code></pre>

<pre class="lang-py prettyprint-override"><code>obj1 = MyClass(5)
</code></pre>

<p>So, what's the purpose of the keyword? Is there some syntactic ambiguity that we resolve by using the keyword?</p>
