subroutineとfunctionの違いってなんですか?

もしどちらを使っても目的が達成できるならどっちを使うべきですか?
好みで決めていいですかね?