LWN.net Logo

Sobotka: Why GIMP is inadequate

Sobotka: Why GIMP is inadequate

Posted Jan 11, 2011 17:53 UTC (Tue) by tao (subscriber, #17563)
In reply to: Sobotka: Why GIMP is inadequate by boudewijn
Parent article: Sobotka: Why GIMP is inadequate

Personally I think that at least two of the points you bring up as being detrimental to contribution are things that make contributions *easier*:

* A strict coding style is the only sensible way forward in any serious project; I may not always agree with the coding style in the projects I contribute to (GNU coding style *shudder*), but I rather have one single style than having total chaos because everyone uses their own style. If you have trouble with the coding style, indent can *probably* help you.

* Being implemented in C makes the code a lot easier to understand -- to me C is pretty much a pre-requisite for me to contribute to a project. C++ is usually a big turnoff (a restrictive use of C++ that some Qt-based software I've seen adhere to is fine by me, but sadly most C++ projects are totally impossible to understand without reading large parts of the code base)


(Log in to post comments)

Sobotka: Why GIMP is inadequate

Posted Jan 11, 2011 18:07 UTC (Tue) by robert_s (subscriber, #42402) [Link]

"Being implemented in C makes the code a lot easier to understand"

I always find this attitude mind-boggling. I found writing large complex applications in C with C-APIs (gtk) to be crippling. You obviously like staring at long verbose pages of G_OBSCURE_MACRO_HACKs and t_obscure_pointer_type*s.

I found C++ and Qt to be incredibly freeing in comparison. I also found it so much harder to make mistakes.

Sobotka: Why GIMP is inadequate

Posted Jan 11, 2011 19:22 UTC (Tue) by theICEBear (subscriber, #23193) [Link]

I am right there with you. For me C completely breaks down when working on large codebases even with a rigorous coding standard. I prefer C++ for those (if I mandate the use of a higher level language like Python or Ruby which I usually can't).

We're current dipping our toes in the water with regards to C++1x or C++0x using the latest GCC and Visual Studio compilers on a new project. It is quite lovely especially lambdas and auto. I heartily recommend it.

I have had two developers who were dead set against using anything but the simplest of classes and who wanted the complete banning of templates in our coding standards come up to me and profess that the new project even if it uses more templates and even lambdas is just wonderful to code and read. I personally only have one doubt about auto's and that is that they can make some code a bit obscure to read if overused especially to capture return parameters.

Sobotka: Why GIMP is inadequate

Posted Jan 12, 2011 10:31 UTC (Wed) by dgm (subscriber, #49227) [Link]

> I found writing large complex applications in C with C-APIs (gtk) to be crippling.

Yes, C++ is much terse. But that's because there's so much implicitly going on. C has simpler constructs, so what looks like an operator *is* actually an operator and nothing else. That makes the casual contributor life so much easier.

Agreed, C++ makes it possible to write _new_ code that's easy on the eyes, but it's complex for newcomers. Specially in large codebases. There's so much you need to perfectly understand before you can grasp a nontrivial hunk of C++ code.

Also, C++ is so full of subtleties that you can miss when reading code...

My experience is that C++ is wonderful if you are the only one, or an small team, or have very good documentation of the class hierarchy and how *everything* fits together.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds