Thursday, January 10, 2013

QML component API's to come together?

Just another day at the office...

The #active channel on irc.freenode.net is a place where people from a wide variety of projects that use various common bits of technology hang out. In Plasma Active we do a lot of work with Qt, QML and Mer, for instance; so we have people there from the Mer project as well as various QML focused projects.


Yesterday was therefore "just another day at the office" for us as a conversation between a Jolla (Sailfish) developer and a Canonical (Ubuntu Phone) developer about QML component API started up in the Plasma Active irc channel. Not only was everyone "Ok" with this, but consensus was that it was pretty awesome that we have a space for people to come together like this. People even said that to each other rather than let it remain silently unsaid. Contrast that with the attitude we sometimes see in development communities that discourage such "off-topic" communication between "competitors".




Well, one thing led to another and Zoltán posted an email to the Qt Components mailing list summing up the conversation and proposing we bring our APIs into better alignment. We hope to address issues of API drift between the various component sets out there. This is a pain point others have identified, such as in this recent blog post by Johan Thelin. There is much work to be done before we can even think of calling this a success, but it's the right sort of start.

And not the only fish frying...

There are also discussions underway regarding other aspects of the bigger puzzle such as common package formats and delivery strategies. We are poised, should we keep our heads straight and our feet moving, to evolve that holiest of grails in the mobile space: an open and vendor neutral application development strategy built around the commonality of QtQuick and Linux. This is our Rome, which will not be built in a day, but which can become something significant in the world if we keep our heads and follow through.

Waxing even more philosophical

I like to think that this is one result of Plasma team being focused on pragmatic goals rather than bordering-on-the-religious turf protectionism. We want to Get Stuff Done(tm), are often looking at problems in advance of others (our use of QML being a prime example) and are very interested in looking at solutions others have come up with before us (e.g. our adoption of the Maliit input system was made possible due to this).

We take the broad viewpoint that we have open technology in common with others, and the way to make the most of each of our investments is to collaborate and coordinate. This helps favor more congenial competition as we identify and expand our commonalities. It should also, in the case of QML component APIs, make a far more friendly and interesting story for developers: how much more exciting will it be to write an application that you know will work on Plasma Active, Sailfish, Ubuntu Phone ... because the components, while perhaps implemented differently behind the scenes on each platform, share some level of API consistency.

This has two effects: the audience for developers is much bigger and instead of competing for developer attention between us relative small fry, we can compete for developer attention together. That means greater opportunities for participation which will translate into more tools and toys for us as users. By finding what is already best for us as platform developers, we will make something better for us as users. That's an "us" that includes you!

I am exceptionally happy to be a part of a project and a community that can see the forest for the trees here: the cooperation for the competition. This is one of the primary value points I see in KDE as a whole, and one reason I recommend supporting KDE to others: over the years, KDE has matured into a community focused more on creating value for the user rather than protecting largely imaginary borders or, worse, creating new ones.

In economic terms we have evolved into a community of free markets and open trade (with all the competition and cooperation opportunities that comes with that) in contrast to isolationist communities which exhibit protectionism, borderline xenophobia and the propensity to create new schisms rather than bridge old ones.

Recently David E. Narváez reminded us all that "at the end of the day the time we dedicate to [KDE] directly affects the life of many others", and I simply could not agree more.

And what of Vivaldi and Make Play Live?

Progress on the Vivaldi tablet hardware suffered a major setback in the middle last year, but we've manged to put it back on the rails. I'm very happy with the progress of things and we will be sharing with the world what we've come up with once we're finished crossing all the T's and dotting the I's. I have been devoting a large amount of my time and effort into making precisely that happen along with a number of others. We are not alone in making this come to fruition and I will be sure to give credit where due when we launch the new hardware. 

The end result will be significant, not only because of the final product itself, but because this effort is being undertaken in the spirit of leading cooperation among a pool of friendly competitors. We are focused on creating open, exciting and useful technology for the world, not just a business for ourselves. We believe that those who resonate with that viewpoint will support these efforts by adding their time, energy and finances to help it go further, faster. Some will do so because they need the results it brings (e.g. vertical integrators needing broad freedom to shape their own products), others simply because they think that this is what our world needs.

Regardless of motivation, it is significantly rewarding to be a part of something that brings people together so we can all go further. It is the sort of world I wish to find myself in, the sort of world that ought to be available to us all. :)

18 comments:

Felix Albrecht said...

This sounds truly awesome! Apart from being happy to hear about Vivaldy, I am quite exited to see the efforts of Plasma, Sailfish and Ubuntu combined!

Alejandro Nova said...

I'd wish to see what RIM's thinking about all of this. Writing an app and the same app for KDE Plasma, Jolla Sailfish, BlackBerry 10 and Ubuntu would be beyond awesome and could gain KDE some serious traction in the desktop world.

Alan Alpert said...

@Alejandro

If you looked at the linked mail thread, you'll see BB10 is involved in the discussions. Like the spirit of Aaron's blog post, this doesn't immediately mean compatibility but it does mean they have joined the conversation.

alessanderbotti said...

Really nice!!! After the unveiling of Ubuntu Phone and its use of QML, I was wondering about a possible cooperation between Ubuntu Phone and Plasma Active. I was thinking on how to ask about that... and this post is really great news :-)

I hope this cooperation (as well as the sourcecode of Ubuntu Phone) fosters the development of Kubuntu Active. I'm a Kubuntu user, having a bias for it instead of Mer. However, I can't wait to have a Vivaldi!

hoodedpirate said...

I can't agree more on this topic.

As a developer I want to make a little changes as possible when developing applications for multiple platofmrs. In fact, if the changes were very minor, it would allow other developers who might otherwise have no interest in various platforms just do it because if its simplicity. For example, I plan to develop applications for the Ubuntu Phone but if making that application work on Sailfish needsonly a few minor changes in code then I will do it.

My only curiousity is how can we get all these groups to side in a room and create a Mobile API Pac, guaranteeing that everyone will work together.

Jed said...

@alessanderbotti

Kubuntu isn't even the same category of OS/env as MeR, so I don't see how you could have a preference for one over the other.
They're not directly comparable....

Jed said...

subscribe.

alessanderbotti said...

@Jed

What I meant was that as I have a bias for Kubuntu, I would like to see Kubuntu Active doing fine on tablets (note that they are distinct OSes: Kubuntu is intended for desktops, while Kubuntu Active is for tablets). So, I was not relating Kubuntu and Mer, but Kubuntu Active and Mer. I don't have a preference for Kubuntu Active over Mer because I never used Mer, so I cannot compare them. I just have a "bias" for Kubuntu Active.

Maybe it was still not fair to relate Kubuntu Active and Mer... But if Kubuntu Active bases itself in the Ubuntu Phone source code, I think they would be in the same category of OS/env. As I see, Kubuntu Active is still far from seeing the light of day. My best wishes to Mer!

Jed said...

Plasma Active is good enough, alongside other MeR-based UX's, which PA (to some extent) is, we cant start spreading ourselves too thin so soon.

Jed said...

PA & KA are also not really comparable to what MeR is anyway.

alessanderbotti said...

Maybe I'm wrong, but I think that Plasma Active (PA) is a "version" of KDE Workspaces designed to work with touch-screen devices, such as smartphones and tablets. I think the default implementation of PA is on top of Mer, but that PA itself is independent from Mer, in order to be OS independent. The PA website says "Plasma Active runs on Mer"... So, is PA independent or not from Mer?

Concerning Mer, I don't know if it includes PA, or if it is just "powered by Qt/QML". I think what I'm calling "the default implementation of PA" is different from Mer, can someone clarify me on this? Also, is Mer a complete OS or just a "core"?

This is to say that I think PA is OS independent, while Kubuntu Active (KA) is obviously an OS with PA. Therefore, PA and KA would not be comparable, as one is OS independent and the other is an OS. Concerning KA and Mer, if Mer is a complete OS, they should be comparable, as both are intended for smartphones/tablets.

Jed said...

More direct comparo would be PA Vs Nemo or Sailfish.

Cheers.

Kolokotronis said...

Great great news! Loving the spirit of your post! Hope you guys can nail it!

Shmerl said...

Mer is a core distribution (meaning it has a minimal set of packages and is intended to be used as a building block, not as an end user product in a sense of human users). Therefore it's not exactly comparable to Kubuntu which is a full system.

Plasma Active can be core independent, and for example packaged within Kubuntu or any other distribution. But PA developers made a reference distribution which they use for development using Mer which has various advantages. So such distribution can be labeled Mer/Plasma Active. Since it's open source, others are free to bundle Plasma Active in other distributions (such as to make Debian PA, Kubuntu PA or what not).

Using Mer/PA one is using the closest to the original work of Plasma Active developers.

Jed said...

^yup, more-or-less...

alessanderbotti said...

@Shmerl, thanks for the explanations :-)

Ian Monroe said...

This is good to see. It's funny how Nokia wasn't able to achieve the last mile in API consistency within their own products, but Plasma Active, Ubuntu and Sail Fish might get there.

stefano leva said...

This sounds great and it would truely make Qt and all its possibilities the most important choice for developers aside Android and iOS.
Developers would have an easy way to create apps for all together BB10, ubuntu Phone, Jolla, Plasma Active and these platforms would benefit from a large selection of apps.
I personally believe BlackBerry can gain quicker a certain market share than the others but it would be great knowing that they are also involved in such a development along all guys from Canonical, Jolla and KDE.