Информация об изменениях

Сообщение Java8 Streams API, почему так сложно? от 29.09.2014 5:47

Изменено 29.09.2014 5:51 Klag

Пытаюсь вникнуть в Java8 Streams API и не перестаю поражаться, почему все так сложно сделано?
Пример C# и Python показывает что почти все прекрасно решается ключевым словом yield и сопутствующей поддержкой со стороны языка, в то время как в Java наворотили какую-то безумную иерархию.

К примеру, естественное желание вернуть ограниченный набор значений из потока превращается в довольно многословную пляску с AbstractSpliterator.

Java-way это и есть многословность, но есть ли примеры, где java-стримы позволяют сделать что-то проще, чем питоновские и C#-ские итераторы?
Пытаюсь вникнуть в Java8 Streams API и не перестаю поражаться, почему все так сложно сделано?
Пример C# и Python показывает что почти все прекрасно решается ключевым словом yield и сопутствующей поддержкой со стороны языка, в то время как в Java наворотили какую-то безумную иерархию.

К примеру, естественное желание вернуть ограниченный набор значений из потока превращается в довольно многословную пляску с AbstractSpliterator.
Более того, AbstractSpliterator является довольно низкоуровневой конструкцией, и, видимо, правильная его реализация в сложных случаях будет тем еще вывихом мозга.

Java-way это и есть многословность, но есть ли примеры, где java-стримы позволяют сделать что-то проще, чем питоновские и C#-ские итераторы?