UNO components can be implemented in or accessed from any programming language for which a language binding exists. Complete UNO language bindings exist for C, C++ (compiler dependent), Java and Python. Bindings allowing access, but not writing components, exist for StarOffice Basic, OLE automation and the .NET Common Language Infrastructure (not finalised).
UNO is open source, distributed under the LGPL.