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

Status of this Java Client SDK ?!? #2

Open
StephanSchuster opened this issue May 27, 2019 · 5 comments
Open

Status of this Java Client SDK ?!? #2

StephanSchuster opened this issue May 27, 2019 · 5 comments

Comments

@StephanSchuster
Copy link

I am currently evaluating emitter.io as an alternative to deepstream which has some outdated and buggy client SDKs, especially when it comes to Java/Android.

First, I was very happy when I read about the concepts of emitter.io and excited to give it a try. But now that I see this 4 year old Java SDK I am really frustrated. :-( It cannot be integrated in Android as a simple Gradle dependency, the API seems to be outdated compared to the Javascript SDK, it only has 4 stars (???), ...

All in all, this does not seem worth an evaluation at all.

And again (like with deepstream) I am asking myself WHY IS THIS? Why are you obviously not caring about Java/Android? Or am I missing something?

Are there any plans for updating this SDK?

@Florimond
Copy link
Member

We certainly do wish to have all our clients up to date. However, writing and maintaining multiple SDKs is very time consuming, so we have to focus our efforts on the most demanded ones. The Go SDK is up to date, I'm just done updating the Python one, and I'm currently busy updating the C# version (should be done this week). I think there are just a couple of stuff I need to add to the Javascript SDK.
I'm probably going to fill a table with the features each SDK has or lack and put it in the documentation.

Now, honestly, you are not the first, but still one of the firsts to complain about the Java SDK, that's why it wasn't a priority to update it.

As you said, it's an open-source project, and we are always happy to receive contributions. For example, the Dart and Angular libs are external contributions.
I can certainly put the update of the Java SDK on our roadmap. About Android however, I'm not sure at this point how to solve the problem described here: Android Platform Support #91.

@StephanSchuster
Copy link
Author

Thank you for your fast and informative response. In the first place, this signals a "living project" and that we agree on the ultimate goal of having all clients up to date. Perfect.

A table with features/status of each SDK would be a first step.

Regarding Java/Android: by simply looking at the number of devices out there, Java/Android is IMHO the must have SDK besides web. I think it's not only me who would honor an up to date SDK here. You already mentioned Issue#91 but I'm sure theres way more. Java/Android could give you a real boost compared to your competitors.

I also commented in Android Platform Support #91 as I don't understand some of the details mentioned there.

@StephanSchuster
Copy link
Author

I spent some more hours on finding a "realtime pub/sub solution" for my requirements:

  1. open source, self-hosted, simple, fast, stable
  2. support for Java/Android, Python, JavaScript
  3. presence, persistence
  4. security, scalability

On a first glance, it looks like there are a lot of options. But like one year ago, I ended up with:

  • deepstream.io --> outdated/buggy/inactive Java/Android client and maybe doing a bit too much
  • socket.io --> also several complaints about Java/Android and does not cover all my requirements
  • emitter.io --> my new preferred option which covers everything except for the Java/Android client

Why do I tell this?
Well, probably because I hope that we will have an up-to-date Java/Android client very soon. :-)
And because I think my requirements are quite common which underlines what I said before:

Java/Android could give you a real boost compared to your competitors.

@StephanSchuster
Copy link
Author

One more thing...

You said: Go, Python, C# (all based on Paho) and Javascript SDKs are (almost) up-to-date --> PERFECT!

Looking at your Python implementation, am I right that we basically "just" need to port emitter.py and subtrie.py to Java/Android with the according Java/Android implementation of Paho?

Most important: How long would this roughly take for you as an expert in Emitter/MQTT/other SDKs?

I am just asking to get a feeling how much time I would need because at the moment this seems like my best option out of the 3 possibilities mentioned above.

Thanks for your time and support.

@Florimond
Copy link
Member

Florimond commented May 28, 2019

I haven't touched a line of Java since school. First, I'm going read and understand the previous version thoroughly (doesn't look like there is so much to read, but I don't know). I'll probably need to integrate a newer version of the MQTT lib. Only then I'll start updating Emitter, and testing. Finally, you mentioned Gradle, well I have no idea how to package a java application.

It's difficult for me to evaluate but it's for me at least several full days of work. If you know Java well, you know how to package, and you read the Python version to understand how Emitter works, maybe 3 full days for you?

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

No branches or pull requests

2 participants