Re: Eog port



Hi,

I had in mind to reply this but then I forgot.

On Thu, Oct 13, 2011 at 02:27:39PM +0200, Felix Riemann wrote:
> > 
> > So what to do if patching a C program is too hard?
> > Port it to an easier language of course!
> 
> Uh oh...

Indeed, uh oh :)

> 
> > My language of choice was vala and my estimated time for the port was a
> > week. Once again I underestimated the effort necessary. But anyway I
> > finally have something to show! The vala port runs and most of the
> > classes are ported.
> 
> Wow! Uh...
> 
> Okay, this is the part where we get a problem. While Vala might be your
> language of choice it's not mine(@Claudio:ours?) yet. So it is going to
> be hard for me to review your work and improve on it after merging.

Indeed, I am not a fan of Vala at all, but that's not very relevant to
the discussion. What I don't think is a good idea at all, is to start
rewriting software without first discussing it with the people behind
it, because even when the intention is probably good, the direction
might not be the best.

> 
> And currently I'm actually already having problems building your branch,
> probably because my Vala/Glib/Gtk toolchain is newer.
> 
> > Next step for me is to figure out how to go forward with the vala port.
> > How are you thinking about such an effort? Will it add value to the eog
> > application or will it be a hindrance due to the inevitable regressions?
> > Of course I could have released early on in my development, but I was
> > not sure if I would ever finish the port so I didn't want to add noise
> > to the mailing list with something that might fail.
> 
> Contacting the maintainers early on is a good idea for large changes
> like yours. Imagine someone else had the same idea as you. Nobody would
> be angry if you wouldn't succeeded then, someone else could still pick
> it up where you left it and finish it. And I doubt that your mails would
> have counted as noise on eog's mailing list. ;)
> 
> Okay, back to Vala. Although I wrote above that I am not into Vala yet,
> I had the idea that several classes of eog could in fact be converted to
> Vala (there's a few utility classes and some smaller GUI classes) to
> make them a bit easier to work with. Even if we won't move to Vala
> completely we might be able to take some of your work.
> So, there are a few questions I have about this:
> 
> Is it really necessary to port eog completely to be able to use Vala
> with it? From what I know at least eog's public API should be already
> available to Vala through GObject-Introspection.

This is my take on this. Right now, or at any point in time, the last
thing eog needs is to be rewritten to another language because it
seems to be simpler. I've seen such energetic efforts before in the
past and usually they are motivated by inexperience. It is probably
because of that inexperience that rewritting a 10-years old project
from scratch might seem simpler than to learn partially its codebase
and submit a patch. This can only lead to frustration once you realize
it's not that simple.

But with this, I don't mean to say that eog is all fine and there's
nothing major to do. I think it is fair to say that eog has aged well
within the desktop, but once again, it's starting to feel a bit
retro. GNOME probably needs an image viewer that's more modern and
that provides a user experience closer to the shell's. We should
probably start talking with the GNOME designers and try to find how
such an image viewer would look and feel and lead our efforts in such
direction.

Only *then*, it might make sense to rewrite big parts of the code and,
considering that such effort is likely to be focused in the UI side,
it would be fair to say that a higher level language would make
prototyping and final development quicker. Vala or JS, for instance,
would serve this purpose well.

But rewriting anything before thinking exactly what's that the GNOME
image viewer should be, would probably be a waste of effort.

>  I'm asking because I'm not sure if it is a good idea for some
> classes to be ported. Mostly because of their age and complexity
> (EogWindow and EogImage come to my mind).  How do you debug
> Vala-generated classe? I guess you'll debug the generated C code,
> which is not that readable.  How is the connectivity to external
> libraries (libexif, exempi,...)?  Does every library need to be made
> Vala-compatible? If yes, this wouldn't be so great. 

EogImage, the data readers, the job queue, and other internal parts of
eog should probably stay as they are. Felix is right in their
complexity. Having an eog-core written in C and doing the UI with a
higher-level language (a la shell), would probably make sense.

Claudio


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