[Sugar-devel] Duplication of Effort: Don't do it.

Gary C Martin gary at garycmartin.com
Mon Jul 27 14:44:38 EDT 2009


On 27 Jul 2009, at 18:38, Benjamin M. Schwartz wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I have lately seen a lot of duplication of effort in Sugar.  I think  
> this
> is bad.  The success of Sugar demands discipline and careful  
> planning from
> its developers.
>
> In particular, I am arguing that supporting Qt or Webkit would be a
> terrible idea, and that neither should be permitted to be a  
> dependency of
> the Sugar platform.  However, my argument is certainly more general.
>
> 1. Bloat is bad.
>
> Efficiency is one of the main goals of Sugar.  Sugar was created to
> fulfill a vision of the original Hundred Dollar Laptop Project:
>
> "We will get the fat out of the system.  Today's laptops have become
> obese. Two-thirds of their software is used to manage the other third,
> which mostly does the same functions nine different ways." [1]
>
> It's true.  99.99% of all deployed computers running Sugar are  
> XO-1's, and
> will soon be XO-1.5's. These are strongly resource-constrained  
> machines,
> and they cannot tolerate inefficiency in the use of disk, CPU, or RAM.
> Outside of OLPC, we continue to target low-end hardware where  
> efficiency
> is key.
>
> If we allow Read to depend on Webkit, but Browse uses Gecko, then to  
> use
> them both, the operating system must load two entirely separate  
> rendering
> engines into memory.  On an XO-1 this may be impossible; it will  
> certainly
> lower the threshold for OOM behavior.  Similarly, loading both the  
> Qt and
> GTK libraries into memory at once dramatically increases memory  
> usage, and
> wastes valuable disk space.
>
> Don't do it.
>
> 2. Technological uniformity is an educational decision.
>
> Sugar, and its activities, are written using a uniform set of
> technologies, centered around pygtk.  This is deliberate.  The goal  
> is to
> crush the barrier to entry, so that a student who learns how to modify
> python activities immediately has enough knowledge to modify Sugar  
> itself.
> This is the incarnation of "low floor, no ceiling".  It is what  
> enables
> the culture of end-user engineering that we strive to create.
>
> Adding more supported technologies for writing Activities raises new
> barriers to entry.  A student who learns how to modify a Qt-based  
> activity
> does not gain knowledge that will help to modify Sugar itself.  A  
> user who
> has learned pygtk still does not have enough knowledge to modify one
> written in Qt.  We risk creating a Tower of Babel, with components  
> written
> in countless frameworks, all different.
>
> One argument made in favor of supporting Qt is to gain access to  
> existing
> KDE applications.  I don't believe this for a second.  Our entire  
> system
> is built with technologies drawn from the Gnome stack, and yet we have
> almost no Activities that consist of wrapped Gnome desktop  
> applications.
> The barriers to compatibility with KDE are considerably higher, and I
> cannot think of a single application from KDE-space whose  
> functionality we
> do not have, or could not get more easily from GTK-land.
>
> Another argument is that it will help to gain support from developers
> already familiar with Qt.  I think this is quite irrelevant.  When I
> started writing Sugar code, I had never seen a single line of gtk (I  
> was
> familiar with Swing).  I read the docs.  It was easy.  Anyone can  
> learn
> gtk, especially if they are already familiar with another toolkit.
>
> More importantly, there just aren't that many Qt developers.  I am  
> willing
> to accept an argument of this type for improving support for  
> activities
> written in javascript+HTML, because there are certainly orders of
> magnitude more developers of javascript and HTML than of python, or  
> any
> other language we might choose to support.  Qt and PyQt, on the other
> hand, are in a niche even smaller than pygtk's.
>
> The many costs of supporting Qt greatly exceed any theoretical value.
>
> Don't do it.

+1, thanks for elucidating this so well.

Regards,
--Gary



More information about the Sugar-devel mailing list