On 03/27/2011 11:36 AM, Martin Nordholts wrote:
> 2011/3/27 Kevin Cozens<ke...@ve3syb.ca>:
>> LightningIsMyName wrote:
>>> *** Optional topic: Re-Discussing GIMP's programming language ***
>>> Some developers that weren't present in the last meeting, highly
>>> disagree on the attempt to introduce vala into gimp, claiming that it
>>> will scare off developers (more than the "simple" C GObject code).
>> Before talking about which new programming language is needed(?) in GIMP we
>> should make sure the problem is clearly defined as to *why* we need
>> something new. What problem is the new language going to solve?
>> IIRC, it had something to do with creation of GUI stuff (such as dialog
>> boxes?). If that is the case, the language should be irrelavant. There are
>> other tools that can be used to more easily make a GUI. One that comes to
>> mind is a tool like Glade that can generate a file that can be used with
>> with a library (GtkBuilder?) to show the contents of the file.
>> I may be completely off base here because I haven't heard a clear definition
>> of the problem.
As I already mentioned before. I am very much against the introduction
of another language into the GIMP core.
> The problem with using C for everything is that we have to spend time
> on managing boilerplate GObject C code, like manually initialize
> vtables for example. We could spend this time doing things that
> benefits our users instead.
So when you write code, how much time do you spend writing the
boilerplate? 10%? I would say it's much much less, because writing
the code is a small fraction of the time actually spent on the code,
the rest is debugging, refactoring, reading and reading it over
and over again. The percentage of writing the actual boilerplate
rapidly drops to a few percent.
And what are "things that benefit our users" we could do instead?
Thats a complete non-statement. Programming a complex thing
like GIMP is hard, no matter how supposedly "easy" you make
the programming language.
The "problem" is not the programming language, or GObject, it's
simply the complexity of GIMP's object system, and that complexity
is unfortunately unavoidable, and is not going to decrease by
adding another layer to it. And programming in general is *hard*
to do right, and whoever is not capable of doing it should rather
stay away from it. Yes, there is an entry barrier due to GObject,
but as our experience with the last few years of GSoC, and various
new contributors has shown, that was never the problem. They all
end up writing more-or-less proper GObject code. The problem in
their code is simply the lack of understanding for GIMP's object
system, and that lack is *completely*normal* and natural given
how complex GIMP is. They all get better if they stick with the
project, which is also completely normal.
I often hear how well the GIMP source is structured, and people
point others to GIMP as an example of properly done code. That's
a reputation which is not going to improve by adding another
As to the actual iussue of introducing whatever *additional*
language in GIMP, I strongly doubt that it would help us in
any way. It would increase the complexity of both building and
programming because there would be two languages to learn,
it would complicate the build system (new contributors
would also have to learn to deal with autofoo makefiles dealing
with both C and vala code). It would increase the barrier of
getting new contributors into the project, not lower it.
> When I get time, I will port GimpTag to Vala so we can see how the
> introduction of Vala affects our codebase, autotools etc. If we bump
> into a lot of problems, we can drop the idea of using Vala in GIMP,
> but if it turns out we can become more productive by using Vala, we
> should start using Vala more.
Yes we should get more productive, but adding a new language should
acheive that? We should rather work on our public interface, which
is the web page, the wiki, the devel web page. All that stuff is not
really active. If we have a hard time finding people who are willing
to do this (and a lot of people are capable of doing web stuff), how
is increasing the complexity of the GIMP core going to help us in
Introducing development tools like automated tests, or the build
system you set up (did I say thanks for that already?) does indeed
help a lot. Adding another language to the core in an attack of
Gimp-developer mailing list