Lately I’ve seen a couple of threads like
“Hi, I’ve started using FOSS software program. Kudos to the devs for a great piece of software. Here’s all the problems I’ve discovered with the software. I’ve used paid software and this program doesn’t have my critical feature. Why haven’t the devs implemented this feature? Are they deliberately crippling the software?”
So, let me tell you what it’s like to be that mythical beast, a dev.
I’ll tell you my story. Other devs may have similar stories or different, but they all have stories.
I bought my first SLR, a Minolta SRT 101, 45 years ago. I keypunched my first line of code onto a card 44 years ago. I’m married with 10 kids, 8 grown and gone and 3 with special needs. I have 19 grandchildren, but most don’t live close. I have a 120 pound dog that hates delivery men and loves me. My wife lost most of her vision several years ago and is legally blind which makes me the cook, maid, chauffeur, etc. I have a house payment, 2 car payments, a computer services business, and a photography business. I mostly shoot sports and high school senior portraits.
Why tell you all of this? Just to show that I’m a person just like you, with bills, jobs, obligations, things that have to be done, etc. But, later in the evening around 9 or 10 o’clock I finally get to be a dev, unless I have to process pictures. I usually shoot 2 or 3 times a week, so that leaves me 4 or 5 nights a week to be a dev.
What’s it like to be a dev?
darktable is a large complex piece of code. The section I try and take care of is the embedded lua interpreter, the lua API and the lua scripts repository. I can and have worked on other parts of the code, but the the lua part is what I’m most familiar with and have stepped up to take care of. Other developers take care of other sections of code, or other items such as translations, documentation and testing.
Each day i read the issues with darktable and with the lua-scripts repositories. I read all the new messages on the darktable user and developer mailing lists. I come to pixls.us and read the new posts looking for issues with darktable and/or the lua-scripts. I read and respond to any e-mails I receive dealing with darktable and lua-script issues. If I see an issue that I think could impact the user base, I try to confirm the issue or understand it. If it’s related to a misunderstanding of how darktable or the lua-scripts work, I try and offer help. If it’s a bug, I try and confirm it and do a quick track to see what could be causing it. If it’s something that’s not part of what I usually take care of but I feel comfortable fixing it and have the time, then I take it on. If it’s something that I do take care of then it’s mine. The first thing I do is recreate the issue. Then I determine the cause which often involves adding print statements to sections of the code, rebuilding the executable, running it trying to create the problem, evaluating the results, then doing it again. It’s a repetitive process until I finally uncover the cause. Once I understand what is wrong, then I can go about fixing it. I determine a fix, code it, build darktable, then test it. Sometimes I get it right the first time, but usually it takes a few times. If it’s an issue with the lua API, then often I’ll write a lua script just to exercise that part of the API to make sure I didn’t miss something else. Once I have the fix, I create a pull request and submit it for review. It gets reviewed and accepted or there is conversation about the fix and sometimes I have to redo the fix because I made an error or failed to take something else into account. Usually fixing an issue takes me a week or so. I’ve had ones that I’ve fixed within hours and I’ve had others that took weeks.
Now for some numbers.
I just checked and there are 614 issues open on darktable. In the last 30 days, 28 devs submitted 120 pull requests which closed 99 issues. So, if no one submits an issue for the next 6 months and pull requests continue at the same rate we should have the issues all fixed by April.
In contrast Adobe, Inc., one maker of paid software has 22,000+ employees. How many work on each piece of software. 500? 1000? More?
So what’s it like to be a dev? When I fix a problem or add a new feature, it’s great. But there are other nights when I’m tired and can’t think, stumped by the problem or can’t figure out the fix so sometimes I just have to walk away and come back to it tomorrow.
And now to the question that I titled this with. Some answers in no certain order:
We’re working on a bug fix or feature and need to complete it before taking on something else.
We don’t understand what you are asking. While it may be clear to you, if we can’t understand it we can’t implement/fix it. Add to that language barriers which create misunderstanding, so sometimes it takes a lot of conversation to determine what to do.
We don’t know how. We have to figure out how to do it, and how to make it fit with darktable and have everything work together.
There aren’t a lot of us and it just takes time.
So, please try and remember that devs are people too. We are doing this because we are problem solvers and like fixing things, because we like helping users, because we are photographers and use darktable, and because it makes us happy.
P.S. I’m a professional photographer and I use darktable. It was the first raw developer I used, so my growth wasn’t stunted by paid software
P.P.S. darktable does support batch renaming. See https://github.com/darktable-org/lua-scripts/issues/269