Junko, Caleb, thanks for your kind words. Kaleb: Missouri rocks!
Junko: Thanks for a very interesting article. The back-and-forth to determine where the boundaries between proprietary and open software is a complex dance that has been underway for decades now. I applaud that complexity! It is the rigid philosophies that "all software must be free and open" or "all software must proprietary" that end up holding innovation back. It's not that different from insisting that a house must be all metal or all wood, but never both. It's not that you can't do it, but that you lose key benefits that only a carefully constructed hybrid of the two can provide.
For most of those past decades, the dial has been pushed way too far in the direction of all-proprietary. The trouble with that is it leaves you with an unstable inverted pyramid that can tip over and crush a company as the maintenance and global diversification costs begin to go exponential over time. For research, the impact of overreliance on proprietary-only models is even more immeidate, since grad students usually don't have much money and need maximum accessibility, flexibility, and adaptability in their code.
Computer vision is one of those areas where a more open model has excellent potential benefits. The unknowns are still very broad in this domain, so encouraging rapid and synergistic interplay between researchers is vital. I'm delighted to hear that PM Mike Geertsen and Jeff Bier of the Embedded Vision Alliance see the potential of an open base and are pursuing it. This bodes well for much-needed faster advances in computer vision.
I've interacted in the past with a number of those communities that are leary of DoD work, and our approach has always been to be very respectful of their views. Truly free and open source software is available to everyone globally, and it's important to keep in mind both when creating it and when using it that it's not just defense groups that could use it in ways you might not agree to personally. Also, unlike the U.S. DoD, some of those other groups could care less what you think about how your software gets used.
For just such reasons I'm a strong advocate in both commercial and military software of the pyramid model: Use open source for your broad base of infrastructure (exactly as is done in iPhones and Androids), but keep the much smaller set of truly key algorithms or software that you either value or don't want spread about either under proprietary license or not distributed at all (again, exactly as in iPhones and Androids, with iPhones keeping that chunk a lot larger).
Using the pyramid model keeps you from wasting very costly human-based programming and verification resources mostly to maintain some enormous Windows-scale code base that doesn't really provide you with anything unique. Instead, it lets you focus your best people on solving hard problems that will make your product truly unique. They will be happier, and you will make more money.
Keeping key parts to yourself also enables you to keep your parts of the software from being used in ways you may not desire, such as military applications. (And don't forget those other global players who will be a lot less nice about respecting your desires for how your software is used.)
I'm glad you pointed that out! It has long been a peculiar point that many just get confused about. Yes, the DoD crowdsources. I've heard many people express concern that their work will go into military technology, though. It is a legitimate concern and I really don't know what to tell them when they bring it up.
It's worth pointing out that the U.S. Department of Defense, including DARPA, has a long history of using and actively supporting free and open source software. Here's what the CIO of the DoD says if you don't believe me (the last link there is a report I wrote):
Open source licensing is an amazingly effective way to build up communities that enable innovation for everyone, including for example anyone with an iPhone or Android in their pocket. The trick to staying competitive in software, whether in the commercial market or in the military, is not to retreat inside of some tiny shell of "owned" developers only, but using those developers to help you ride at very edge of the wave of fast-moving innovation that emerges when you start letting everyone contribute their small piece to a puzzle that everyone wants solved. I flatly assure you that if open source had been banned rather than embraced by the U.S. Department of Defense ten years ago, the phone you are now carrying would be as dumb as a stump.
A Book For All Reasons Bernard Cole1 Comment Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...