Comments (2)
Hello, Glenn.
The LGPL license was chosen intentionally. In many of my open-source projects I use the MIT license, and I'm OK with it. From one side the MIT license doesn't require disclosure of the source code, where a library is integrated to. From the other side, the practice gives the understanding that almost no changes and improvement are contributed to the library from side developers.
Yes, you're right, the tinyproto library took much effort to make it work, and I have more ideas to improve it, but I almost do not have free time. Thus, I would like to see how it is used in the projects, and the LGPL license should force other developers to publish their code (if they follow the terms of the license).
The tinyproto project officially has only LGPL license while it is still possible to have a separate Software License Agreement between the commercial company and me.
As an example of this approach, QT project has dual-license for both open source and commercial use.
If it is not a secret, which company do you work for?
Best regards
from tinyproto.
Hi Aleksei -
I do understand your motivations and respect them, but in practice, from my experience the LGPLv3 turns out to be an unnecessary burden for use in proprietary applications. I've worked for very small startups to (currently) a very large technology company. My current employer makes every effort to follow the terms of the license but to get something like a LGPLv3 component integrated into a bare-metal application stack (where it can't simply be linked as a shared library) is a non-starter. First, getting legal involved to review and understand this license in the environment in which your library might be used is a major headache (and prohibitively time-consuming). Second, unfortunately, the value that this component might offer if licensed separately (e.g. a paid license) is not significant enough to justify pursuing (again, through legal and purchasing . . . a long drawn out ordeal). If this library were an integral component for a proprietary application being develop (e.g. an entire HMI framework like QT) that was going to serve as the foundation for a software suite going forward, a separate (paid) license might be justified since you'd also get a fair amount of support with it. As you said, like many of us, free time to develop these small (yet useful) libraries is very difficult to find. It's an expression of passion for development. Paying for a license implies providing support and it's not clear you have the time/energy to fullfil that part of the obligation (which I totally understand).
Honestly, I'm not looking to develop this library further. With that said, when I run across bugs or make minor improvements I usually offer them back to the original developer as a courtesy (and thanks) for their efforts to make their software available for others to use. Plus, it's only to my benefit if my fixes or small improvements get re-introduced into the mainline so I don't have to maintain a separate private fork. For me, personally, I just get a kick out of hearing how others use the stuff I develop on the side. If I were to become a free-lancer and had to pay my own bills, then sure, I'd license my software in some manner to materially benefit from my efforts (perhaps through support contracts etc...). Perhaps we don't agree on this topic and you're entirely within your right to license your creations however you like - it's your choice. For me, however, LGPLv3 introduces enough of a legal burden and uncertainty (in the context of a proprietary application) that I naturally shy away from it. Since the bulk of the software I develop is proprietary in nature (since someone pays me to write it), I have fewer opportunities where I could use your component except for hobby projects done outside of work. Since I cannot freely use this component both inside/outside of work, the effort it takes to learn and integrate your work isn't as broadly applicable. As a consequence, I'd more likely roll my own solution or find a package with a less restrictive license that I extend myself.
Anyway, I appreciate your candor. I hope you continue your developments . . . it looks like a nice package.
Best regards . . .
from tinyproto.
Related Issues (20)
- Integrate 1-Wire protocol to tinyproto library
- Software serial support HOT 2
- Pyserial and tinyproto example HOT 10
- proto.run_rx hangs indefinitely in Arduino HOT 1
- Unreliable communication with tinyproto HOT 2
- TinyProtocolStream - encapsulate tinyproto into Arduino Stream for ease of use HOT 2
- Multidrop / Master+Slaves on RS485 or similar HOT 17
- Pi Pico serial1 problem HOT 10
- Questions on connection management HOT 3
- IFd class does not allow station address intiailization. HOT 5
- Add support for ESP32 "BluetoothSerial.h"? HOT 1
- Simple build fails on Teensy 4.1 HOT 1
- Build with visual studio works, but unable to do a proto begin --> m_handle=null HOT 3
- Connection is silently re-established
- Connection breaks down if nothing is sent for >= keep alive timeout HOT 2
- Unable to successfully begin() Python Tinyproto when using crc settings different than CRC16 HOT 1
- Unable to connect to tinyproto after second connection. HOT 1
- riscv processor based esp32 series support(and more) HOT 7
- Arduino due doesn't seem to work HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tinyproto.