The inability of the GIMP developers to work with others to incorporate needed features was the primary reason.
Look at the difference between how different open-source projects operate. Some foster collaboration and encourage outside contributions, e.g. Linux. Others are completely insular and barely tolerate it. The GIMP maintainers fall into the latter category. Unless you're part of the inner clique, you won't get anything merged.
It's kind of sad that the Cinepaint people got several paid staff to lift the GIMP functionality to the point it had very high-profile commercial use with some really useful features, and yet the GIMP developers were too stubborn to acknowledge this effort and work with them to get the functionality into the GIMP core.
Sadly, this is not unique to the GIMP. I, and other commercial developers, had exactly the same experience with GTK+ and GNOME libraries. The developers wanted to hack on their pet thing, ignore outside contributions, and this is simply not compatible with commercial timelines and realities. But it can be, and it can work very well, for projects which are willing to engage with outside work. It can work out to be very mutually beneficial with some give and take on both sides. I was on the GIMP mailing lists at the time and followed this saga for years. It's a crying shame it was deliberately ignored.
That inability doesn't only show in not implementing features but also in the way functions are implemented - A good example is the forced save to xcf introduced in 2.8. Apparently it is more professional. Anyway there is a patch for that by vitalif. You can find prebuild packages here: http://vmx.yourcmc.ru/var/debian/unstable/
It will fix most problems by removing the save/export filetype restriction and disabling some forced warnings.
Another thing I found recently when trying to use GIMP for a simple task was that GIMP is "not a drawing program". You have no good way to handle simple vector shapes and lines. There are some semi-functional workarounds using selections or the drawing tool or even a filter (render/gfig). These all have various downsides in that they cannot be easily adjusted once applied to an image.
There is no good reason for simple shape vector editing not being in GIMP since you need some vector functions for say Font rendering. Similar Apps I cannot use in Linux (wine is not an option thanks to DRM) have had functions like that since the early 90ies.
Absolutely. For my workflow, the XCF requirement and the need to manually export were completely wrong. In the 23 years I've used it, I've never once needed the XCF file format. I acknowledge that others will need it, but I don't, and the change to the workflow made it significantly less usable for me.
This again comes back to the project management and project goals. There is very clearly a desired workflow and feature set that users are expected to use, and deviations from this workflow are not desired or well supported, and accommodations for non-standard workflows are not well received.
As a minor developer of open-source software, I've always been surprised at the diverse range of uses people have attempted with my software. Often things I'd never considered. In most cases, I tried to accommodate these uses so long as they could fit within the application design, and occasionally with some refactoring to fit them in. Because in most cases this was of net benefit to the application, widening its appeal and usability, and driving cleanup of the architecture to make it more flexible and more amenable to extension.
The unwillingness of the GIMP developers to support fairly basic vector and path operations speaks volumes. There's clearly a demand for it. They would be self-contained and not have any major impact upon the wider application. And yet, they have been repeatedly rejected. If I was the maintainer, I'd have considered and allowed their addition. But it seems that the GIMP developers do not want to expand the remit of their application, even if it would be of net benefit.
Please don't blame open source volunteers for not having the right skillset or for not having enough time to address every concern or merge every patch that comes their way. Everyone's got their strengths and weaknesses. I'm sure the GIMP developers would love to make a program that is really good at everything, but reality has a way of making that difficult. If you've got some spare time and can help with reviewing and merging and maintaining patches, maybe you can talk to them and work something out? Remember that any patch that gets merged has to be maintained for several years, so maybe you can see their reluctance there.
I'm well aware of the constraints of open source development and project management, having been involved in it for nearly 25 years at this point. In the case of this project, I was involved with it for several years as a maintainer of the Print plugin, if you care to read some of my other posts about the history.
You're wrong about the GIMP developers wanting a program that is "really good at everything". If that was the case, then they wouldn't have deliberately rejected so many proposals for improving workflows and adding features over the years. Film-GIMP is the most high-profile example, but there are dozens more. This is nothing to do with not having enough time. It's a deliberate design choice, which is theirs to make. They chose not to foster a community of contributors around the project. And they chose not to implement many of the most basic features their user base asked for. Again, their choice.
As for "talking to them and working something out", that hasn't happened in the entire history of the project. What is missing here isn't a lack of time or a lack of technical skill. It's a lack of effective project management, a lack of direction, and an inability to delegate.
I think your characterization isn't exactly correct, they've declined to implement some features, but they've also implemented a lot of other ones.
>What is missing here isn't a lack of time or a lack of technical skill. It's a lack of effective project management, a lack of direction, and an inability to delegate.
Please don't do this, this is splitting hairs. Some people don't have the project management skills to do that. I've read your other posts, if you have the project management skills, then you'd be a great candidate to step in and do that. If you don't, then this still isn't helping the problem. The productive thing to do would be to find a capable project manager.
I'm not sure I see the problem: 'Export', and 'Export as' works as 'Save' and 'Save as'. This i like 'Export to PDF' in a word processor. If you never save in GIMP, I suppose you don't use layers?
The problem is that for those of us that used it since the beginning (1997 in my case), it's a change which broke the workflow which worked for 15 years for zero benefit for any user, old or new. I still get it wrong every time a decade on. The keyboard shortcuts are awkward, and it's all around a bad choice for usability. It has no actual benefit. Its only purpose is for the developers to force you to use XCF in a not-very-subtle manner.
I do use layers sometimes. But all of my input and output images are PNG, TIFF or JPEG and I have no use for the intermediate state. XCF is a non-standard application-specific format which has no use other than with the GIMP. It has its place, but the assumption that it is the central part of the workflow of end users is simply incorrect. It wouldn't have caused so many complaints if it was the case.
The whole ecosystem around gtk is extremely insular, the devs are hostile and think the users idiots for not doing things the right way.
Compare to the qt krita and you see the difference. It's a paint program, but it already works better for most photo manipulation tasks. Give it another few years of development and gimp will only be used in scripting pipelines.
About save/export debacle, someone made a plugin which makes saving to non-xcf easier [0] - big thank you to them. It allowed me to still use Gimp when I had to manually edit 100s of PNGs.
It is incredibly frustrating to see good software (I love Gimp otherwise) tarnished with such rookie mistakes/decisions.
GIMP is approaching great in so many areas - its like finding a turd was added on purpose to a great meal - you would get more upset about that than if you learned the same about a pile of dirt.
Because I'm not exporting but saving, and it doesn't work the same way as Ctrl+S should. If I have opened a file and changed it, I expect Ctrl+S(/E) to override it. What I do not want it to select a file or answer dialogs, asking me if I really want that. And when I close the app I don't want to confirm that I really don't care about xcf and yes, I want my changes "lost". And I especially don't want to lose my changes because I thought that I have pressed (Shift?)+Ctrl+E and that this warning can be disregarded.
I might be wrong in some details because it's been a long time since I last used Gimp without this plugin, but the whole process is so brain-dead that it is incomprehensible how anyone could defend it. I am guessing that if one of the core developers had to manually edit 100 PNGs they would revert their position in a blink of an eye. /rant
My first patch to an open-source project ever was to GIMP, as a 16-year-old with zero OSS experience. I actually didn't have much problems getting it merged, so I don't think it was as insular as you make it out. :-) But it wasn't a huge rearchitecting, like 16-bit support is.
Part of the problem as I saw it is that GIMP felt into a second-system effect, where they would do things “right” using GEGL instead of taking back the Film GIMP patches, and GEGL took literally 15 years before it worked reasonably well.
Hi Steinar (long time, no see)! You are right that there are very big differences in scope with large features vs small bugfixes.
I was one of the GIMP "Print" plugin maintainers for several years. It ended up being split off as a separate project, turned into a shared library, renamed to Gutenprint, and became the highest quality set of printer drivers on Linux, particularly for photographic printing, due to the use of speciality dithering algorithms (Raph Levien's EvenTone), custom dithering matrices and hand-tuned support for mixing light and dark inks with variable drop sizes, CUPS support, and eventually became the default MacOS X printer drivers in the early years of MacOS X. It went from a tiny plugin as part of a niche application, to being the default means of printing on all Linux and MacOS X systems. I would argue it is many times more successful than the GIMP application, despite being less recognisable to end users, it is nevertheless there under the hood quietly turning rasterised page input into individual ink droplets on pages (or toner on lasers). It far surpassed the quality of most/all commercial RIPs and vendor drivers at the time, and maybe still does.
This occurred because the lead developer of this sub-project was willing to delegate responsibilities and collaborate with others. For example, as a young-but-keen amateur, I single-handedly converted it to build as a shared library, moved the build to use Autoconf/Automake/Libtool (this was 2001, today I'd have used CMake), and this enabled it to be used directly within the GIMP as the Print plugin, or as a CUPS driver, or as an IJS (InkJet Server) driver. That willingness to consider and accept contributions from others made this project an outstanding success. I wasn't the only one either, the project benefitted from the expert contributions from many people with a diverse range of interests and skills, with a good project manager to oversee it all (Robert Krawitz).
In my humble opinion, that is what separates the projects. In order to grow both the developer base and the user base, you need effective project management. And managers need to be able to step back and delegate.
The GIMP developers have never really been able to do this. They have to write every line themselves. This is why its development has basically been stagnant for over 15 years, because they had to do GEGL themselves, even though there's only one part timer on it. Having it all written in C doesn't help. Graphics does lend itself to higher level abstractions which they can't use. I'd consider GEGL a wasted effort myself; it was obsoleted by GPU compute before it was even part way complete.
Yes, I remember all the traffic about gimp-print on the mailing lists :-) It was never really the core of my interests, and eventually, I moved to other things. Probably everything you say is right, but also, image processing is sort of a niche topic, so it's hard to attract people in the first place.
> The inability of the GIMP developers to work with others to incorporate needed features was the primary reason.
I don't know. I felt like Adobe and other companies saw the market and wanted to win it. It's easier to grab marketshare when you can hire lots of developers to implement all the features your customers are asking.
When Cinepaint announced that were moving off GTK+ and onto FLTK probably just accelerated the end of Cinepaint.
I haven't seen an FLTK app in years. Does FLTK still look like it came from the 1990's/early 2000's, or did they upgrade the widgets to make them look more modern?
I don't think it's worth comparing it with Adobe, since the developers have never really competed with it. It's its own thing, and the decisions and development roadmap stand on their own.
Cinepaint got stuck as the fork diverged increasingly from the mainline code. They ended up on with a branch of GIMP 1.0.x using GTK+ 1.x, and the porting effort to bring it up-to-date with the GIMP mainline and GTK+ 2.x was insurmountable. I wasn't aware of the switch to FLTK, but last I looked FLTK was indeed primitive and dated. But very functional.
The Cinepaint developers had very specific commercial priorities, somewhat at odds with the GIMP developers, and if porting to FLTK got them a working product to satisfy their needs, I can certainly see that being a reasonable choice. If anything, it really makes a point toward the maintainability of C GTK+ applications (many of us have been there; I ported over to C++/Qt myself).
FLTK still widely used in various scientific apps.
> Does FLTK still look like it came from the 1990's/early 2000's, or did they upgrade the widgets to make them look more modern?
Probably the same. For example, here is screenshot[0] of the OpenVSP[1] - an actively maintained parametric 3D CAD app by NASA.[2]
But also there is `fl_imgtk` — a small library for FLTK image toolkit, designed to use some useful effects in FLTK GUI (better image, better speed, better quality).[3]
Yet another thing is `fltk-rs`[4] - Rust binding to FLTK, with custom theming module.[5]
It has improved a bit from what I can see, but I wouldn't say it's "modern".
Interesting. It still appears to have the issue with text flow I ran into years ago where text would overlap with the button outline, rather than increasing the button outline to accommodate the text.
That was the one thing I didn't like about it. It made the GUI's look kinda unprofessional.
> It still appears to have the issue with text flow I ran into years ago where text would overlap with the button outline, rather than increasing the button outline to accommodate the text.
OpenVSP probably uses 'vanilla' FLTK, but there is no such issue on screenshots of Rangi's Tilemap Studio[0,1], where custom FLTK widget themes used.
> That was the one thing I didn't like about it. It made the GUI's look kinda unprofessional.
JFTR, Take a look on AzPainter[2] and its toolkit on top of X11.[3,4]
> Some foster collaboration and encourage outside contributions, e.g. Linux. Others are completely insular and barely tolerate it. The GIMP maintainers fall into the latter category. Unless you're part of the inner clique, you won't get anything merged.
I can't speak to this, as I don't contribute to them. However, for all the criticisms of Gimp and its development team, for photoediting no open source SW comes close to the power of Gimp.
Look at the difference between how different open-source projects operate. Some foster collaboration and encourage outside contributions, e.g. Linux. Others are completely insular and barely tolerate it. The GIMP maintainers fall into the latter category. Unless you're part of the inner clique, you won't get anything merged.
It's kind of sad that the Cinepaint people got several paid staff to lift the GIMP functionality to the point it had very high-profile commercial use with some really useful features, and yet the GIMP developers were too stubborn to acknowledge this effort and work with them to get the functionality into the GIMP core.
Sadly, this is not unique to the GIMP. I, and other commercial developers, had exactly the same experience with GTK+ and GNOME libraries. The developers wanted to hack on their pet thing, ignore outside contributions, and this is simply not compatible with commercial timelines and realities. But it can be, and it can work very well, for projects which are willing to engage with outside work. It can work out to be very mutually beneficial with some give and take on both sides. I was on the GIMP mailing lists at the time and followed this saga for years. It's a crying shame it was deliberately ignored.