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

What programming languages are available and what should I choose?

1 Answer 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.

  • 1
    Did the dev team consider Go instead of C or Python? I know that some Ubuntu things (for example, Juju) are written in Go.
    – Malcolm
    Dec 10, 2013 at 15:28
  • It seems to me that Vala would be a better choice than C since this would make it easier to make it introspectable, enabling the use of other languages as well. Feb 3, 2014 at 12:23
  • cool, there are a few api's that seemed to require a bit of javascript to link back on preview pages, so that would be awesome.
    – Mateo
    Nov 8, 2014 at 1:37
  • David, your answer was edited in 2014. What is the status of language support for scopes as of 2016 and in the current LTS releases (14.04 and 16.04) ? Feb 3, 2017 at 17:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.