What is the difference between "Future.successful(None)" and "Future(None)"
future, scala
Solution
`Future.apply(None)` creates asynchronous computation and executes it. It means that extra lambda object is created and extra task is scheduled (however trivial task).
`Future.successful(None)` just produces already completed future. It is more efficient.
Problem
`Future.apply` starts an asynchronous computation whereas `Future.successful` creates an already completed Future with the specified result. Now is `Future(None)` (`Future.apply(None)`) less efficient than `Future.successful(None)`?