The empty parens are made visible when there is an implicit param list and args are supplied explicitly.
This isn't news. Maybe there's a phrase to be newly minted to capture what this purely stylistic difference is. "Pure virtual style."
scala> class C(implicit val c: String)
defined class C
scala> new C
<console>:12: error: could not find implicit value for parameter c: String
new C
^
scala> new C("hi")
<console>:12: error: too many arguments for constructor C: ()(implicit c: String)C
new C("hi")
^
scala> new C()("hi")
res2: C = C@60f82f98
scala> implicit val s = "bye"
s: String = bye
scala> new C
res3: C = C@5f375618I also switch between where to put the parens when selecting; mostly depending on whether I remembered the left paren when I started typing.
scala> (new C).c
res6: String = bye
scala> new C().c
res7: String = bye
Maybe this is the strongest case for postfixOps.
scala> new C c
warning: there was one feature warning; re-run with -feature for details
res8: String = bye
Yes, whenever I begin, It's probably worth adding..., it never is.