Proposing a New App Developer Upload Process
Scott Kitterman
ubuntu at kitterman.com
Thu Sep 6 21:02:36 UTC 2012
On Thursday, September 06, 2012 09:36:05 PM Matthew Paul Thomas wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Scott Kitterman wrote on 06/09/12 14:22:
> > Matthew Paul Thomas <mpt at canonical.com> wrote:
> >
> > ...
> >
> >> Scott Kitterman wrote on 05/09/12 18:54:
> > ...
> >
> >>> - In this brave new world, what is the definition of "Ubuntu
> >>> itself"? If the application developers are unshackled then it
> >>> must be some subset of what we consider Ubuntu to be today.
> >>
> >> The shell and everything that makes it work (down to the kernel
> >> and init system), the toolchain, official developer APIs and the
> >> software that implements them, and whichever apps are installed
> >> by default.
> >
> > ...
> >
> > I suspect not everyone shares your definition of what Ubuntu
> > is/will be. Even the I favor a more traditional scope myself, I'm
> > very surprised you didn't include the desktop environment (e.g.
> > Unity, Plasma, etc.).
>
> That's what I meant by "the shell".
Yes. Someone else pointed that out already.
> > I think it's critical that there be some shared vision of where we
> > are going and even though there won't be resources to do
> > everything at once, a broad outline of the chunks of work needed to
> > get there.
> >
> > To pick just one example, rolling delivery of applications and
> > offering multiple versions of the same package (which is what the
> > BSD Unixes do, although not in a way I've personally found at all
> > satisfying as a user) implies huge changes in package management.
> > Not the least of which is the ability to support downgrades,
> > including migrating per user settings back to previous versions.
>
> Windows, OS X, iOS, and Android all let an author issue a new or
> updated application within a week or so of wanting to, which I guess
> is what you mean by "rolling delivery". This whole discussion is
> predicated on that being a requirement for a mass-market OS.
On iOS and Android there's rather more extreme sandboxing than is being
proposed here that make potential interactions between applications less of an
issue. The term DLL hell was invented for Windows. I don't think it's at all
obvious that replicating the existing systems is a path to success.
There is an assumption here that there's a vast user base that awaits if only
it weren't so hard to run the latest versions of things. While there are
certainly many such people in the geek community, the vast majority of non-
technical end users neither know nor care about what version of anything they
are running. The class of users that will tell their friends "I just bought
Facebook" to mean the bought a computer isn't interested in such things. To
give a specific example, it was only about 5 years ago I got my father off of
Office 95 and that took pressure. He saw no reason to change something that was
doing what he needed.
If Ubuntu wants to hit the mass market, it needs to find ways to be better, not
ways to be the same, but cheaper. Personally, while I know that application
developers get grumpy about it, I think that the stable model with periodic
upgrades if desired is something most users would like better than what they
experience with other O/S's. It's still good to find ways to make the flow of
fixing actual bugs work better, but I don't think there's a huge market for
getting every single application update and working through new sets of
issues.
> None of those OSes offer application downgrades (though individual
> applications might). None of them migrate user settings to previous
> versions. ("The file “iTunes Library” cannot be read because it was
> created by a newer version of iTunes. Would you like to download
> iTunes now?") And absent that settings problem, OS X is the only one
> that makes multiple application versions moderately easy ("portable
> apps" on Windows being the exception rather than the rule). That tells
> me that while they might be desirable, none of those three things is a
> requirement for a mass-market OS.
It is also quite normal for things to get screwed up on other operating
systems and people do a full reinstall to fix it. One of the fundamental
design principles behind package management in Debian and by extension Ubuntu
is that once installed, systems can just be upgraded. Reinstalls should not
be needed. I think this is an important feature that should not be lightly
abandoned. I think the implication of that is you've got to find a way to
support downgrades. I think it's feasible, perhaps using something like
etckeeper, but it would take work.
Allowing areas where we beat the proprietary competition in quality/
capability to degrade to their level is not a recipe for success.
> > It doesn't give the user much to give them the ability to choose
> > when to upgrade a package if you don't also give them the ability
> > to change there mind if the experience is poor with the new
> > version.
> >
> > ...
>
> Even if that's a problem worth solving, that doesn't necessarily mean
> it's best solved at the same time as the app developer upload problem,
> or that it even affects the solution for that problem. If you think
> either is true, perhaps you could explain why, and describe how the
> solutions might coexist.
The app developer story is only one small part of a larger story. Without
having some understanding of the broader visions, it's hard to know what's
suitable and what's not. While I think the proposed changes, modulo resolving
the file conflict issue, are largely suitable to the goals that are proposed for
them, that doesn't follow that this is a step towards delivering all
application this way.
The current ARB process and this new proposal are focused on a specific class
of applications that make use of some specific restricted features of the
operating system. The current proposal is geared towards that. If the real
goal though, is to deliver all applications this way, I think this proposal is
not very useful because I don't think it's extensible in the ways it would
need to be to grow into that.
So if the goal is the class of applications that the ARB has been focused on
so far, it's a decent proposal that with a little work is probably worth
doing. If the goal is ALL (or almost all) applications, then that's a very
different story. I think it's probably a dead end path.
That's why I believe it's important to have the larger picture in mind and
some consensus around it before plunging in to implementing bits of it that
may or may not prove to be useful to the actual long term goal.
Scott K
More information about the ubuntu-devel
mailing list