On the other hand, one could add top-level functions to Java (see (6)) and while this would make Java more complex, this feature would have its own internal cohesiveness and should thus be easy to learn (examples of where this works are languages that mix classes and functions, such as Common Lisp, Python and Javascript).Maybe it makes sense to separate concerns: I have ordered the following points