Re: Cheese Architecture Redesign



dear hernan,

cheese is now about a year old and we already had a rewrite of the
webcam class. you are right, that cheese got really complex in some
places (e.g. cheese-window or cheese-webcam) and in those places its
also quite hard to find bugs. youre also right that its not that easy to
have a good implementation written in c.

however, i dont think switching to another programming language would
fill the gap, also because of the following points:
      * gnome is almost entirely written in c. for sure, this isnt just
        because its c, but also because we have awesome libraries, which
        are also written in c. therefore you also get the newest
        functions and apis.
      * rewriting cheese in another language would be as removing cheese
        from gnome and then resubmitting it for 2.26, that doesnt sound
        really good
      * everybody has his favorite language, like python, mono, c,.. but
        at the end i think you get the most patches and people willing
        to contribute if you use a language, which most people can
        understand and are willing to use.
      * (optional) mono, novell, microsoft. a lot of people do not like
        this relationship
      * specific to mono: mono is object oriented, but i can say, that
        we get almost the same with gobject, which i like really more
        than the object oriented things in mono/java
      * compatibility: i dont know how mono and gstreamer and those
        other libraries work together.

you see, there are a lot of points where we could discuss and probably
never find a common agreement. 

so, as patrys already told you: you are entirely free to build your own
cheese with mono, but i want to propose something else:

we added many features to cheese without looking at code mainteneance
and therefore we are, where we right now are. i dont like some places of
the cheese code, and i really would like to rewrite it from scratch, to
have a clean design, which is extensible and gives us the possibility to
add features easily. it would be awesome to help us to accomplish this
goal and i think we all can be happy afterwards. what do you think?

daniel

by the way: jaap is developing a cheese clone in vala, you can find that
in the cheese svn under branches, but in my opinion a lot of the
arguments above apply here. a lot, because vala is just a frontend to c
and gobject.

On So, 2008-06-22 at 14:52 -0400, Hernan Gatta wrote:
> Hello,
> 
> Cheese has been evolving quite some recently and I've been looking at 
> the ideas that you would like to see implemented in the upcoming 
> releases in order to make Cheese even better. However, I have indeed 
> looked at the code and I am afraid to say that as with almost any 
> program coded in C, Cheese will exponentially grow in complexity as 
> features are added. I've tried to add some of the features and the 
> code-base is pretty complex to work with in terms of dynamically 
> managing the Gstreamer pipeline, for instance. I would like to propose a 
> new design based on Mono (.NET) that would allow a very simplistic (and 
> even cross-platform) core filled with easy-to-write extensions based on 
> the Mono.Addins framework (look at 
> http://www.mono-project.com/Mono.Addins). Applications like this one 
> exist already and are seeing a growth in usage like Tomboy Notes and 
> Banshee as well as the MonoDevelop IDE. I'd like to point out that the 
> user interface need not change, just the underlying code; although I 
> would like to see some sort of OpenGL-based GUI should the user's system 
> support it in order to bring more "bling" to the program (using things 
> like Clutter as a back-end - http://clutter-project.org/). I've started 
> some work on this myself already and I will continue to work on it. I 
> would like to hear your input on this idea and see what can be done 
> about it.
> 
> Thanks,
> 
> Hernan.
-- 
this mail was sent using 100% recycled electrons
================================================
daniel g. siegel <dgsiegel gmail com>
http://home.cs.tum.edu/~siegel
gnupg key id: 0x6EEC9E62
fingerprint: DE5B 1F64 9034 1FB6 E120 DE10 268D AFD5 6EEC 9E62
encrypted email preferred

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]