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.
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.
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.
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.
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.
I mean if you could just leave out the front side door you could use those resources to improve enter-abilty through the back hatch.
This could also improve the loading and unloading of goods through the back hatch for more professional uses.
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
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.
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.
>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 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.
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.
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?
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]
[0] https://twitter.com/app4soft/status/1352349523549577219
[1] https://github.com/openvsp/openvsp
[3] https://github.com/rageworx/fl_imgtk
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.
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]
[0] https://github.com/Rangi42/tilemap-studio
[1] https://hax.iimarckus.org/topic/7691/
[2] https://twitter.com/app4soft/status/1430517079346749440
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).
I can think of a few reasons it fell out of favor in the 3D animated film space. Any process that required artists to come in after a render was complete is bad news for your budget. The more you can accomplish inside of your surfacing and lighting tools, the better.
For surface creation, artists in general would prefer to use tools that they are familiar with, and if your pipeline can support export from Photoshop, then that is they are going to want to use.
While there are still a lot of proprietary tools in use for lighting and rigging, the days of completely proprietary tool chains and pipelines are over. Software suites of no longer running on SGI boxes with a lot of proprietary formats. A lot of work has been done on interchange formats so it is easier to get your data in and out Maya, Photoshop, etc.
I think you mean something like “bespoke” or maybe just “cinema industry specific”; all your counterexamples to “proprietary tools” are, in fact, proprietary tools.
(this is why some people are very insistent on always using the full "FOSS")
Then a Scottish university donated a tarball of a research project to the Cinepaint project so then Robin had to maintain two completely different codebases, one which was presented as the successor of the first one.
Then Robin decided that the real problem was the antiquated autohell build system, so he decided that having waf, scons and cmake build systems was going to draw in developers. (The blogs announcing that aren't on cinepaint.org anymore, maybe the wayback machine still has them?)
That didn't work either, of course, and nothing much happened after that. Cinepaint.org became more and more vandalized, nobody put money in the project, and, well, seeing I'm the Krita maintainer, I probably should stop reminiscing, and go back to coding :-)