Development
The GNOME developer experience hackfest
For three days just prior to FOSDEM, GNOME contributors gathered in Brussels to discuss and work on the "developer experience". The developer experience hackfest was well attended, attracting people from all over the world. It was also quite productive, judging from various blog postings about the meeting. The headline decision—making JavaScript the preferred language for developing GNOME applications—was certainly noteworthy, but there were other plans made as well.
The JavaScript choice makes sense on a number of levels, but it also
has clearly caused a fair amount of disdain to be directed at the GNOME project. Any
language chosen would have likely resulted in much the same level of
discontent. As Travis Reitter noted in his announcement: "The
important thing was that we had to make a decision.
" That helps in
having
a single answer to the "how do I develop a GNOME
application?" question, which is part of the justification for the move:
- It allows us to focus when we write developer documentation, fixing bugs in the development environment and the development of tools. This reduces our [maintenance] costs and enables us to be vastly more efficient.
- It enables code and knowledge sharing to occur, so that people can easily copy and paste code from existing applications, or find information about common problems and challenges.
- It provide a coherent and easy-to-follow path for new developers.
- It allows us to include the full GNOME framework within the language itself.
None of the existing supported languages are being deprecated because of the decision; it's really just a matter of focus for the project. While there have been a fair number of complaints heard about the choice, here at LWN and elsewhere, it's not clear how many GNOME contributors are among those disgruntled. On the other hand, some GNOME developers who might seem like candidates for grumbling are on-board with the change. John "J5" Palmieri is a big Python fan who worked on GObject Introspection for that language, but is pleased with the decision:
Another interesting discussion took place in the "application distribution and sandboxing" subgroup, as reported by Alexander Larsson. The group considered two different pieces of the application infrastructure puzzle: how to deploy (i.e. create, install, and run) application bundles and how to protect the rest of the user's session from application misbehavior.
For deployment, GNOME is considering having applications declare their library dependencies, in either a coarse or fine-grained manner, and then installing and running them in an environment that guarantees those dependencies regardless of what the system itself is running. That would be done using containers that provide a private view showing the platform dependencies that the application said it requires. As Larsson describes, there are some benefits to that approach:
Beyond that, the idea of application isolation can be extended to provide a
fully isolated sandbox for untrusted applications. It would require D-Bus
routing in the kernel, which is proving to be a hard sell, but
"hopefully this will work out this time
", Larsson said. There
is interest in adding a facility like the Android
Intents system to allow sandboxed applications to communicate. Since
that kind of communication implies a security domain transition, the group
came up with the name "Portals" for this new feature. The discussion
continues post-hackfest, he said, "hopefully we can start [to] implement
parts of this soon
".
The JavaScript decision was also helpful for the documentation subgroup, as Meg Ford and Allan Day reported. Those two, along with several others, started reworking the GNOME developer web site, including adding new tutorials for first-time application developers. Significant redesign of the site with several new features was discussed. Ford described some of those:
It would seem that the GNOME project has chosen the direction for its "developer story". That story is an important piece of the puzzle when trying to attract application developers to a platform. One could argue about the choices made, but it is significant (and important as Reitter said) that a choices was made. JavaScript is certainly popular, and many developers are already comfortable using the language. That may prove helpful in attracting some of those developers, but having one place to point when someone asks about developing a GNOME application is likely to be more important still.
Brief items
Quotes of the week
Aarch64 porters will be grateful as updated software trickles down to distributions.
KDE 4.10 Release of Plasma Workspaces, Applications and Development Platform
The KDE Community has announced the 4.10 releases of KDE Plasma Workspaces, Applications and Development Platform. "This release combines the latest technologies along with many improvements to bring users the premier collection of Free Software for home and professional use."
Barman 1.2.0 released
Barman, the Backup and Recovery Manager for PostgreSQL, version 1.2.0 has been released. This release introduces "automated support for retention policies based on redundancy of periodical backups or recovery window
". Such policies are "integrated by a safety mechanism that allows administrators to specify a minimum number of periodical backups that must exist at any time for a server
".
Topaz: a new Ruby implementation
The Topaz project, which is creating a new Ruby implementation done in RPython, has announced its existence. "Because Topaz builds on RPython, and thus much of the fantastic work of the PyPy developers, it comes out of the box with a high performance garbage collector, and a state of the art JIT (just-in-time) compiler. What does this mean? Out of the box Topaz is extremely fast."
MySQL Community Server 5.6.10 available
Version 5.6.10 of the MySQL database server has been released. Despite the x.x.10 version number, this is the first stable release of the 5.6 series to officially be declared "general availability" (GA). The set of changes included is extensive; the project has a full changelog available on its site.
Firefox 18.0.2
Firefox 18.0.2 has been released. See the release notes for details.Krita 2.6 released
Version 2.6 of Krita, the KDE-flavored painting and natural-media simulation application, has been released. This version includes improvements to OpenRaster support, Photoshop (.PSD) file export, and new support for the OpenColorIO color-management system used in some professional video workflows.
Newsletters and articles
Development newsletters from the past week
- Caml Weekly News (February 5)
- What's cooking in git.git (February 1)
- What's cooking in git.git (February 4)
- What's cooking in git.git (February 6)
- Haskell Weekly News (January 30)
- Openstack Community Weekly Newsletter (February 1)
- Perl Weekly (February 4)
- Ruby Weekly (January 31)
Reitter: Answering the question: "How do I develop an app for GNOME?"
Travis Reitter reports that the GNOME project has settled on JavaScript as the primary language for application development. "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. We will continue to distribute other bindings and documentation as we do now and compatibility for the other languages will continue to be developed as they are today by the developers involved with those modules."
Sourcefabric: Open source search with Solr leads Newscoop development
Sourcefabric, creator of open source journalism applications such as the Airtime radio station management system, has released a newsletter that rounds up recent developments in its software frameworks. This edition includes the addition of Apache Solr searching in the Newscoop CMS and Booktype's appearance at the Tools of Change conference.
Firefox and Chrome have a chat
According to blog postings from both the Chrome and Mozilla projects, the Chrome and Firefox browsers have achieved an interoperability milestone: it is possible to run video calls directly between the two browsers with WebRTC, using no intervening server. "RTCPeerConnection (also known simply as PeerConnection or PC) interoperability means that developers can now create Firefox WebRTC applications that make direct audio/video calls to Chrome WebRTC applications without having to install a third-party plugin. Because the functionality is now baked into the browser, users can avoid problems with first-time installs and buggy plugins, and developers can deploy their apps much more easily and universally."
Page editor: Nathan Willis
Next page:
Announcements>>
