What programming languages are scopes written in?

I'd like to get started writing a Scope for Ubuntu.

What programming languages are available and what should I choose?


Solution 1:

Once upon a time, scopes had Python and Vala bindings. Python was the recommended language. This actually still applies for the desktop and Unity 7. However, while it will still be around for a bit (i.e. it's still shipped in Ubuntu 14.04 LTS), we're phasing out Unity 7 in favour of Unity 8 in the new world where we'll have a single Unity codebase that runs across devices and form factors (e.g. phone and desktop).

So at this point, the recommendation for new projects is to write scopes for Unity 8. In Unity 8 the supported language is C++. All current tutorials and API docs are based on C++.

The reasons for going for C++ are twofold: performance and compatibility with the Qt APIs available throughout the platform.

We do recognize the value of supporting other bindings. While Go is still not on par with the C++ bindings, you can also already write scopes in Go (see the preliminary documentation) and further down the road we're also considering adding JavaScript.