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

Why deprecated #37

Open
patrick-radius opened this issue Dec 29, 2015 · 6 comments
Open

Why deprecated #37

patrick-radius opened this issue Dec 29, 2015 · 6 comments

Comments

@patrick-radius
Copy link

Hi,
i was wondering why this repository was deprecated.
Is this mostly an issue about time or change of responsibilities or is there something fundamentally 'wrong' about this implementation?
I am aware of the other work being done like the rosbridge etc, but i am also very interested in running a real JS based implementation on the robot target itself, and i think especially in combination with something like the Tessel 2 this can be really powerful.

@baalexander
Copy link
Owner

Hi @patrick-radius, thanks for the question. The main reason this project was deprecated was a timing issue. I had not finished implementing the entire ROS protocol in rosnodejs when I changed jobs, so I decided it was best to deprecate the project instead of let it linger in limbo.

While I don't think there was anything fundamentally wrong with the rosnodejs module, I'm sure it could be done better today with improvements in Node, ES6, coding practices, etc.

For what it's worth, I receive emails semi-frequently from people interested in a native Node.js client library for ROS. I still think it would be useful to the community if someone wants to start a new project.

@patrick-radius
Copy link
Author

Hi @baalexander thanks for your clear answer.
Glancing over the code i also noticed some parts could be improved, and especially with ES6 gives some nice opportunities for clean code. I did some experiments yesterday with using array destructuring for parsing the xmlrpc responses for example.
However i am not completely sure if ES6 is the best way to go for such a 'low-level' library, or how to design a buildprocess that spits out ES5 compatible code for others to use. (currently i just use Babel during runtime, but i think this is a bit to heavy for embedded work).

Anyway, would you accept pull-requests to this repository, or should somebody else start from scratch?
Also, i suspect there is some overlap with https://github.com/RobotWebTools/roslibjs, i am not sure what's better, add the missing core functionality in here, or add support for native TCPROS/xmlrpc there.

@baalexander
Copy link
Owner

roslibjs is certainly more feature complete and has a strong community behind it. I believe Node.js support was added, but still calling rosbridge as opposed to being a pure-JS native client library. I haven't verified though.

As for where to contribute, let's leave this repo deprecated. If you create a new project that reaches full client library support using only Node, I'll be happy to link to it from rosnodejs' README. I can't really say
if adding native TCPROS/XMLRPC support to roslibjs is the way to go as I haven't reviewed the code in a while. My gut tells me that maintaining a JS library that supports web and native, including TCP and XMLRPC support would be complicated, but the Robot Web Tools Google Group would know better than me.

Best of luck!

@chfritz
Copy link

chfritz commented Apr 21, 2016

Hi @baalexander,

I've taken it on to complete the work you started -- thanks for getting all the hard stuff done already! My repo is https://github.com/chfritz/rosnodejs. So far I fixed a bug that prevented subscribing to message types that used the Header type, and added the ability to call services.

I am wondering how to proceed regarding the name. Do you want to grant me rights to publish updated npm packages for rosnodejs or would you prefer if I changed the name to something new? I would prefer the former -- mostly because I think it's the best possible name -- but can go either way.

Please let me know.

Best,
Christian

@baalexander
Copy link
Owner

Hi @chfritz, great to hear from you. A few questions:

  1. What's your plan going forward with the project?
  2. How much time do you plan to work on it? Is it you or a team?
  3. How do you see rosnodejs compare to rosjs (Rethink's ROS node library)

I ask because I'm not convinced rosnodejs is a good foundation to build on. It's out of date, my Node.js coding abilities were lacking, etc. Rethink's rosjs or Robot Web Tool's roslibjs could be better starting points.

@chfritz
Copy link

chfritz commented Apr 21, 2016

oh wow, I had no idea rosjs existed. I guess this is very recent development, too. Thanks for mentioning this. I'll have to try that out. So far all I see in the code looks very good and clean.

We are pretty committed to finding a solution that is better than rosbridge + roslib for server side integration of ros and node, and it would be a team in the long run but initially mostly me working on it. If we end up using this in production we would obviously maintain it. But seeing how clean rosjs is with ES6 classes and everything, I'm going to check that out first and potentially join forces with Rethink. Thanks for the recommendation! I'll let you know if for whatever reason that path doesn't work out for us and we'd like to consider rosnodejs again.

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

3 participants