Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RxJava 3 #204

Closed
daihy8759 opened this issue Jul 8, 2019 · 24 comments
Closed

RxJava 3 #204

daihy8759 opened this issue Jul 8, 2019 · 24 comments

Comments

@daihy8759
Copy link

image

@vietj
Copy link
Contributor

vietj commented Jul 8, 2019

we will investigate this soon and likely provide support for 3, thanks for reporting this.

@cvgaviao
Copy link
Contributor

@vietj
Copy link
Contributor

vietj commented Aug 20, 2019

It seems to me that Rx 3.0 is a bit a joke and it does not bring enough stuff on the table, I see it more as a glorified 2.3.0 than a real 3.0 .

A real 3.0 would have embraced Java 8+ at least.

@cvgaviao
Copy link
Contributor

A real 3.0 would have embraced Java 8+ at least.

I agree with you. It seems to me that it is because rxJava is heavily used by Android guys that are stuck in java6 :(

@vietj
Copy link
Contributor

vietj commented Aug 20, 2019

according to the issue in their tracker, people said that Android should not be an issue anymore and they would be fine actually continuing using 2.x

@vietj
Copy link
Contributor

vietj commented Aug 20, 2019

even Java 11 would be nice actually with Flow API

@aaloise
Copy link
Contributor

aaloise commented Aug 22, 2019

I think the decision to release version 3 instead of 2.3 for example is related to many API changes. What leads me to interpret this are the sentences that states RxJava 2 API mistakes being fixed and also it's limitations.

Anyway, I believe that Vert.x will adopt RxJava 3 in due course.

@vietj
Copy link
Contributor

vietj commented Aug 23, 2019

@aaloise yes, ignore the rant where I was just bitching at RxJava 3 due to my disappointment by the lack of ambition

@aaloise
Copy link
Contributor

aaloise commented Aug 26, 2019

It was discussed here: ReactiveX/RxJava#5620

@vietj
Copy link
Contributor

vietj commented Aug 27, 2019

In another discussion some argue for using a more recent version of Java:

@aaloise
Copy link
Contributor

aaloise commented Aug 27, 2019

Must confess that I did not fully understand the decision to stay with Java 6 support. I know there is the whole thing surrounding Android, but I don't know exactly how much support to it is worthy.

I think adopting Java 8+ as a minimum, as Reactor did, would enrich the library.

But this is one of those design decisions, of which we have no choice but to accept.

Regardless, RxJava has great value and I, among others in the community, like to see it talking so well with Vert.x 😊

@aaloise
Copy link
Contributor

aaloise commented Dec 27, 2019

Good news! Since version 3.0.0-RC7, RxJava has moved to a Java 8 baseline.

ReactiveX/RxJava#6803

@vietj
Copy link
Contributor

vietj commented Dec 27, 2019

that's a great news @aaloise :-)

@vietj
Copy link
Contributor

vietj commented Dec 27, 2019

however it seems still to use its RX2 interfaces, e.g https://github.com/ReactiveX/RxJava/blob/3.x/src/main/java/io/reactivex/rxjava3/functions/Consumer.java instead of Java 8 Consumer interface

@aaloise
Copy link
Contributor

aaloise commented Dec 27, 2019

Let's see how things go, it's still in RC stage. I am not 100% sure, but I think that it has something to do with Android desugar...

"For Android development, the latest Android Studio is always recommended which is already able to desugar many Java 8 constructs. The upcoming AS 4 will support even more desugaring for older API levels. Until then, one should stick to the non-Java 8 standard methods so the Java 8 methods can be ignored by AS."

@vietj
Copy link
Contributor

vietj commented Dec 27, 2019

wait and see indeed :-)

@aaloise
Copy link
Contributor

aaloise commented Dec 30, 2019

@vietj David Karnok explained to me why RxJava 3 still uses it's own interfaces instead the ones of Java 8:

"Java functional interfaces can't throw checked exceptions but ours can. If we switched over, a protocol would be needed to sneak out checked exceptions. This adds complications to both our users (try-catch in many lambdas) and library internals (proper unwrapping in a ton of operators). Reactor did it and suffered from related issues for months. Besides, functional interfaces and lambdas can be freely defined. Since the business logic is customized through it every time, I don't think there exist a repository of java functionals so no direct interop is likely needed. Otherwise, use lambda::apply to convert them at your will."

@vietj
Copy link
Contributor

vietj commented Dec 31, 2019

@aaloise interesting thanks

@vietj
Copy link
Contributor

vietj commented Jul 31, 2020

For this generator we should skip the generation of Handler and Future methods and provide only Rx3 types I think, at least we should skip Handler

@angelsanzn
Copy link

Is RxJava 3 support planned for Vert.x 4 or postponed to a later Vert.x release?

@vietj
Copy link
Contributor

vietj commented Aug 9, 2020

it is not yet clear, if that's not in Vert.x 4.0 then it would be in 4.1

@vietj vietj added this to the 4.1.0 milestone Sep 25, 2020
@vietj vietj changed the title rxjava 3.x RxJava 3 Oct 27, 2020
@vietj vietj closed this as completed Oct 27, 2020
@vietj
Copy link
Contributor

vietj commented Oct 27, 2020

instead proper issue #204

@vietj vietj removed this from the 4.1.0 milestone Oct 27, 2020
@cvgaviao
Copy link
Contributor

instead proper issue #204

You have linked this same closed issue

@vietj
Copy link
Contributor

vietj commented Oct 28, 2020

here is the correct one #240

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

5 participants