7

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

What programming languages are available and what should I choose?

1 Answers1

12

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 '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 03 '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 08 '14 at 01: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) ? – Sergiy Kolodyazhnyy Feb 03 '17 at 17:17