Lightroom, ACDSee Pro, and Aftershot Pro are similar programs. I think Darktable and Digikam are fairly similar too, but I haven't used them. All of these programs are a combination of a raw photo processor, non-destructive editor, and simple DAM.
I have had a brief look at "other programs" but am pretty bewildered because of the fact that the functions needed are covered to different extent by different pieces of software. Naively one could assume that this is not so bad as one could use different pieces of the software for different tasks and experience nothing worse than clutter on the desktop. However real life is worse: the tasks all work on the same data but different software has different ideas on how to store the data and provides no other interface to the data than its own GUI.
Examples for "problems":
- It is not obvious what operations are RAW processing, what are editing, e.g. noise reduction, aberration removal, white-balance, ... , contrast, ...
- RAW/Editor operations on multiple images need to be multi-image aware which requires access to a something like a selected set of images to work on. Which software actually allows the user to define this set and pass it on to the RAW/editors?
- Exporting or publishing requires not only to select images which shall be exported and how but also needs to be able to invoke RAW/editor operations. How shall the raw/editor be invoked and were does it get the image specific settings from that the user provided using the RAW/editor tool?
- What is the precise scope of the DAM?
- does it support importing?
- does it support moving of files within or between filesystems?
- how does it inform raw/editor programs that image have been transferred between file systems?
- does it need the raw/editor to create images in its GUI? If not where does it get its image data from?
- does it support export/publish? If yes how does it invoke raw/editor?
- does it support image tagging? If yes to which degree: geo-coordinates, face-recognition, ...?
These questions which are only the tip of the iceberg show that at the moment you 2 main options:
- Work with multiple non-integrated programs. This will only work if the programs work on the images in a pipe-line: no going back to prior steps, no data interaction except for processing semi-standardised files along the data pipeline. No use of common database.
- Use a program that solves most tasks directly and some using plugins (Lightroom) but locks you in at all non-standardised data-exchange points.
Being a software developer I have probably chosen a wording that software developers may easier understand than users. Besides: its later in the evening.
As a SW developer/architect I feel there is only one clean way out (for SW developers):
- cleary define the required top-level features and assign them to building blocks of the software
- map this down to clearly defined software interfaces in a fashion that caters for exchangeable building blocks. Example: if you do not like DAMa, then switch to DAMb but keep RAWp because you prefer it over RAWc.
I a perfect world this would be dead easy.
In our world you have the big players that provide closed shop solutions to their customers: mix-and-mingle is done by the big player but without the customer/user having any choice.
I our second world (open-source) there are multiple projects that target the same domain but do not work together to augment their work but compete instead
In the domain of image post-processing, DAM, ... we need a big guy/gal that defines the framework/architecture and picks viable and good implementions of the building blocks. Any project that wants to supply part of the big picture can do so and compete with others based on virtue of the individual building block and not on complete command of the closed shop semi-complete solution (think Lightroom, Aperture, C1, ...).
The good news: this guy/gal could be a vendor that is interested in selling building blocks directly or via an App-Store. It could also be a genius coming from the open-source world
The bad news: there are not very many Torvalds, Stallmans, ... around