I think this comment shows a very fundamental lack of understanding how different languages handle errors.
In Java (and Kotlin) -- ignoring the topic of exceptions as an alternative -- errors like "missing value" are communicated with null.
So in Java you first have an error handling problem, you deal with it by returning null ... now you have a null handling problem!
Kotlin tries to put some band-aid around nulls by making them more typed than in Java.
In Scala, errors are handled with bog-standard library types like Option, Either, Try, Validation, not some special language built-in.
These types are not facilities to handle null (shown by the fact that all these types happily accept null as a valid value), they are facilities to handle errors.
They handle errors better than Java or Kotlin, because these types allow developers to choose the appropriate type for a specific error case and retain the structure of a computation.
To expand on the second point: Nullable types cannot be nested, Scala's types can and regularly are.
This allows Scala to compose operations while carrying errors up to the point where they can be handled easily.
If you have an operation returning an Option[T], and want to run an option on the value returning an Either[S, T] then simply looking at the resulting value will tell you if things succeeded or where exactly things went wrong.
None --> First operation did not result in a value
Some(Left(fail)) --> Second operation failed with cause "fail"
Some(Right(value)) --> All operations succeeded with result "value"
In Java and Kotlin all you would get would be a bare null, with a probability of people giving up on (typed) null completely and just throwing an (unchecked) exception instead.
TL;DR: Kotlin tries to put some band-aid around Java's broken approach of handling errors with null, Scala deals with errors correctly in the first place.