Re: Cheese Architecture Redesign



hi!

we dont hate you ;) criticism is always good especially in the free
software world. an i want to tell you again, that most parts of cheese
are extremely hard to extend. we should do something against that.

but in my opinion just switching to another language would not do the
trick. regardless if you propose mono, python, c++ or whatever object
oriented language, you will have to agree with me, that bad design is
also possible there. 

my biggest concern about a new language is, appart from the fact that we
would have to learn that language, that most gnome developers know c
quite well. that means, that there are many people who can write
patches, who can do testcases and enhance cheese furthermore. if we
would change to mono for example, how many people still can help us?
less then now, and i dont like this fact. beneath that, there are also
the other things i explained to you in the mail before.

gobject in my opinion gives me exactly what i need. i wouldnt use those
super complex OO things anyway ;)

i want to reply to the other mail too, to talk about the general
implementation design, we should hang too.

thanks for beeing honestly and about talking with us about this topic!

daniel



On Do, 2008-07-03 at 00:30 -0400, Hernán Gatta wrote:
> Hello Daniel:
> 
> First of all, C is a great programming language. However, C is a very
> low-level interface to the computer. It was never designed for object
> inheritance nor for dynamic library loading at runtime through
> reflection mechanisms. GObject is no more and no less than a "trick"
> to make C more object oriented, but it does not make it so, hence all
> the inheritance complexities still remain. Moreover, it is completely
> fair to say that object-oriented languages and reflection go hand in
> hand and that C libraries are not designed to support such reflection
> system. This makes Add-In development a lot harder since one must
> define one's own system instead of using anything readily and broadly
> available (such as Mono.Addins).
> 
> Now, .NET and C libraries are not point-to-point compatible, meaning
> that one cannot include a header and use it. One must create wrappers
> around the C libraries or write a more specialized library in C that
> does the most useful work and then that code is called by .NET. These
> are architectural decisions .NET developers are used to making (and
> this is not at all just like writing in C).
> 
> Also, I do not understand why people neglect a whole technology, in
> this case being Mono, because there are legalities that have appeared
> over time. .NET is an ECMA standard that anyone anywhere anytime is
> free to implement. The Novell-Microsoft issue does not concern Mono,
> but rather Microsoft patents being "violated" by Linux. I ought to
> point out that if we all just stick to C because everybody knows it,
> then technology doesn't move any forward. Why develop more powerful
> systems like Java and Mono if people already know C and nobody is
> willing to even look at another system that may make application
> development easier, simpler, faster and less error-prone?
> 
> I agree that we can disagree on loads of things. My only point here
> is: I've tried to help you by implementing the ideas in the FAQ, but
> if I do that in the current state of the program, an year from now,
> you'll have to re-write it again because the present design is not
> thought for such features to be added.
> 
> Cheers,
> 
> Hernan.
> 
> P.S.: I'm not willing to bring your project down and I also understand
> how much you might hate having other people telling you that they do
> not like the way your code has been written. I would hate if other
> people did that to me. Nonetheless, at the end of the day, it's
> constructive criticism that allows for a brighter future.
> 
> On Sun, Jun 29, 2008 at 11:37 AM, daniel g. siegel
> <dgsiegel gmail com> wrote:
>         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
> 
> 
> 
> -- 
> Hernán A. Gatta
-- 
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]