On m'a posé cette question lors d'un entretien et je ne suis pas convaincu d'avoir donné la meilleure réponse possible. J'ai mentionné que vous pouviez effectuer une recherche parallèle et que les valeurs nulles étaient traitées par un moyen dont je ne me souvenais plus. Je réalise maintenant que je pensais aux optionnels. Qu'est-ce que j'ai manqué ici ? Ils prétendent que le code est meilleur ou plus concis, mais je ne suis pas sûr d'être d'accord.
Vu la brièveté de la réponse, il semble que la question n'était pas trop vaste après tout.
S'ils posent cette question lors des entretiens, et c'est manifestement le cas, à quoi peut bien servir de la décomposer, si ce n'est à rendre la réponse plus difficile à trouver ? Je veux dire, qu'est-ce que vous cherchez ? Je pourrais décomposer la question et répondre à toutes les sous-questions, mais ensuite créer une question mère avec des liens vers toutes les sous-questions... cela semble assez stupide cependant. Pendant que nous y sommes, donnez-moi un exemple de question moins large. Je ne connais aucun moyen de poser seulement une partie de cette question et d'obtenir une réponse significative. Je pourrais poser exactement la même question d'une manière différente. Par exemple, je pourrais demander "À quoi servent les flux ?" ou "Quand utiliserais-je un flux au lieu d'une boucle for ?" ou "Pourquoi utiliser des flux au lieu de boucles for ?". Il s'agit pourtant exactement de la même question.
...ou est-ce considéré comme trop large parce que quelqu'un a donné une très longue réponse en plusieurs points ? Franchement, n'importe qui pourrait faire cela avec pratiquement n'importe quelle question. Si vous êtes l'un des auteurs de la JVM, par exemple, vous pourriez probablement parler de boucles for toute la journée alors que la plupart d'entre nous ne le pourraient pas.
"Veuillez éditer la question pour la limiter à un problème spécifique avec suffisamment de détails pour identifier une réponse adéquate. Évitez de poser plusieurs questions distinctes à la fois. Consultez la page Comment poser une question pour obtenir de l'aide afin de clarifier cette question."
Comme indiqué ci-dessous, une réponse adéquate a été donnée, ce qui prouve qu'il en existe une et qu'elle est assez facile à fournir.
10 votes
C'est une question d'opinion. Personnellement, je préfère les flux car ils rendent le code plus lisible. Il permet d'écrire ce que que vous voulez au lieu de comment . De plus, c'est vraiment génial de faire des choses incroyables avec des phrases toutes faites.
23 votes
Même si c'est une trentaine de lignes, une seule ? Je n'aime pas les longues chaînes.
2 votes
D'ailleurs, tout ce que je cherche ici, c'est la réponse appropriée pour un entretien. C'est la seule "opinion" qui compte.
0 votes
@ArnaudDenoyelle Je suis d'accord sur le badass mais si nous parlons d'évaluation des performances, laquelle serait la plus optimale ?
0 votes
@ChandlerBing les performances ne sont peut-être pas une priorité.
2 votes
D'un point de vue éducatif, cette question m'a sauvé de la dégradation lors d'un futur entretien aussi, @slim l'a vraiment clouée, mais d'un point de vue industriel, elle montre aussi comment les langages de programmation de Microsoft ont construit leurs carrières en s'appropriant le langage java, et finalement java prend sa revanche en s'appropriant la Expression lambda et flux des opposants, voyons ce que java va faire à propos des Structs et des Unions dans le futur :)
5 votes
Notez que les flux n'exploitent qu'une fraction de la puissance de la programmation fonctionnelle :-/
1 votes
@ShayHaned nous verrons cela si/quand Java aura une inférence de type réelle à moitié aussi bonne que celle de Roslyn.
1 votes
Je ne pense pas que je puisse vraiment en faire une réponse complète, du moins pas pour cette question, mais les flux utilisent l'itération interne, donc ils n'ont pas besoin d'utiliser une boucle. Les gens sont prompts à pointer du doigt le parallélisme, mais les flux peuvent également être implémentés avec une récursion, ce qui est très utile pour la traversée d'arbres, par exemple.
0 votes
@Mat's Mug , je ne veux absolument pas offenser le la beauté et la bête au sein de l'entreprise c#, j'essaie juste de faire remarquer que java n'a pas encore la bête Peut-être qu'un jour, Java aura une référence de type à moitié aussi bonne que celle de C#, parce que je peux certainement imaginer qu'ils travaillent sur les moitiés manquantes :).