Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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

What programming languages are available and what should I choose?

share|improve this question
up vote 10 down vote accepted

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.

share|improve this answer
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 '13 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. – Jo-Erlend Schinstad Feb 3 '14 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 '14 at 1:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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