API or binding for Tango

Hello,
reading Glossary — Tango Controls 10.0.0 documentation I see the Tango core propose 3 API in C++, Python and Java.
Reading Bindings — Tango Controls 10.0.0 documentation I see bindings exists for C language, Igor Pro, LabView, Matlab and Octave and REST API.

I formerly understood the difference between the bindings and the API is that API is up-to-date and binding maintenance is more random.
However, reading Tango Core: Python — Tango Controls 10.0.0 documentation which say “PyTango - a Python binding to Tango”, and Tango Core: Java — Tango Controls 10.0.0 documentation which say “JTango, the Java binding for Tango Controls”, I wonder if I well understood.

What is the difference between API and binding for Tango?

What is the difference between API and binding for Tango?

Let’s start by looking at the definition of language binding, according to wikipedia:

In programming and software design, a binding is an application programming interface (API) that provides glue code specifically made to allow a programming language to use a foreign library or operating system service (one that is not native to that language).

So, a binding is an API. The C++ and Java Tango APIs are using CORBA under the hood natively.
The others are bindings, including PyTango. They are basically using cppTango (the Tango C++ API) under the hood.

I think, we should not say that JTango is the Java binding for Tango Controls. For me, it’s a TANGO Java API for Tango Controls.

Thank you Reynald, I understand better.

Perhaps this could be clarified since today, I’m not sure this is ok for everyone.
I do not doubt wikipedia definition but at first, while talking with colleagues, we understand that Python is said API because it’s maintained up-to-date, while for example panorama is probably not.

Perhaps a way to clarify would be to clarify that Java, Python and C++ API are maintained to be up-to-date to be sure anyone could use last functionnalities with those languages if I understand well?

we understand that Python is said API because it’s maintained up-to-date

I think this is not linked at all. API has nothing to do with the fact that it is maintained or not.

Java, Python and C++ API are the most actively maintained projects, even though the Java API is a bit behind the 2 others.