hackergotchi

treitter

Let's Push Things Forward

Maximizing social utility for fun and (modest) profit


Previous Entry Share Next Entry
hackergotchi
treitter

Answering the question: "How do I develop an app for GNOME?"

During the GNOME Developer Experience Hackfest this week, one of the major goals we identified was the need to pick a single language to give a simple answer to "how do I write a GNOME app?".

Right now, if you ask that question, you'll get about 8 different personal-preference answers, which drives people away from our platform. Having to potentially evaluate several different languages and their stacks gives potential developers a lot of unneeded extra work.

There was broad consensus in the hackfest for this goal because it allows us to:
  • It allows us to focus when we write developer documentation, fixing bugs in the development environment and the development of tools. This reduces our maintanence 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.

We spent a long time discussing the different options that are available to us, and there were a variety of opinions. However, at the end of the day, we had to recognize that no language is perfect and there will always be disagreement. The important thing was that we had to make a decision.

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.

Our decision is to support JavaScript as the first class language for GNOME application development. This means:
  • We will continue to write documentation for other languages, but we will also prioritize JavaScript when deciding what to work on.

  • We will encourage new applications be written in JavaScript.

  • We will be working to optimize the developer workflow around JavaScript.

C will remain the recommended language for system libraries.

Why JavaScript?
  • Our language of choice needs to be dynamic and high level.

  • There is already momentum in the GNOME Project for JavaScript -- it's used in GNOME Shell and GNOME Documents.

  • There's a lot of work going into the language to make it especially fast, embeddable, and framework-agnostic.

  • JavaScript is increasingly being seen as a first class desktop programming language -- it us being used in Windows 8, mobile platforms, and for local web applications.

  • JavaScript is self-contained -- it doesn't come with its own set of core libraries, which makes it more convenient for us when integrating it into the platform.

This is the start of a process and there's obviously a lot of work ahead of us. However, prioritizing a single language will enable us to turn GNOME into a compelling platform for application developers in a much more effective and efficient manner.

Re: I agree with the anonymous poster above

treitter

2013-02-03 02:22 pm (UTC)

My speculation is the primary reasons that JavaScript was chosen c.f. python/other is

You're right. That's speculation and not what happened.

We spent two days with experts in the top several most-popular GNOME programming languages before reaching our conclusion (based entirely on technical and process merits).

It's disingenuous (at best) for you to claim that we chose JavaScript because it's "shiny". I personally would have done all I could to prevent a choice on that criterion (but it honestly never came up).

Edited at 2013-02-03 02:26 pm (UTC)

Re: I agree with the anonymous poster above

(Anonymous)

2013-02-04 12:21 pm (UTC)

We consider the reasons given

> Our language of choice needs to be dynamic and high level.

sure.

> There is already momentum in the GNOME Project for JavaScript -- it's used in GNOME Shell and GNOME Documents.

shiny

> There's a lot of work going into the language to make it especially fast, embeddable, and framework-agnostic.

Well the work is going into the engines, all N of them, yay.

What does embeddable have to do with GNOME (my point 3). What does framework agnostic even mean here. This whole GNOME chosen language is very framework gnostic (GNOME).

> JavaScript is increasingly being seen as a first class desktop programming language -- it us being used in Windows 8, mobile platforms, and for local web applications.

shiny

> JavaScript is self-contained -- it doesn't come with its own set of core libraries, which makes it more convenient for us when
> integrating it into the platform.

My point 3.


Re: I agree with the anonymous poster above

(Anonymous)

2013-02-04 11:47 pm (UTC)

In summary, JavaScript is the trendy new hotness. Totally fad-tastic!

(That's fine, but just be honest about it and don't act like it's a well considered opinion.)

Re: I agree with the anonymous poster above

treitter

2013-02-05 01:01 am (UTC)

JavaScript isn't a passing fad. It's been here a long time, it's widely-used, and thus won't be gone any time soon. All important things when choosing a language to promote for the future of our ecosystem.

Re: I agree with the anonymous poster above

treitter

2013-02-05 12:57 am (UTC)

> There is already momentum in the GNOME Project for JavaScript -- it's used in GNOME Shell and GNOME Documents.

shiny

No, "shiny" is "we're going to use this language because it has some neat new (unproven) technology"

Developer buy-in for a language is absolutely one of its most important features because it determines how much collective effort will be put into further development of the language, its supporting tools, etc.

> JavaScript is increasingly being seen as a first class desktop programming language -- it us being used in Windows 8, mobile platforms, and for local web applications.

shiny

Again, developer buy-in drives a lot of what makes a language useful.

Re: I agree with the anonymous poster above

(Anonymous)

2013-02-05 09:54 pm (UTC)

Developer buy-in for a language is absolutely one of its most important features
Pretty much all the developers I know don't like javascript and just have to deal with it because of web development. I'm like many here, I really don't understand the choice...

Re: I agree with the anonymous poster above

(Anonymous)

2013-02-05 01:02 am (UTC)

I've been reading in a lot of places that the Gnome devs arrogantly think they know what's best and forge ahead without regard for the community. Treiter, every single thing you've said so far, and the way you've said it, has only confirmed in my mind that the Gnome core devs are exactly a bunch of arrogant, mustachioed hipster, fad-chasing, brogrammers.

I considered Gnome 3 a pretty serious error. Now... Gnome is dead to me.

You are viewing treitter