DEV Community

Discussion on: Why I no longer use the MIT license for new projects

Collapse
 
cubiclesocial profile image
cubiclesocial

I triple-license my software. At the top of every file is this:

    // File description goes here.
    // (C) 2021 CubicleSoft.  All Rights Reserved.
Enter fullscreen mode Exit fullscreen mode

See that "All Rights Reserved"? I was asked about it once upon a time in relation to the software license for the software.

Software internal to CubicleSoft is fully protected by copyright and owned by CubicleSoft. By default, no one else may use the software. This allows CubicleSoft to create both private/internal and commercial software products with its protected software. If anyone steals any software from those products, they are in direct and complete violation of copyright law even if portions of the software are also available on GitHub! Publicly available code on GitHub that happens to be part of CubicleSoft commercial software does not convey a license to make a product that competes directly with CubicleSoft commercial software products using CubicleSoft protected software because the license in the commercial product itself is fundamentally different.

For the most part and for most people, the previous paragraph might sound scary but is just a technical detail that few have to worry about unless they are thinking about directly competing with CubicleSoft. It is primarily intended to stop anyone from attempting to profit directly off of commercial CubicleSoft software via straight up software piracy.

So life for any given piece of software at CubicleSoft starts out as a completely protected work which no one else outside of CubicleSoft may use. When CubicleSoft software is made open source and published to GitHub as a set of very useful libraries and applications, it is usually made available under both the MIT and LGPL licenses. Users of the published software on GitHub choose which of the available licenses they wish to license the software from CubicleSoft via the GitHub repository in question.

Note that on rare occasions there are modifications to the available license(s). For example, the Portable Apps Mirror Proxy service has a slight adjustment to the MIT/LGPL license to avoid legal issues related to the associated registered trademark.

The end result is that the same piece of software, when published on GitHub, has not one license, but three distinct licenses: A version that is only usable by CubicleSoft for private/internal and commercial projects, a version published to GitHub that can be licensed under the MIT license, and a version published to GitHub that can be licensed under the LGPL. Since the published software to date that offers MIT vs. LGPL is identical, the software just happens to appear in a single repository on GitHub. I'm not sure what the use-case would be to create separate repos due solely to license differences, but it's not an impossibility!

Most end-users will simply choose to license published CubicleSoft software under the MIT license, where available, since it is the most permissive. Users who already mostly use LGPL software and prefer LGPL will license under LGPL where available.

IMO, most indie software developers should embrace a similar model of dual-licensing your own software when publishing to GitHub. Your local source code is the fully protected work while the published version uses a suitable open source license. This is basically "branching" your license. Doing this allows you to make money from your software via protected works and a formal EULA while still sharing useful libraries and applications with the world.

Finally, if you use any open source software in your own software products, you technically don't have to, but really should contribute back to the larger community of developers. If you don't contribute back with source code, there's always the monetary option (sponsorships, Amazon wishlists, buy a coffee, etc.) or at least drop in on Discord/email and take a moment to thank the developer(s) for their efforts.

I'm not a lawyer and this is not legal advice. However, I've known a number of software developers who have transitioned into practicing law after developing software for a while. Devs tend to be of similar mind as lawyers, so the transition seems somewhat natural. I recommend just getting comfortable with reading software licenses. Many software licenses have a number of similarities. MIT is a very permissive-use license but it is also very short and relatively easy to read and understand.