gauron
(philippeg)
November 21, 2025, 10:01am
1
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.