Procedure syntax (the last two lines, lacking the `=`) will be deprecated in Scala 2.13. The two variants before those are due to type inference. Are you really arguing against type inference?
The empty argument list `()` is a convention to denote that a method has a side-effect, whereas a method with no argument list at all is considered pure.