Just release everything else. Someone can write their own library for that or maybe even find a replacement in the open-source world.
Just release everything else. Someone can write their own library for that or maybe even find a replacement in the open-source world.
First, replacing the library requires extremely high/rare expertise and several man-years of development to implement a basic version. These never get replaced in open source because the level of individual investment is extraordinary; these libraries only get built when a company invests a few million dollars hiring one of the handful of people that know how to write one over years, which is rare and at which point they want to own it. The barrier to open source MVP is simply too high. Even worse, in some cases the licensed version becomes unavailable/unsupported because the person that designed it moves on but at least there is an incentive to spend a lot of money to remedy that.
Second, replacing the library requires computer science that has no description in literature. I've seen teams of CS PhDs spend years trying to clean room equivalent libraries with little success when there are few hints in existing computer science literature how the original library capability was even achieved. They might be able to buy a license to the original library but many times that is cost prohibitive (millions of dollars) or not available at all (licensing restrictions).
Not every application has a library dependency with these properties but it isn't that rare either. These libraries are used for good reason and sometimes provide central functionality without which the rest of the source code is relatively low value.
> the library requires computer science that has no description in literature
Can you mention examples of such cases?
If the application is interesting, people will find find a way to run it on modern hardware. It's not an excuse not to open-source what you can of your code.
This line of excuses is just weak. Either release the code or keep it proprietary, that's your decision as owner. Just spare us the silly excuses and trying to make it seem like your company would really really like to open-source if only it wasn't for that tiny detail of blah...
This also becomes fun if you worked with external contractors, who committed all over the code and the agreement doesn't cover releasing the code.
And then there are still all the other things in open sourcing (making sure comments are appropriate, naming is appropriate, ...)
And then you have IP besides the source, in artwork where designers often have some rights, copyrights, trademarks ...
And after all that the "fear" on your reputation, if one fears the code might seem of low quality, which might reflect bad. (Whether it's truly bad doesn't really matter, a few blog posts or youtube videos of somebody taking worst parts can harm reputation)
It's all simpler, if you plan on doing that eventually from the start, but notable effort for any serious project after the fact.
Your other examples mostly seem to boil down to "we were not willing to commit the necessary resources to do it". Which is fine, of course.
Yes, of course. If I invest resources from the beginning for "I want to relicense and open all the code" then there is no problem. However for most companies the priority is "get this out before our competitor releases their product" and many things fall under and often neither developers nor managers have the legal knowledge (and don't care)
And btw. I fully support this on a different level: For instance for devices like (home) routers I support a scheme where a company is required to publish the software once they cancel support, so one doesn't have to throw away fine working devices only since the vendor stops fixing security issues. But that won't happen quickly, as it goes through the supply chain: You need the device drivers for the chipsets etc.
I did eventually open source some code from a popular shareware utility years ago after people asked me to. (No one ever did anything with it of course.) It took me a while because I did use some third party code but eventually decided the company that wrote the code was long gone and no one would care. But a business with lawyers would not have allowed that. And even documenting what would be needed to replace the routines would have taken a fair bit of work.
The reason to open sourcing abandonware is not because you know for sure someone needs/wants it, it's to enable someone who does need/wants it, can still have it.
Instead of assuming you know what people want, open sourcing abandonware would enable people to make that decision for themselves, not you making it for them.
There are examples of niche things being resurrected by players. Niche MMOs have from scratch servers, niche consoles have complete emulators, etc. Saying "no one is going to go to the effort" is not accurate.
Contracts can legally bind the developer/s with this, more so if it is a corporate entity. Even if Google wins this case and the APIs cannot legally acquire copyright protection, the third-party can sue the developer/s for disclosing trade secrets. The code legally is clean (IP-wise) at this point, but the developer/s have broken a contract with the third-party provider in doing so, and they can sue those developer/s (however, any users of the released code are protected since they are not the signatories/parties to the contract).
Of course, every physics engine behaves a little differently from the others, so, if you game is physics centered (pinball, racing), switching implementation might result in a slightly different game - but having the core of your game depends on the implementation details of some 3rd-party library might not be a good idea anyway.
In general, the more you sprinkle your code with dependencies to 3rd party libraries, the less control you have over the resulting product.
Your point still stands, though, for some very low-level "utility" libraries like boost or the STL, or any standard library replacement , and more generally, libraries holding "vocabulary" types.