At the GNOME Developer Experience Hackfest in Brussels, the GNOME developer community has tackled the problem of specifying a canonical development language for writing applications for the GNOME desktop. According to a blog post by Collabora engineer and GNOME developer Travis Reitter, members of the GNOME team are often asked what tools should be used when writing an application for the desktop environment and, up until now, there has been no definitive answer. The team has now apparently decided to standardise on JavaScript for user-facing applications while still recommending C as the language to write system libraries in.

The Hackfest took place in the days immediately preceding the FOSDEM 2013 conference in Brussels and was well attended by representatives from many different open source companies. There was a "broad consensus" to adopt a single language for GNOME application development, says Reitter. He points out that a canonical language enables the developers to more easily prepare documentation for, and share knowledge with, newcomers to the development community. It also helps more easily integrate applications written for the desktop with the desktop's infrastructure.

After a long discussion weighing the arguments for and against several languages, the developers apparently decided on JavaScript, as it is already well supported in GNOME 3 by virtue of the fact that the desktop's GNOME Shell interface uses it to implement its user interface. Reitter also points to ongoing work to make JavaScript better supported as a first class desktop development language. GNOME's JavaScript plans are informed in part by how the language is used for similar purposes in Windows 8, Firefox OS and other systems, and that, the team hopes, will make it easier for developers who are new to GNOME to work with it.

Despite the fact that JavaScript will be the recommended way to write GNOME applications, the developers are nonetheless stressing that other languages will still be supported. "It's critical that everyone understands this decision as a plan to elevate the language, bindings, tools, and documentation to a level of quality we have not yet achieved. It is not a decision to abandon any other language bindings", says Reitter.

(fab)