Pull to refresh

Comments 15

Подписался!

Парадигма реактивного программирования близка мне, как ничто другое. Изучаю derby.js
Реактивность — отличная штука. Очень хотелось бы, чтобы ее форсированно протащили в .net, как это сделали с линком и асинхронностью.

Подписался.
>Финансовые и телекоммуникационные компании
да, финансовые компании на острие прогресса — не смешите… это самые большие слоупоки…
В сфере финансов есть, например, системы автотрейдинга — там быть технологическим слоупоком не выгодно…
В тексте слово «асинхронный» встречается 11 раз. И при внимательном чтении становится понятно, что авторы манифеста нигде не призывают писать код в асинхронном стиле (используя колбэки или future/deferred-магию).
Но лучше бы они ограничились словами event-driven и concurrent.
Да, писать код нужно в декларативном стиле, а не в асинхронном. Иначе в будущем программисты будут стреляться и валить на другую работу.
Не пугайте такими ужасами. Посмотрите Future в scala. В Java8 с лямбдами можно будет писать почти как в scala.
Я бы не стал сравнивать. Разные цели — разные решения.

Не хочу устраивать холивар, просто указал, что ваш пример ужасен не из-за Future, а из-за конкретной реализации.
Скажем так, RxJava решает более широкий круг задач, а Future — более узкий. По идее, RxJava может делать всё то же самое, что и Future, но в своей нише у Future это получается лучше. Зато Future не умеет делать многих вещей, которые есть в RxJava. Например, оно умеет хранить только одно значение, в то время как Observable может хранить хоть одно, хоть несколько (или даже бесконечность) значений.

А пример мой ужасен, но такова Java 7, что поделать — она сейчас mainstream. Количество Java-программистов на порядки больше, чем Scala-программистов.

Сложно судить про Rx… я не представляю как там реализовать не блокирующие [поток] обращения к БД или не блокирующий кеш и тому подобное. Я бы все-таки предположил, что области пересекаются, но ни одна не включает другую.

И тут не соглашусь. Здесь вина не Java7, а конкретной реализации.
Ни что не мешало реализовать в стиле guava.
Вот пример более гуманной реализации. Тут просто используются FunctionN из Scala и вполне сносно смотрятся. (В контексте общей многословности Java).
Сложно судить про Rx… я не представляю как там реализовать не блокирующие [поток] обращения к БД или не блокирующий кеш и тому подобное.

Через Executors, как же еще. Future в Scala именно так и работает, просто всё делается неявно через implicit'ы.

И тут не соглашусь. Здесь вина не Java7, а конкретной реализации.

Ну Java 7 тоже виновата, что в её библиотеке Future такой ужасный. Я же не какой-то там левый Future взял в пример, а стандартный. Да, можно было решить лучше, пользуясь сторонними библиотеками.
Огромное спасибо!
Достаточно общий, грамотный и современный подход.
Спасибо за перевод, большая работа и неплохой язык! У меня есть пара поправок:

1) В перечислении характеристик реактивных приложений вы пишите:
  • реагируют на события

Ориентированность на события означает наличие следующих качеств.
На самом деле она не обозначает наличия следующих качеств, а делает их возможными, является необходимой для них. В оригинале: «the event-driven nature enables the following qualities».

2) Последнее предложение манифеста у вас:
Мы ждём, что системы, число которых стремительно растёт, в ближайшем будущем будут следовать этому манифесту.
На самом деле они ждут, что число систем, которые следуют манифесту, будет стремительно расти. Оригинал: «We expect that a rapidly increasing number of systems will follow this blueprint in the years ahead».
Sign up to leave a comment.

Articles