-- The ability to reference classes directly such as:
classes = [Circle, Square, Rectangle]
...
Was inspired by at least Python and possibly also Smalltalk (if memory serves me right). Classes are first class objects that can be referenced directly. It's also consistent with the fact that you can write "SomeClass.someMethod" in which case the item on the left hand side is a reference to a class.
It's like the class name is a readonly variable pointing/referring to the class object.
-- I still don't see the advantage of adding 3 "new"s here:
outline = Rectangle(Point(0, 0), Size(10, 20))
-- kirai84's post about consistency is off in a couple ways. "val2 = someMethod" seems to imply that in his proposal methods can now be referenced without a . or _ though it's not clear if he intended that or not. Also, he doesn't cover the case of calling or instantiating a local variable that is referring to a class, and the same for referring to a method. Or maybe that's what he meant with "someMethod" and has not covered the other case of naming the method directly. Also, when trying to put all the cases together, please include ones that have arguments as well as no arguments.
-- I've noticed over the years that there is no perfectly consistent syntax that is also a good syntax.
-- I've noticed over the years that there is no perfect syntax for a non-trivial language. There are always a couple odd rules (or more if you have failed to minimize them).