Exceptions vs `Try[T]`
In the early versions the scala-utils and spark-utils were Try[T] centric, meaning that everything that could fail returned a Try[T]. At some point, observing how some developers were using it, I decided that it might be easier to throw exceptions, even though my functional blood was boiling a little.
Question Should we go for a more functional, no side effects approach or should we keep throwing exceptions? In a sense we are also logging, so we have few pure functions, so this question is actually not as easy as it seems.
Probably a local type, maybe isomorphic to Try[T] that expresses better the application return types should be a good choice. However, it all boils down to the most difficult part of software engineering, naming things :)