As we saw in the previous chapter, ROS client libraries are nothing but APIs for implementing ROS concepts. Hence, we can directly use them in our user code to access ROS concepts such as nodes, services, and topics. ROS client libraries come with the ease of connecting with multiple programming languages.
Since each programming language has its own advantages and disadvantages, it's left to the users to decide which to choose from. For instance, if a system is concerned with efficiency and faster response rates, you could choose rclcpp, and if the system demands prototyping as a priority with respect to the development time that's utilized, you could choose rclpy.
The ROS client libraries in ROS-2 are split into two sections: one is language-specific (such as rclcpp, rclpy, and rcljava) and the other contains common functionalities that...