@Riduidel : la réponse à ta question est dans ce post (un peu long à lire désolée).
Un objet Iterable implique que l'on traite les données à partir d'un paradigme de programmation procédurale et impératif, c'est-à-dire ni objet, ni fonctionnel. Or les Optionals sont justement des éléments prévus spécialement pour penser et coder dans un style fonctionnel parmi les plus purs.
Vouloir que la classe Optional implémente Itérable, c'est un marqueur fort permettant d'identifier qu'une personne n'a pas encore appris et compris le paradigme fonctionnel où :
- Les instructions if/else/switch ont été remplacés par du pattern-matching.
- Les boucles for/while/do-while ont été remplacées par des appels récursifs.
- Les références ont été remplacées par des lambdas.
Enfin, le fait que Scala ait implémenté Iterable dans les Optionals est justement ce qui fait de Scala un mauvais langage fonctionnel à mon avis, car si c'est génial d'être multi-paradigme, c'est par contre très mal de mélanger les paradigmes dans les éléments constituants l'API du langage car cela créé un code extrêmement incohérent où il devient difficile de savoir comment s'exprimer ; mais c'est mon côté software craftswomanship qui parle #JavaDuchesses