Why Isn't GNU Radio Used More?

My first major question I want to put out there from DySPAN relates to the uses and customers of GNU Radio. Specifically, why aren't there more of them?

One of the key aspects of DySPAN is the demonstrations that various companies, universities, and other research firms bring to DySPAN to show off. These demos are in some part related to dynamic spectrum access (DSA), whether it's showing off a spectrum sensing or whitespace-finding device or a policy engine to certify of restrict certain radio behaviors. Having both been involved with the early creation and organization (really, helping Keith Nolan enact his vision), a demonstrator myself in 2007, and watching the demonstrations throughout the years at DySPAN, I have both been pleased with the uses that GNU Radio has been put to for these demos, but I also look around and wonder why more people don't use it?

Many demos and researchers at DySPAN are using USRPs, but not necessarily GNU Radio.

In some cases, I think the answer is due to the fact that the demonstrators are using hardware that does not (currently) work with GNU Radio, such as the Rice University WARP board. Fair enough, but of course, I would be very interested in expanding GNU Radio to communicate with the various SDR hardware platforms that are out there.

In other cases, the demonstrators are either using Matlab/Simulink or have built up their own SDR to communicate with the USRP.

I wonder, and really don't know, if this has something to do with the complexity of GNU Radio and a discomfort by developers to using others' software (especially one that isn't fully, or, let's be honest, properly documented). Conversely, USRPs have a single, simple function and are general enough to use for many purposes. This is not to say that USRPs are simple, but that they have a standard, bounded interface and is meant to get bits between a computer and the air. GNU Radio, on the other hand, is more open-ended and therefore complicated to use. Sitting down for the first time in front of GNU Radio and all it is capable of must be a hugely daunting task. Where do you begin and where does it end?

I remember when I was first starting to program more than just basic C++ applications. I would see that there was some library or other that might help me out, but I was too new and inexperienced to grasp how best to use it. Or I would be arrogant enough to think that maybe I could do it better, especially if all I needed was maybe 10% of what the library would offer. Of course, I never came up with anything nearly as efficient, stable, and reusable as the standard solutions out there. It took some time and repeatedly getting my butt kicked before I was able to appreciate and use the solutions others had created for me. This is one thing that makes open source software so fantastic, and it is the same reason why GNU Radio has so many dependencies.

Conversely, the DSA community seems to want to keep reinventing solutions. Every year we see demos that are slightly more polished and maybe a bit more expansive than the previous year's, but we still aren't really seeing huge leaps and bounds in the technology that I think we could and should be seeing. As a community, we aren't seeing people building on each others work. Everything must be new, and so each time, a new research group must build their solutions up from the start. This gets into another issue that I see with the lack of real science going on in this space, but that's another post. Also, I hope that I am not sounding too hard on the demonstrators or their accomplishments. I am trying to suggest how much better we as a community could all be.

Is it an intellectual property issue? I understand that people are are trying to build a product in many cases and that DySPAN is a technology conference and not really a science conference, but are we a little too protective of the work? Especially from the research institutions, where I think we want to encourage dissemination in a way that both protects their claims to the invention, discoveries, and ideas, but also allows others to follow in their footsteps (or to employ an overly-used metaphor: stand on their shoulders).

Is GNU Radio the answer to some of these issues? I know I am biased, but as an open source project with years of work to make a robust and powerful product, it seems like the obvious answer. What are we missing (aside from proper documentation)? How can we do better to serve these fields?