Darktable: Crashing into the wall in slow-motion
ansel.photos
ansel.photos
Ansel.photos:
https://news.ycombinator.com/item?id=38390914
from two days ago.
Usually the best place for follow-up links is in the comments of the original thread. Once enough time has gone by to flush the hivemind caches, then the other article can be posted in its own right.
Past explanations here if anyone wants more: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
also https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...
Sitting on the other of the table (professional developer turned professional photographer) I wish someone like Blackmagic would disrupt the big players (Capture One and Photoshop in the stills space) because Resolve looks (and is!) so much more sophisticated with a much healthier attitude towards its users/customers.
At that point I decided, enough is enough. Darktable is painfully slow, it takes over 1s to see the result of very basic brightness adjustments, the interface is laggy (OP mentions that as well, a simple mouse hover issues over a dozen of SQL requests)…
So for now I’m paying for Lightroom mobile. It is lightning fast, has AI masks, comes with 100GiB of cloud storage and works on any decent tablet or phone. I enjoyed Darktable’s instruments, and I like how my images ended up looking. But when even very basic features do not work, the advanced ones become less relevant.
I tried Ansel, and unfortunately, although, it fixes some of the issues, it doesn’t fix all of them (and some are absolute productivity killers). And at that point I wonder, why didn’t OP fork some earlier version, like 3.6, without that MIDI revolution and all the regressions. Later in his post, the OP mentions, that dtvk is the future. So why don’t invest the effort there instead? I’m no stranger to donating to open-source projects, but I don’t feel like investing any time or money into something, that has no future (even the OP admits that).
Problem for me is that I like DxO way more than Lightroom…
I’d be happy to use Capture One, but it’s only for Win/Mac, and my PC has been strictly Linux for the last 15 years (and I don’t want to deal with another OS just for one application, at least the tablet I use for other purposes).
But even with the tablet there are limitation. I’d gladly use Android, but Affinity is only available for iPad OS, and Lightroom mobile doesn’t yet offer all the needed features (bracketing/stacking for example).
https://github.com/hanatos/vkdt/
A vulkan-powered image processing software. The OP mentions it in his post
What did you think of the performance issues mentioned in the post?
When I worked at a big music software company, I also valued the strong opinions that kept the UI simple. Because the software was already so packed with functionality that it would overwhelm users easily if it would be exposed too openly.
The funny thing is, in my personal experience, Darktable defaults and configurability have actually markedly improved in the last few years. Usability even more so.
Frankly the worst instance of bad defaults and parameters were in the author's own filmic module, which were truly terrible in the beginning. They improved after a few years/versions, but it's still quite the hypocrisy to then complain about this very fact in the rest of the software.
ansel propably won't neither.
https://github.com/darktable-org/darktable/pulls?q=is%3Apr+i...
At the moment, this is about a week's work by eight authors. Others cycle/in out, of course -- this is a spot sample. They range from bugfixes to performance improvements to documentation to translation work. All what one would hope for in a software project headed to its bi-annual release next month.
There are many ways to develop, and it may be a bit cruel to compare a one-man show to a long-term international collaboration. But here are the recently merged pull requests from the software which is posted about in the blog post:
https://github.com/aurelienpierreeng/ansel/pulls?q=is%3Apr+i...
On the first page, I see about five authors offering PR's over the course of all of 2023 -- a much slower pace of community development.
It appears that Ansel is being developed more by direct commits from its main author. So let's compare the recent commits:
https://github.com/aurelienpierreeng/ansel/commits/master
Page 1 of Ansel commits is by its mono-author from the last week. Page 2 takes us back to August. Page 3 back to June. I totally understand that good developers need to work carefully and sit on things, then release them in due time.
Here goes for darktable commits:
https://github.com/darktable-org/darktable/commits/master
If we take a moment to page back to page 3, one can note that we're back to two weeks ago (rather than June). Steady work by a committed community matters. The log of work done is may be quite worth looking at, rather than incendiary blog posts.
I have used Darktable because it was really the only game in town for editing raw photos on Linux - and I have to agree that if anything, it needs less features, and more work standardizing and simplifying its UI.
You see this all the time, where basically there is no coherent organization, you just get a huge grab-bag of random features slapped together haphazardly. This is exactly what happened to Gimp and actually started to happen to Blender but then they pulled their shit together and it’s kind of a masterpiece now.
So I definitely support their effort, understand their frustration, and while a little more tact might be in order - it’s usually the people with passion about something that end up bringing it to another level.
I would love to read more about that! Do you have a blog post or other insight?
Basically blender had a ton of features but you had to learn all sorts of shortcuts and read endless documentation to even become aware of them.
They decided to really focus on the UI and bring it into a more standardized experience, where people who were not intimately familiar with blender would stand a chance - and overall I think everyone has loved it, even those who used it extensively.
One of the things I really like that they added was workspaces, so you can quickly start in a UI that makes sense for what you want to do. Just the other day I wanted to make an animated intro from an svg image, so I just opened it in the 2d animation workspace and was off to the races. Blenders UI has always been infinitely customizable, but without bundling that capability into a feature that benefits the user, it really just lead to confusion.
2.8 was a huge update for them and they’ve sort of been going all in on that user-centric direction with every subsequent release since then.
The specific example you gave was the workspaces. That did not sound correct to me so I checked my 2.3 reference manual(the big book they sold right after going opensource) and it has workspaces. I want to say they were one of the big things added for the 2.0 release But I don't really remember that well and am too lazy to actually try and install old releases to find out.
I don't use a lot of 3d software so I am not a huge authority but sometimes it almost is like the opposite has happened. The commercial 3d editors have been copying some of the features blender introduced. stacked windowing system, single window editing, put all the controls up front instead of hiding them behind menus, modal editing. This is a two way stream of ideas as the various editors copy each others good ideas.
And sorry I misspoke - I was talking about the new template feature where you go File -> New -> 2d Animation - and it puts you in the preset template for doing 2d animation.
The Workspaces are significantly better as well though - it's worth downloading blender 2.7 and the most recent version of blender and comparing, it honestly is night and day comparing the old UI to the current one.
There's hope!
I tried to use Darktable a half dozen years ago and found its UI to work in bad and difficult and unpredictable ways. I reported it as a bug on IRC and got flamed by the developers; I deleted the app and never looked back (I now reluctantly pirate Lightroom because I refuse to pay for subscriptionware).
Hopefully this fork will drag it into useful territory.
I believe this blog post is a great example of why subscriptionware keeps winning - it’s absolutely impossible to support indefinite development of such a large project with one-time payments.
Nobody actually wants it. It’s just another way of turning your customers into a harvestable resource and raising prices instead of dealing fairly. I don’t want maintenance and updates; I want the software once, today. I don’t want to be automatically opted in to the annual upgrade treadmill because I bought version 2023.
Software is not, by default, a service. It’s a product. Pretending it is a service means purchasers pay more money for the same utility.
The average TCO of software has gone up substantially for no benefit to users. This is why vendors do it: increased revenue for the same amount of work. It’s a rentseeking scam, same as a hard-to-cancel gym membership or newspaper subscription.
I do not see much evidence that subscriptions are primarily used as a pricing dark pattern.
> hard-to-cancel gym membership or newspaper subscription
Both your example services involve a recurring cost on the supply side, so they are obviously subscription priced. The hard to cancel nature is provider/location dependent - in the EU, I find cancellation is easy.
Patches are easy to reject; try to refuse implementing a feature someone offers you money for.
Notice how the most consistent design and the highest quality usually comes from people who are heavily opinionated. The real problem is that there seem to be a lot more people with strong opinions than there are good designs.
I'm not a photographer, so I can't judge Ansel vs Darktable based on the merits of their UI design, but I can empathize with Aurélien based on his version of the story. The number of times I've ripped out 100k lines of code to replace them with a hundred is too damn high. Was there a good reason for these 100k lines to exist? Perhaps, once upon a time, but I do feel relief when I rip them out.
The problem (that I foresee at least) is that if a traditional product role stepped in and said "no" to a feature (e.g. a midi device) and that another feature should be prioritised (tablet support), the developers will just... leave (or fork).
It’s impossible to put anything but a small amount of frogs in one wheelbarrow, because whenever you try to keep or put back in one set of frogs, another few will get startled and jump out.
I tried everything to stay away from the Adobe tax. I used Retroactive with Aperture 3 until it became too unstable. I tried RawTherapee but found the default tools were just bad, and speed was terrible. Darktable’s performance was a bit better but wow that UI. And not in a good way. I don’t want to pick from five different algorithms (almost all the time you can’t tell the difference anyway) to apply a filter.
I eventually just paid for On1 and it’s great.
https://www.on1.com/landing/early-black-friday-2023/
Edit: fwiw capture one also on sale:
Sometimes even those of us who love programing want to use software rather than develop it.
I use C1 (in fact, I just purchased the yearly subscription today for 50% off) and my personal impression is that my images look better in C1 than with LR.
But I was always under the impression that many many many "pros" use LR simply because it has a lot of bells and whistles (including that somewhat recent "AI" content fill).
Also, C1's layer adjustment paradigm makes the most sense to me compared to everything else I've tried.
I'm not a pro by the way.
Losing some cred with all the aspiring teenage poets.
In which case, it's OK for a developer to ignore YOUR personal preferences and go with something less flexible. You can ruin a project by trying to accommodate multiple workflows. Let me emphasis that - RUIN A PROJECT.
In solvespace, tool use consists of selecting sketch entities and then applying a tool - example: select lines and apply a constraint (parallel, perpendicular, equal), or what I call "noun - verb". Some people want to use "verb - noun" which would mean selecting the operation (verb) first and then the thing to apply it to (nouns) and then some kind of "go" or "ok" to actually do it. Some have even submitted PRs trying to implement the later as an option.
We will not have it. The disruption to the code is too much. Verb-noun introduces state where there was none, which is a maintenance burbern (small but not zero). It requires the extra step to apply the operation. It does not offer additional capability to users.
At some point you end up "refactoring" and "building an API" to enable all this flexibility. And that's maybe OK for commercial software where people are paid to waste countless hours pandering to the whims of large customers. Architecture astronauts like that kind of stuff for its own sake. Keep them away. Refactor when it's necessary to bring new functionality, not when it's just a user preference.
Make an application, not a toolkit for making applications.
We have Lightroom, we have Capture One. Let one software for more technically-inclined photographers exist, where you have options and power over the pipeline. Darktable does not aim to be a Lightroom replacement.
I accidentally put words into OPs mouth. Not fixed module order, but correct module order. But even if OP argues for the fixed order, I would trust him fully on that. From what I recall, one of his arguments was that different modules work in different color spaces. And it does not make any sense whatsoever to feed linear RGB into a module that works in some perceptive (logarithmic) space. A car owner who installs 4 different-sized wheels on their car is not technically inclined, he’s just an idiot.
FWIW, in my 2 years of using DT, I never needed to reorder modules. I mean, I used to play with that in the begining. I would spend 4 hours on a single picture reordering modules and doing all the crazy stuff, and then eventually I would start over because the pipeline becomes unmaintainable. I just don’t see, how this can be any useful if your goal is being productive and not just fooling around with your pictures.
They had configurable execution order and masks well ahead of everyone else (back when lightzone was still commercial) and the interface was always straight forward. Some things are just much easier to achieve with reconfigurable orders. For example desaturating an image and then adjusting the contrast curve of the black and white photo. I just tried that in ansel and you can't do it because the desaturation is done after the tone mapper. You can probably achieve the same result but it's just more difficult.
I find that darktable (and ansel as well) suffer from too many modules touching the same fundamental things. E.g. There seem to be several modules that adjust the color calibration white balance, exposure. So I have seen multiple times that I get a very bad initial look, but I can't fix it easily with e.g. the white balance without turning those other modules off.
I think OP was pushing for the scene-referred workflow and removal of the legacy display-referred workflow and all related modules. In fact Ansel made a step in that direction. It removed legacy modules (from UI at least), also, for example, it replaced sharpen and soften modules with some iirc wavelet-based thingy which does both (I forgot the name as I tried it long ago).
Can’t comment on contrast after desaturation directly. Perhaps OP could explain why it is done so. A tangential thing: desaturation is actually a complicated process. You could rely on lightness, you could rely on RGB components, etc.. I think Ansel and its Color balance and CAT modules give you full control over all this complexity. These tools are much more flexible than anything offered by competitors. But it’s certainly not easy. This is a bit related to the sibling comment about targeting towards technically inclined people.
There's an effort underway to recover the original web site, but the domain name owner disappeared a while ago, which complicated things.
Agreed on the paradigms around stacking / ordering & non-destructive workflows used in Lightzone. It's my preferred photo touching-up software for similar reasons.
Agreed that being too harsh/blunt can be counterproductive, but at the same time, the way a message is delivered does not make the points any less valid. (It just makes the relevant people less likely to listen? Though at this point it seems that hope is long gone anyway?)
In a collaborative project run by volunteers, the way one argues and the point one makes are united. Darktable is possible only if there is a group of people working on it. I've seen the author insulting fellow contributors in public forums, I've seen him using the most offensive possible language against people who were being polite to him, just because they disagreed. This is not how you steer an opensource project in the right direction. It is also useless to come and shit everywhere after the changes are done. It is the opensource equivalent of seagull management [1].
I think in a collaborative project, the way you state your point is as important as the value of the point you're making. If you're unable to state your point clearly and effectively, then you should work alone, as the author has now correctly decided to do. Continuing the shitstorm even after his collaboration with Darktable has terminated seems, to me, to be just the continuation of a useless feud.
I say all this as a happy Darktable user, and not a contributor at all. I also loved the author's contribution, and found his Youtube channel to be really informative and a fantastic learning source. Still, Darktable has continued after his departure, and the new release, which will come for Christmas, is really promising, with the inclusion of per-channel curves in the sigmoid module, similarly to Blender's AgX. Many other improvements are coming, and I don't feel the project is "crashing into the wall in slow-motion".
OP is clearly not. He made a (usable?) version of darktable.
I have not tried it yet, but I will. I still have PTSd from my darktable tries. It was such a mess but at this time i thought its my fault.
but it certainly can demotivate other volunteers, having a net negative effect
Several of the features he removed are useful to me. Whatever performance issues he quotes do not seem to apply to my installation.
And there have been rather useful additions to darktable after his fork. For instance the Sigmoid module, an alternative to the author's Filmic module, which I prefer over filmic. Or the very useful Primaries module. To say nothing of various performance improvements, an Mac version that is not broken, and updated camera support.
I've had a few run-ins with the author of this software. He has very strong opinions, and does not accept competing ideas. Good for him to build a fork of darktable that suits his sensibilities. But marketing it as a better alternative to darktable is misleading at best.
I read his efforts as a prime example of burnout. He tried to make the community project darktable into his fiefdom, and failed. So now he's frustrated and angry, and slings insults at the darktable devs.
seeing my RAWs looking completely wrong
Googling wtf is wrong
Seeing a bunch of reddit/forum threads of devs telling people that it's a feature not a bug.
Going back to pirating lightroom
The point is darktable has terrible defaults and terrible usability to allow a novice user to convert the dump to a usable image. Images loaded into darktable are less immediately usable than default camera settings. This might be ok for experienced users, but it’s absolutely disastrous for newbs.
Actually, none of the RAW processors I've used (both paid and free) match my camera's defaults (2 different cameras). The paid one even had a dedicated page explaining why so that they could direct newbies to it.
There are a lot of cameras out there, and you cannot expect developers to figure out the curve to match the camera for all of them. That's why these SW let you specify your own default curve.
There are videos and forum responses explaining how to get a more appealing image, but the suggestions require a LOT of work and they assume a pretty deep understanding of color science.
DT is like a car that you can only drive if you know how how to tune each part of the engine. Otherwise, you just drive something that sputters down the highway.
On the other hand, that does not feel so nice as a contribution environment, it creates a software design bottleneck on one person, increasing shipping time and creating a dangerous bus factor. It's not a really scalable way do software design. Overall that attitude is pretty detrimental to community as he basically complains about all previous contributors.
Maybe I'd suggest him to:
- Work on his attitude, respect other contributors & stop calling them names.
- Spend less time developing and more time educating other people who work on the project.
- Come up with a set of design principles that the rest of the project can follow.
But yeah that's open source, he's free to fork a project. Probably his project will be successful anyway despite the negativity.
FWIW, this article is originally written in french. And while the French version is definitely still abrasive, it sounds more normal. The writing style does not map to English as well for sure.
I am currently reviewing safety critical code written by two very respected companies and occasionally that code looks worse than the snippets author showed.
shudder
Yeah, I too wouldn't want to volunteer to contribute to a project which is OK with this.
So I'd be interested in the hive mind's recommendations for an LR replacement. I have my LR edits exported as xmp sidecars, I'd prefer a one-off purchase rather than a subscription and I'm an average punter with more enthusiasm than skill. I shoot mostly jpeg with some raw. What should I be looking at to replace LR?
If it helps, I built this [1] to extract xmp sidecars from the LR database.