Почему в некоторых языках функции могут быть вне классов, а в других нет?
===========================================================================

 Например, сейчас я только начал изучать Kotlin, и вижу, что функции могут существовать сами по себе, а вот в Java, я знаю, там функции только внутри классов. Это просто такая особенность языка ? Или с чем-то это связано ? Почему в некоторых так, а в других так ? То есть стоит ли использовать такие функции, которые вне классов или лучше определять их внутри ? 

 В Java вообще нет функций, только методы. Методы по определению не могут быть вне классов. А сделано так потому, что Java проектировалась как язык принуждающий писать в ООП. 

 в котлине тоже самое что и в джаве, по тем же правилам, просто сам котлин может генерировать "скрытый" объект которому принадлежит метод, имитируя "независимую" функцию.   

В джава кстати тоже есть независимые функции