IMHO "open" systems that are too complex are not actually open.
What is closed source anyway? It just means you get binaries. Binaries are not actually obfuscated. You can disassemble them, and there's even some decompilers on the market that will create functionally equivalent C code with auto-generated function and variable names. Nothing stops you from decompiling and reading a closed-source binary... except the complexity and difficulty of understanding it.
Open source systems where the source and installation/admin procedure are absurdly complicated are not actually open... they're just using a different obfuscation technique. If it takes days to install or the source is write-only code, it's no different from closed source software.
> What is closed source anyway?
This is asked as if there is no correct answer, but there is.
Open Source software is software where the source is made available under an OSI-approved Open Source licence. Closed source software is software which is not Open Source software.
See https://opensource.org/osd
> It just means you get binaries
Sometimes even the binaries are carefully obscured. I imagine it's an uphill battle to dig the binary out of a PS5 game, for instance.
> Binaries are not actually obfuscated.
Some are.
> Nothing stops you from decompiling and reading a closed-source binary... except the complexity and difficulty of understanding it.
And possibly the licence, and possibly laws like the DMCA. Also, even if you succeed in reverse-engineering the code, you may be legally constrained in what you can do. If you improve the software, you probably cannot legally distribute the improved version, although you might get away with distributing a delta.
See also https://www.gnu.org/philosophy/free-sw.en.html
> Open source systems where the source and installation/admin procedure are absurdly complicated are not actually open... they're just using a different obfuscation technique.
I agree artificial complexity (whether in the code or in the software's usability) could be a way for someone to, say, deliberately subvert copyleft licences. An artificially unmanageable codebase would increase the cost of development for the company, though.
As for tricky installation processes, I believe the only way to get the official OpenBSD builds is by buying their DVDs. I don't think most OpenBSD users particularly mind compiling their own system, but I don't know for sure.
> If it takes days to install or the source is write-only code, it's no different from closed source software.
It is different, because the licence allows others to improve the software.
> > What is closed source anyway?
> This is asked as if there is no correct answer, but there is.
> Open Source software is software where the source is made available under an OSI-approved Open Source licence. Closed source software is software which is not Open Source software.
I believe you're missing the point. Parent is making a moral point and your talking about copyright laws and licences stamped by OSI. For one i'm pretty sure parent would much more trust GNU than OSI. Perhaps parent's point would've been clearer if they said 'non-free software' instead of 'closed source'.
And GNU licences define 'source code' as the 'preferred form of modification'. The reason for this being exactly parent's point. As an example, that's one (of the multiple) gripe i have with ml: some 100 lines of python defining a neural network with millions of params doesn't constitute the source code, neither do the trained params. The source is in this case non-textual, it's the training data and the state-dump of the IDE used to manage the training and inspect the model.
> > If it takes days to install or the source is write-only code, it's no different from closed source software.
> It is different, because the licence allows others to improve the software.
But that is pure legalese since it's intractable to modify it. It completely subverts the spirit of the licence, as such it is practicaly and in spirit closed-source.
Extending a bit more the argument, what we want isn't just free software, it's software that's also interoperable, where it's easy to reuse just a part, well engineered (minimaly complex), with well defined scope and powerful/precise interfaces, etc. That software is golden, the rest will just disappear in 20 years.
Thanks for this response. Hadn't meant to straw-man.
I agree it's important that our understanding of something like Free Software remain relevant and practical. At the same time though I think quality and freedom can generally be pretty well separated. If you release poor quality code under a Free and Open Source licence, we generally agree it still counts as Free and Open Source, despite that it's hard to work with. I think that's as it should be, although deliberate subversion might be an exception.
Are there any examples of this actually happening, though?
I imagine the best way to create obfuscated code is to use an obfuscator program, but the result of doing so is not considered to be source code, for our purposes (the preferred form of modification, as you rightly noted). If someone wants to deliver obfuscated source code and pass it off as Free and Open Source Software, they would need to program it manually, which would be severely punishing to their development work.
> what we want isn't just free software, it's software that's also interoperable, where it's easy to reuse just a part, well engineered (minimaly complex), with well defined scope and powerful/precise interfaces, etc.
That strikes me as clearly going too far. Technical excellence is not among the four conditions that define Free Software, neither should it be.
It also has absurd consequences:
• If you write a program in a language which then falls out of favour, do we say that it was Free Software at the time but no longer? (Software freedom is now defined in such a way that it is a function of which programming languages are currently in vogue.)
• If you are an outstanding programmer, you are better able to cope with poor quality code and with code in obscure languages, broadening what software you are able to work with. (Software freedom is now defined in such a way that it is a function of the individual programmer's skill.)
• If you develop a new algorithm and make the source code of your implementation available under a Free and Open Source licence, before you publish a paper explaining your new algorithm, the implementation is considered non-Free prior to the paper's publication, but Free afterward. (Software freedom is now defined in such a way that it is a function of available documentation and literature.)
Similar points might be made on the grounds of what hardware is currently available (does the non-availability of an emulator impact whether software counts as Free?), and what institutional resources are currently available (should laser-cutting software be considered non-Free by most, but Free by the relevant industries?). As an example, NASA's old launch programs [0] are at the intersection of these two concerns.
[0] https://qz.com/726338/the-code-that-took-america-to-the-moon...