5 ms·
It’s true, the reason for choosing C++ and Python as first class languages is because of their strength in numerical computing and AI capabilities (for python a
by jefft255 7y ago
It’s true, the reason for choosing C++ and Python as first class languages is because of their strength in numerical computing and AI capabilities (for python anyway), which erlang mostly lacks. It would definitely be cool to be able to use erlang though.
- ssivark 7y agoNo offense (I use Python all the time), but Python seems almost like the worst of all worlds, except for ease of use in the first month of using it -- with its only advantage being library inertia (which is a massive advantage in practice though). As eg: here's an excellent talk on the cruft in Python internals by Armin Ronacher: https://www.youtube.com/watch?v=qCGofLIzX6g https://www.youtube.com/watch?v=qCGofLIzX6g For more discussion on why Python is slow: https://news.ycombinator.com/item?id=12025309 https://news.ycombinator.com/item?id=12025309 There is, after all, a graveyard littered with big-money attempts to speed up (mutually incompatible) subsets of Python. But lack of inertia not something that should deter someone seriously invested (after all, Google/FB created Tensorflow/Pytorch respectively, and now Google might be getting behind Swift). It's a judgement call on whether one feels that most of the work/innovation still needs to be done, or is already done. If it is yet to be done, building on top of a better platform is almost a no-brainer.
- jefft255 7y agoWhen I say Python is good for numerical computing and AI, what I really mean is that the libraries are there. I share the same reservation as you about the language itself. I wasn't so clear in my comment above
- isatty 7y agoI disagree. I think that the use of Python in ROS is the best of both worlds. ROS makes it easy to do sane-ish IPC even for folks new to programming and enables them to offload heavy numerical processing or real time tasks out to C++ or even other boards on your robot. Python sits by handling state machines (decision making) and similar logic. It’s also great in experimental code that folks want to change often (opencv prototyping). I don’t like the lack of a type system and have run into easily preventable bugs with python but in my case the trade off with developer productivity was worth it.
- j88439h84 7y agoArmin's points are true, but PyPy makes the best of the situation, and hopefully the C-API will be deprecated at some point.
- isatty 7y agoHonestly, the language that I'd love get first class support for on ROS2 would be Rust. Robotics really needs type and memory safety while maintaining performance and I personally feel like Rust is the perfect fit. I'd also love to see a mature linear algebra library in Rust (benchmarked to and as easy to use as Eigen).
- rmattes 7y agoThere is an implementation of rust bindings for ROS 2: https://discourse.ros.org/t/announcing-rust-bindings-for-ros2/3870 https://discourse.ros.org/t/announcing-rust-bindings-for-ros... https://github.com/ros2-rust/ros2_rust https://github.com/ros2-rust/ros2_rust It looks like they could use more help pushing things along.