On Sun, Oct 21, 2012 at 01:26:56PM +0900, Charles Plessy wrote: > generalisation of application stores. How can we attract the creative people > who entered the field of software development and distribution on Android or > iOS ? > Worse, because of the fragmentation of the « Linux » landscape, if they want > to > distribute their work on « Linux », these developers need to learn how to do > so > on Debian, Ubuntu, Fedora, openSUSE, etc., or need to convince develpers to > package their work. And this still does not save them from learning complex > details, as for instance it is not obvious to determine how long it will take > for a package to migrate from Debian to Ubuntu.
I've said this at the AppInstaller meeting almost 2 years ago and I'm still convinced of it: the distribution fragmentation is the least of our concerns. The big concern is that we don't have a stable "Linux" API. If I invest targeting "Linux", I'm pointing at a moving target: I can't have a one-off investment to get up to speed with the platform and then make stuff on it: know-how gets obsolete rather quickly, so I not only need continuous investment for staying up to speed with the platform, but I need to hire the kind of people who cope well with a moving target. Those people cost more, are harder to find, and can probably be employed in a more productive way than handling transitions from gtk/qt version n to n+1, understanding new obscure gcc 4.x+1 compiler errors, handling new backtraces or deprecationwarnings when some python library upstream feels like being cool and agile and breaks API once again. And I'm only using reasonably stable ecosystems as examples here. We won't attract the people you're looking at, until we can actually come up with a standard, cross-distro toolchain that: - is actually useful to build games, UIs, whatever you want people to build; - provides an API[1] that is guaranteed not to change for at least, say, 3 years; - when it changes 3, 6, 9, ... years later, you can trust that it will change into another that's just as stable; - is actually widely adopted by the community. When that happens, then people can invest in writing books, can offer training courses, can get value off their know-how. TTBOMK, what we currently have that fits what I said above is this: - traditional C, plus libc (not sure about C99); - bourne shell, grep, awk, perl, and the stuff sysadmins tend to use (people who have large cluebats in their toolbox are surprisingly good at demanding a stable ecosystem); - HTML, Javascript and DOM inside web browsers. Python 2.7 and its standard library are not there yet, but should be once wheezy is out. Interestingly, python 2.7 is becoming a compelling stable development environment *precisely* because upstream decided to stop "improving" it. Note that the only way to offer a graphical UI with the stuff on that list, is inside a web browser. Power structures are interesting: sysadmins have power over sh, grep and awk interfaces: if upstreams tries to "improve" those in an incompatible way, they deserve die a horrible death. The opposite is true with UI toolkits: any new iteration of the libraries is an awesome effort of awesome developers who are right and just, and if you don't understand it and don't adopt it immediately, you deserve to die a horrible death. I believe this is a topic with lots to talk about, very little in the realm of easy solutions, and quickly diverging from the initial aim of the thread. [1] I care less about ABIs, but you may need that too if you want to support proprietary software Ciao, Enrico -- GPG key: 4096R/E7AD5568 2009-05-08 Enrico Zini <enr...@enricozini.org>
signature.asc
Description: Digital signature