[–] TheCompanionCube 0 points 4 points (+4|-0) ago  (edited ago)

I prefer free and open source software when possible, but use a lot of closed source proprietary software for day to day tasks in and out of work. I don't really every bring my political philosophy into it.

Your post skims over the benefits and ends up sounding like a sales pitch for Nim. Ill add some I'd these looks to my reading list nonetheless...

[–] libman [S] 0 points 1 points (+1|-0) ago 

Thank you for your feedback.

Your post skims over the benefits and ends up sounding like a sales pitch for Nim.

That's why I separated out the Nim pitch into a comment, and focused the topic post on the problems within the software industry. Reasonable people can disagree on how to tackle those problems.

[–] libman [S] 0 points 3 points (+3|-0) ago 

After thinking about software political philosophy for many years, I believe that the Nim is now the strongest candidate for the best programming language to focus on. (Perhaps D is second.) I welcome a constructive debate on the question of which programming language is the most suited.

I recommend Nim because:

  • Nim is 100% grass-roots and independent. It was started as a hobby project by a brilliant German programmer, who remains the BDFL. This makes Nim much more suitable for freedom-loving projects than languages that are sophisticated advertising campaigns for left-wing government-loving companies and organizations: Google (Go, Dart, V8/NodeJS, etc), Microsoft (C#, .NET, TypeScript), Oracle (Java), Mozilla (Rust), Facebook (PHP, D), etc. Nim does have paying sponsors, especially in blockchain decentralized apps and gaming industries, but that is much better than the entities mentioned above.

  • The #1 way in which commies subvert open source projects is Stallmanism: they fool everyone into encumbering their code with restrictive anti-market commie legalese / automagical "contracts" that no one really understands, and then claim that freedom is only possible through socialism and government force. You can't write a decent app in many languages without pulling in tons of modules and supposedly becoming subject to a zillion pages of legalese! Please read copyFREE.org - our answer to copyLEFT for a non-communist perspective on software freedom. I've analyzed the software licenses used by various programming language ecosystems, and Nim is the most copyfree one I've found! All language components, compiler, tooling, standard library, IDE integration, and the vast majority of third party modules (currently 706 of 826) are copyfree. Also, by compiling to plain C (for which there are many compilers), Nim is less dependent on the possibility of LLVM stabbing us in the back than D, Rust, Julia, Haskell, etc.

  • The #2 tool for commies is anti-merit "codes of conduct". Nim is one of very few significant programming languages that said no to SJWs pushing CoC!

  • Nim is a language that was designed for high-IQ programmers, not script-kiddies or easily-replaceable third-world diploma-mill drones. But that doesn't make it more difficult to use, just the opposite! Many things in languages like Java and C# are corporate group-think that intelligent programmers do better without. In this Nim takes the opposite approach from Go, which tries to dumb things down too much, resulting in soul-crushing repetitive and ugly code.

  • Nim is still little known, but is growing rapidly. I recently compared Nim's module count to one year ago, and there was 32% growth! Of all programming languages with a module system (NPM, NuGet, PyPI, Ruby Gems, Lua Rocks, CPAN, Maven Central, etc), Nim was the second fastest in growth (after Rust). Getting into the best programming language before it becomes really popular has many advantages, and gives you a chance to influence many things.

  • Nim has a really beautiful libertarian syntax (if you like Python, and you should). Take a look at this example comparing it to Rust, or more examples on Rosetta Code. It's the best looking almost-as-fast-as-C language out there! And it has shortcuts that even Python doesn't have, like a less annoying approach to object orientation, UFCS, case and underscore insensitivity, making unnecessary parenthesis optional, etc.

  • Nim is BS-free and thus easy to learn. If you understand Python (which is the best language for teaching kids, IMHO) and the basic concepts of data types, then you're ready to try Nim. Nim has very advanced features that you can learn along the way, but you can just ignore them to write what you could otherwise write in Python.

  • Nim is a very very fast systems language, about competitive with Rust and D, and consistently benchmarking ahead of Java, C#, Go, Haskell, and of course all scripting languages. It can become more competitive with C/C++ and Rust when more libraries support manual memory management. Nim is also starting to dominate Web framework benchmarks, although this work has not yet been completed. Nim also makes it very easy to make use of existing C/C++ libraries. So Nim could replace not only userland languages like Java and Python, but even C/C++ for kernel development as well.

  • Nim produces very lean binaries that are smaller than Rust, D, Crystal, and of course Go, Haskell, Mono, etc. This makes it second only to C/C++ for writing small commands (see Unix philosophy), and now for the WebAssembly target as well.

  • Despite being a high-productivity language, Nim is very type-safe, for conservative programmers who care about quality. It also has additional safety qualities: GC by default, pure functions, encourages static, easy concurrency, etc.) Nim has been described as Ada with a much better syntax.

  • Nim is extremely portable, and has been tested on many versions of Unix (including all BSDs, Linux, Solaris, AIX, plan9, etc), Windows / ReactOS / DOS, Apple, Haiku, Pi, old Nokia phones, etc, etc, etc. Because it can compile to C or JavaScript (and other targets), it can run on any device with a compiler / interpreter for those languages.

Please let me know what you think.

(Imported from Reddit)

[–] aCuriousYahnz 0 points 1 points (+1|-0) ago 

Been a developer long enough that I don't want to mess with programming when I'm not at work. I don't want to be on a computer when I'm not at work. Basically just stopped purchasing any electronics.

[–] libman [S] 0 points 0 points (+0|-0) ago 

Most people cannot permit themselves this luxury. Programmable digital technology is everywhere, and staying productive, competitive, and even alive will depend on it more and more...

This is why software freedom matters a great deal, and letting commies like Stallman hijack and define this cause is absolutely horrible...

[–] oohhhhcanada 0 points 1 points (+1|-0) ago 

Intelligence agencies, corporations, corporate spies all welcome the chance to help with "free" code. Installed on as many things as possible. Take a look at any large Linux product, like OpenWRT, check how many contributors it has. It isn't possible to know who 3% of the contributors are, and what their motives are. Checking all source code is virtually impossible. Checking what may be embedded into a compiler or interpreter is also nearly impossible. Coders are too busy writing new code or fixing old code, ABC agencies and affiliates are busy embedding hidden features, phone homes, and back doors. Free maybe isn't totally free. This applies to open standards as well, one wouldn't want to think someone at an ABC agency would weaken encryption or security of a standard in a way impossible to correct after millions of products are produced. Nothing like free open standards. Of course proprietary code from friends like Microsoft, Google, Apple and a slew of others does similar stuff. The money shouldn't go to the open source, but to validating it. Open standards should offer very high cash rewards for finding a major security flaw before being adopted. Routers and switches should be evaluated by UL or some similar group not only for electrical safety, but code safety. It wouldn't be cheap, but may help limit exploits.

[–] libman [S] 0 points 1 points (+1|-0) ago 

Very interesting points, thank you.

It isn't possible to know who 3% of the contributors are, and what their motives are. Checking all source code is virtually impossible.

It may be impossible to kill 100% of the germs, but that doesn't negate the benefits of good hygiene. We need to limit the attack surface (so to speak): know where your software is coming from, in what ways it can hurt you, and have as many eyeballs on that code as possible.

Which I why I argue that we need a right-libertarian software freedom movement to counter the left; defining our philosophy and focusing on specific software ecosystems and projects - ones that are already SJW-free and focused on quality auditing (ex. OpenBSD).

I can think of three ways in which software developers with bad motives can harm you:

  • Malware. One must obviously practice good security policies, starting with the highest security and code auditing standards for the privileged code, signed software repositories, and running userland apps under the least privilege possible. If your weather app is malicious, it shouldn't have the power to do anything but display bad information - not have any possibility of allowing remote access, deleting or altering other files, stealing your crypto-coins and other secrets, etc. The odds of you installing a malicious app are very small if the code is cryptographically checksummed and comes from a conservative and discerning repository (like the OpenBSD ports), meaning thousands of other security conscious people have checked this code before you. Using a better programming language with higher-level syntax and better abstractions (like Nim or D instead of C/C++) can make it easier for more people to read the code.

  • Legal entanglements. Most people don't pay attention to this, or think that all "free" software is equally free, but drawing a line with license freedom is my utmost requirement. GPL and even the Apache license are not free enough. All permissible licenses merely say: "do what you want, just don't sue me and don't claim you wrote my code". The software cannot claim that you've automagically entered into a contract and obligate you to do anything.

  • Ideological propaganda. It limits one's ability to morally condemn MSNBC while being addicted to C#. (Or the Google Memo and Golang, etc, etc, etc.) I once even made a fuss about the 'B' in BSD, but one must pick one's battles...

[–] [deleted] 0 points 1 points (+1|-0) ago 


[–] libman [S] 0 points 1 points (+1|-0) ago 

Thank you for your reply. :-)

[–] icecoldpopsicle 0 points 1 points (+1|-0) ago 

I used to say i preferred open source, now that linux fell to the crazies i don't know man.

[–] libman [S] 0 points 0 points (+0|-0) ago 

This only supports what I'm proposing: picking out the least crazy options (OpenBSD?) and focusing on them. If they are less popular projects, that's actually an opportunity for non-crazy people to affect them and keep the crazies away in the future.

[–] roznak 0 points 1 points (+1|-0) ago 

None, Code first! Irrelevant of the tools, languages, tools,....

[–] libman [S] 0 points 0 points (+0|-0) ago 

Thank you for your feedback.

Reasonable people can disagree on the importance of the problems I've listed and my proposed solutions. But I was hoping to get a more thorough counter-argument.

What will you do if the companies / online communities behind those "tools, languages", etc call you a "racist sexist nazi scum" (regardless of what you are) and ban you? I've linked to many examples, and experienced this in my own life. Wouldn't you rather contribute your money / expertise / code to projects that share your values?

(And I'm not saying that OpenBSD, Nim, etc are perfect, but that we could eventually come up with a focused software stack where this won't be a problem.)

[–] roznak 0 points 1 points (+1|-0) ago 

I am not going to waste time on these CoC communities. As I said, Code comes first for me. I am not contribute code to a team that does not have a winners mentality.

[–] TheCompanionCube 0 points 0 points (+0|-0) ago 

Can a language ban you?

[–] psimonster 0 points 0 points (+0|-0) ago 

I will not be chased off the use of software, especially that which I've spent years learning, by loathsome maggots who had no hand in building it. If I find it necessary I will join or support an advocacy group for people who aren't freaks to push back on these barnacles. What happens when a virgin project you adopt succumbs to the CoC?

[–] libman [S] 0 points 0 points (+0|-0) ago  (edited ago)

What happens when a virgin project you adopt succumbs to the CoC?

The coordinated right/libertarian FOSS project entryism that I'm advocating would mean more of that project's contributors / users / patrons would be against CoCs and other left-wing power-grabs. And if it does happen, we'll have more power to fork it.