> You can’t become a competent programmer by using Windows or MacOS. Linux or BSD are your only real choice, because that’s where all the interesting development happens.
uh excuse me?
> You can’t become a competent programmer by using Windows or MacOS. Linux or BSD are your only real choice, because that’s where all the interesting development happens.
uh excuse me?
How so?
When talking to a non-technical audience my experience has been that the term "free software" is misinterpreted more often than not. If a name always requires an ancillary explanation ("...as in freedom, not beer") and collides with a common and wildly different meaning then it is not a good name.
"Open Source" advocates realized early on that the name was a fatal liability and switched to a significantly better one.
Trying to rebrand free (as in freedom) software movement as "libre" is probably too little, too late but I don't think it hurts to try.
After all, "libre software" has been used in English since the 1990s, the EU was writing legislation about libre software in the 2000s, the Free Software Foundation has hosted an annual LibrePlanet conference since 2006, and even gnu.org recommends using terms like "free (libre) software".
There isn't really any good detailed up to date documentation online about either. The docs for linux/bsd aren't perfect either but at least there you can always fall back on the source. That makes a massive difference.
For example, one of the reasons I switched from Java to Go back in the day is that I could actually read the source code of the APIs I was using. So I could fully understand the standard library whereas in Java it was all obfuscated bytecode. I'm not sure if the situation has changed with OpenJDK but my point stands, an open core system is far superior platform for learning.
You can see this to some extent in other professions. Cardiologists and neurosurgeons get paid big bucks because their job is life or death stuff and requires skill and innovation. But would you want to work with a cardiologist that goes around sneering at every other kind of medical professional and saying they're not real doctors? Of course not, because they're assholes and when people like that screw up they'll blame their colleagues or patient rather than admit fault.
Back in the tech context, you can pursue authenticity into absurdity. You're not a real programmer unless you use (language). You're not a real programmer unless you contribute the language. You're not a real programmer unless you get into kernel hacking. Sure, you call yourself a programmer, but do you even assembler? Programming? Sorry, I design chips. Chips? Do you even basic circuit designs. Me, I roll my own capacitors built from carbon nanotubes...and so on up through materials science, physics, and mathematics.
What APIs were you using? I haven’t used Java in a while but one of the main attractions for me was that I could download and read the source code. (I’d been in the closed-source Microsoft ecosystem before that.)
If you do want to “screw” with the system on Windows, one option would be to replace the MS stuff one DLL at a time. You might take a DLL from ReactOS for example and make it work with your version of Windows, extending or altering it as you desire.
uhm... when was this? the jdk has included "src.zip" since.... forever(atleast 15 years). This included the entire class library, and any half competent IDE could(and still can) view it directly if you simply went "view source".
This goes back to before oracle purchased sun, and as such way before openjdk aswell.
There isn't really any good detailed up to date documentation online about either.
That's not true, at least for Windows. MS has published a lot of docs on their site, e.g.:
https://learn.microsoft.com/en-us/windows-hardware/drivers/i...
What does get in the way with newer versions of Windows is driver signing, but that's not a huge obstacle.