In this lesson, you will learn a bit more about the Ros2 architecture so you can understand the different
client libraries you can use for different languages.
So for now in Python you have used CLP, and for Cplusplus you have used rcl, cpp.
You might wonder where do those libraries come from and why do they both start with RCL?
Well, RCL is a ros2 library and it means Ros client library.
RCL is a pure C library which contains all the core functionalities under RCL.
You have the Ros2 middleware with DS and DS means data distributed services.
This will handle all the communications in your application.
I won't give more details about that.
For now, all you need to know is that RCL is basically the lowest Ros2 client library you can use,
and it is the bridge with the Ros2 middleware.
So RCL is the base library for Ros2, but you won't use it directly.
Instead, you will use other client libraries that are built on top of RCL.
For example RCL, cpp which you have seen before in this section.
RCL TCP is a Cplusplus client library which basically provides a binding with RCL functionalities.
In your code, you will simply use RCL, cpp and the same thing for Python.
The CLP client library is built on top of RCL and then you use CLP in your Python code.
It means that whether you program with C plus, plus or Python, well the base library is the same,
so the functionalities are the same.
C plus, plus and Python are the two most supported languages, but as you probably guessed, we can
add any other language on top of the RCL library.
In fact, some of them already exist, for example RCL, Node.js for Node.js, RCL, Java for Java,
etc. apart from C plus, plus and Python, most of the other client libraries for other languages are
supported by the open source community.
So it means that unfortunately, they might not be as complete and not as well supported as RCL Pi and
RCL CPP well, and that's about it for Ros2 client libraries.
That's a very simplified view, but this should help you understand why we are using Lclc-rp for C plus
plus and CLP for Python.