On Panbo.com there was a discussion back in February about how "open" vs "proprietary" NMEA 2000 and Signal-K are (scroll down to the end to see the comments). I just read it yesterday and posted a comment saying I though NMEA 2000 was about as proprietary as proprietary gets. This drew some rather snippy comments from Ben Ellison (Panbo site owner) about my "twisted" logic (Yuk, yuk, yuk. My username there and several other places is Twistedtree). I was then asked to take the discussion elsewhere. This same thing happened about a year ago when I made another comment that was critical of NMEA 2000, so I guess I've hit a nerve.
So I'm bringing the discussion over here where I can say my piece and others can chime in as they wish. Here's what it's all about.
Of course the terms "open", "free", and "proprietary" are used in many different ways with different meanings, so you really need to dig a little deeper to make any meaningful comparisons. All of these get wrapped up in various forms of intellectual property law and its various forms like copyright, patents, trade secrets, licenses, confidentiality agreements, etc. But I'll try to keep it at a more general level.
At one point in the discussion, Ben characterized "proprietary" as "a standard that no one can use unless allowed to by a certain company or institution". I would agree with that definition. And elsewhere he characterized NMEA 2000 as "open". That I didn't agree with, so I posted this comment:
I'm a little late to the discussion, but to me, N2K is a proprietary standard in every way. Even using Ben's definition in the following supports this notion:
Ben said "The problem with lumping together "Open" with "Open and Free" seems obvious to me. It also lumps together "Proprietary" -- a standard that no one can use unless allowed to by a certain company or institution -- with "Open" to anyone though including reasonable fees needed to maintain and grow the standard."
N2K is "owned" by a single entity, NMEA
N2K is confidential and not accessible to anyone who does not hold a license. Anyone wanting to see the standard has to purchase a license. But then the licensee of N2K is obliged to hold the standard and all associated documentation confidential.
That's about as proprietary as proprietary gets. Heck, even patents, which are all owned and licensed, are published for anyone to read.
NMEA is non-discriminatory about who they will license to, but there is nothing open about contents of the standard. It's not like any of the IP protocols, all of which are published and accessible to anyone without a fee. And all the 802 standards are similarly accessible to anyone, though one needs to purchase the book(s).
I'll spare you the snarky replies that I got, but instead elaborate on what I mean.
Yes, anyone who wants access to the N2K specs can get - that's what I meant when I said NMEA was non-discriminatory about who they license too. But access is by way of a license, and that license has a bunch of restrictions. In particular, you can't disseminate any of the contents of the spec to anyone else. It's for your eyes only. So the spec is like a secret society. Nobody knows what goes on inside, and as a contingency for being let in on the secret, you have to agree to maintain the secret.
Below is the exact text from the NMEA 2000 License Agreement which can be found in it's entirety here:
Restrictions. Except as expressly specified in this Agreement, licensee may not: (a) copy (except in the course of loading or installing) or modify the NMEA 2000® Standard, including but not limited to adding new features or otherwise making adaptations that alter the functioning of the NMEA 2000® Standard; (b) transfer, sublicense, lease, lend, rent or otherwise distribute the NMEA 2000® Standard to any third party; or (c) make the functionality of the NMEA 2000® Standard available to third parties through any means, including but not limited to uploading the NMEA 2000® Standard to a file-sharing service or through any hosting, application services provider, service bureau, software-as-a-service (SaaS) or any other type of services. Licensee acknowledges and agrees that portions of the NMEA 2000® Standard, including but not limited to the source code and the specific design and structure of individual modules or programs, constitute or contain trade secrets of NMEA and its licensors. Accordingly, licensee agrees to not disassemble, decompile or reverse engineer the NMEA 2000® Standard, in whole or in part, or permit or authorize a third party to do so, except to the extent such activities are expressly permitted by law notwithstanding this prohibition.
This, by the way, is a very common way for companies to license use of a proprietary technology. In some cases, companies are very selective about who they license to. Mercury Smartcraft was offered as an example of such a proprietary technology. Others license more widely, like NMEA. But it doesn't change the level of restrictions imposed on the licensee, and I would certainly characterize both as proprietary.
It's nothing like buying a book which is how most standards are published. IEC, NEC, CE, UL, are all available to anyone who wants to buy the publications. There is no restrictive license and no secrecy about the contents of the book/standard. To the contrary, it is meant to inform people. Anyone can reference the material, discuss it, write books about how to interpret it, discuss and write about ambiguities, etc. The book can be loaned, placed in a library, etc. It is covered by Copyright law, but that protects the specific embodiment of the info in the book. So you can't reproduce it in whole or in part, and you can't lift text and use it elsewhere. But the concepts are free to be used and built upon. This I would consider to be "Open".
Somebody else chimed into the discussion thinking I was complaining about having to pay for standards, but I wasn't. I have no problem paying for books, standards, or other publications. It's a well established practice and helps fund the costs of producing and publishing standards.
What I take issue with are the licensing terms, in particular the secrecy requirement. I think it does a great disservice to people trying to get products to work on boats by keeping us all in the dark about how they are supposed to work. When something is not working correctly, we can't look at a trace, compare it to the standard, figure out which device is miss-behaving, and call that vendor with an informed opinion. We can only guess. And when we do call a vendor, they will invariably tell us they are doing things right and the other guy is doing it wrong. But we have no basis to agree or disagree, so we call the other vendor. And they of course tell us they are doing things correctly and the other guy is wrong. So vendors have a game of monkey in the middle with us as their play toy. And nobody can write a book about how N2K is supposed to work, point out common problems and work arounds, or do anything to improve interoperability and stability of the technology. It would be a violation of the license agreement. If the technology were open, i.e. not a mandated secret, then I expect resources like these would be available, and N2K would work a lot better than it does. It has so much potential, but just isn't living up to it.