It always surprises me in photography that the sector as a whole seems wedded to spending money. Not content with the affliction of GAS (gear acquisition syndrome) across amateurs and professionals, the sector likes nothing more than a few extra bags, filters, albums, prints, and yes, software.
Software companies are essentially in the “better widget” race: if my competitor builds a widget, then I've got to build a better widget and sell the heck out of until someone else comes out with an even better widget.
We might complain that the latest version of Capture One Pro costs $299, or that Adobe's Creative Cloud subscription (for photographers) is $9.99 per month, yet the GAS mutation known as SAS makes us reach for the back pocket to withdraw that 16-digit flexible friend. Clearly, the alternative to something that costs money is, well, something that doesn't. And that's where free and open source software (FOSS) comes in.
The “free” part of FOSS is easy enough to understand (they give it to you), but what about “open source”? This is perhaps simplest to explain in terms of the First Amendment to the U.S. Constitution which enshrines the right to freedom of speech. So think of open source as not having a free beer, but enabling free speech (although when you're at the bar tonight you might prefer the former but partake of the latter). When it comes to software, “free” means being able to use a product without any charge. This can take a range of forms:
- Unrestricted: you can use the product whenever, wherever, and however you want to.
- Non-commercial: for all you amateurs out there, go ahead and use the product with impunity, but if you earn a living from it, then be prepared to stump up the cash.
- Reduced functionality: think of this as the freemium model where you get a stripped down product. Purchase the full deal and get all those extra features.
- Trial period: you can use a product for a period of time (often a month) before it drops back to reduced functionality or simply throws up a nag screen.
Move to an open source product, however, and not only is it unrestricted, but you get access to all the underlying code used to create the program. The best place to see how these software freedoms might look is the GNU Software Foundation. It's worth stating these in full:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it to make it do what you wish (freedom 1).
- The freedom to redistribute copies (freedom 2).
- The freedom to distribute copies of your modified version (freedom 3)
Where might you see open source under the bonnet (and in some of our paid-for software products)? Here are a few.
- LibTIFF is a library for creating TIFFs, the well known and highly flexible image file format that acts as a “container.” It can store JPEG (lossy) and PackBit (lossless) compressed images, as well as vector-based clipping paths. It has been adapted over the years in a range of ways, including BigTIFF which enables single images larger than 4 GB to be stored. Think that's overkill? Don't. A number of specialized industrial sectors require this and it's now trickled down to applications such as gigapans.
- DCRAW is a raw file reader that can demosaic your images and convert them to a range of more accessible image formats. It lags behind the commercial vendors in terms of support for the latest cameras (e.g., currently converts the Nikon D810 but not the D850) but provides long-term, sustainable support for raw into the future.
- Exiftool is a software library and command-line tool to edit and (heavily) manipulate Exif data within images. Want to reset the time on 100,000 images? Easy. Add GPS location data from a tracklog? Easy. Want to extract GPS coordinates from your photos so you can plot them on Google Maps? Easy. It's massively versatile and hugely scalable. And I'd eat my hat if this isn't used in lots of commercial products.
Open formats (like PNG) are closely linked to open source. Needless to say, as photographers we want image formats that are widely-supported and long lived. TIFF and JPEG are darn good bets, while Adobe has positioned the DNG to fill the gap for raw. While widely supported, none of them are open formats.
But as a commercial company, why on earth would you choose to use open source software in your own product. Well there are actually some great reasons (see Alphr blog as a nice primer):
- You are able to innovate IP more rapidly using OS.
- You actually get to modify project code which means you can add features, request features, and ensure longevity.
- Your future workforce is already trained as contributing as a developer is good for employability.
Where does that leave the photographer with open source? Well you may already be using it in your paid-for product. The benefit to you? It can reduce a software company's development time and so the end-user cost. Just look at products like Serif's Affinity Photo to see how quality products can be made very cost effective; I don't know how much open source code they use, but expect many of the file format converters to go down this route.
What about truly open source software? Well, some products are very mature and used day in, day out. Think Chrome, Firefox, LibreOffice, Android, MySQL, Apache, WordPress, and Drupal. The list is long and deeply embedded in everyday life, although it's fair to say that the breadth of open source software available for programmers is wider than for other sectors. That's changing and we are (rapidly) seeing projects bleed from one industry to another, or simply springing up and becoming well resourced to do so. For example, the Mozilla Foundation has received significant funding from Google. Google also funds a range of smaller open source products through its Summer of Code program.
Over some of the next few reviews I'll be covering a number of FOSS products that photographers might find useful. If you have any recommendations for a future review then stick them in the comments below.
Commercial software often use OSS libraries with permissive licenses, such at BSD, or MIT; instead of GPLv3 because the clause in GPL may end up requiring companies to release the source code of their proprietary bits (or at least the lawyers don't want to have to deal with that and become case law)
There are some decent OSS photo-related software. I'm not too willing to pay for Lightroom, so Darktable + GIMP is my go to.
I have also been using Darktable, GIMP, Hugin and other tools (command line EXIF tool, convert - useful for median blending, etc.) since 2012, since my Macbook died on me and I didn't like the direction Apple was taking with its new machines/software. I also disliked Windows, and before I got rid of the Macbook, I had given it a second life using Ubuntu Studio.
I haven't really looked back since. I have Windows on a partition, but only because firmware upgrades and lens docking stations software are not usually issued for Linux. Which is too bad, because no matter the money, I actually prefer to use Linux (now Mint with Cinnamon, before Ubuntu with XFCE) over Windows, and while I sometimes hit some limits with GIMP, I manage to do as well as I would on Photoshop anyway.
Even lens correction is pretty interesting. Lensfun has fewer lenses in its database than Adobe does, but if you have a new lens, or an unusual lens that's not supported by either, you can create a good quality correction profile on your own. In terms of camera support, from my experience, I could develop RAW files with Sony cameras before it was even available with ACR.
So, pretty good deal. You generally get to choose your interface and customize it to your choosing. You can just install any piece of software you like, for free, and it's very easy to maintain it. It's stable and usually light on resources, so often software performs better under Linux than under Windows. You get to use a lot of software that's almost professional grade without limitations. And it's easy to try. You just pick a USB 3.1 drive and install any distribution on it to test it, and you boot on it. I recommend Ubuntu Studio because it comes with pretty much everything. But if you have a 4K monitor (like I do), I recommend Linux Mint, as Cinnamon currently manages scaling better.
Hugin is great for doing panorama stitching. I took some at the Grand Canyon a month ago, and for the most part, it works quite well.
Knowing exiftool at the command line could mean that it's a one-liner to make sure all the photos have your name at the copyright.
But to be fair, a lot of these tools aren't as user-friendly, and not as accessible to everyone. You probably also have a computing science background.
Darktable, for example, took a little getting used to. And I still wish there's a dehaze option ;)
Yes, there are a few options that could be improved, for sure. Highlight and shadow recovery could be improved a little bit, especially for blown out RGB channels. I always have a hard time dealing with blown out blues in DT, when I use tools that don't act on the RAW level blown out blues turn black, unless I previously changed the white balance enough to make those blues less blue. To the point where once in a while, mostly for night photography where something is lit overwhelmingly blue, I have to only make RAW adjustments in DT and do the rest in GIMP. It's not that frequent, but it happens, and it shouldn't.
For accessibility, I don't have a computing science background, but as a teen I loved hacking and computers in general, and I did study electric engineering for a year. Took me a while to use Darktable well, too. But I'm getting there. I think that any time a software is complex enough, it takes a while to find the most useful tools for the job at hand and understand better how they work. But at the same time, I love having more options than less, even thought it can be confusing.
Oh god ...
> "The “free” part of FOSS is easy enough to understand (they give it to you) ..."
Come on, you couldn't be further from the truth. The first link on google when you search for "free software" points you to https://www.gnu.org/philosophy/free-sw.en.html and the first paragraph there says:
“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. We sometimes call it “libre software,” borrowing the French or Spanish word for “free” as in freedom, to show we do not mean the software is gratis.
So that is the "free" part, then what about Open Source? What is the difference? Free Software is about the users freedom, Open Source is about the convinience for the developers. Open Source only means that the developer can read the source, perhaps even reuse it.
For a more in depth insight into the difference please read https://www.gnu.org/philosophy/open-source-misses-the-point.html
Oh god, I now see that in the paragraph you try to explain Open Source, you actually link to the GNU Software Foundation website. You're clearly confusing those two.