First heard about nim last weekend. Was reading the comments of a /. article about Rust, which were of course pointing out the SJW cancer, then somehow got onto Reddit about languages not so infested with CoC and someone mentioned nim.
Downloaded it, tried it, and I'm pretty much hooked. Downloaded the source on os x and centos and ubuntu and it has installed flawlessly each time.
Since then I've written some simple 'hello world' gui programs and connected to Postgresql database, and once again the example code snippets just worked, and even when I had to guess at the syntax because the sample didn't show it, it still just worked first time.
This is all so easy, and so quick!!
Nim is my new favorite language.
The original post contains two interesting points that may or may not be connected. The first point, emphasized by the title, is that it (Nim) "all 'just works'". The second point, mentioned in passing, talks about dissatisfaction with the political culture in competing projects encouraging people to try Nim:
Was reading the comments of a /. article about Rust, which were of course pointing out the SJW cancer, then somehow got onto Reddit about languages not so infested with CoC and someone mentioned nim.
I've spent many years struggling with various questions in political philosophy, and how they apply to my career in IT, the Internet, and software freedom.
I believe that, whether or not there's a written "Code of Conduct" (CoC), all communities form a certain culture that has political characteristics. But perhaps certain political tendencies can help an online community "just work" better than others.
The main points I'd like to make here are: (1) you can't avoid politics, (2) agree to disagree, and (3) the non-aggression principle.
Can't Avoid Politics
I know that most people don't like "bringing up politics", but the problem is that a certain political bias already inevitably exists. Ignoring political topics doesn't make them go away. Perhaps (as OP points out) this is much less of a problem with the Nim community than elsewhere, which is a huge thumbs up for Nim - but Nim is not an island...
I would classify the bias that dominates most free software communities as socialist; anti-capitalist, anti- free market, and pro-government. This wouldn't be a problem in of itself - one has a right to hate corporations, move to a commune where everything is shared, etc - up to the point where you call for government force against others. Everyone is entitled to their own opinion, but problems arise when software code gets entangled with calls for violence against others.
As the result, most free software projects are becoming increasingly toxic to people who (like myself) deviate from those views.
Most people "go along to get along" and just ignore that political bias, and it is precisely the people who point out this bias who are punished as off-topic political hijackers / "trolls" - which is very unjust.
A few examples, large and small, of what I see as left-wing socialist bias:
- The concept of "free software" has been hijacked by the explicitly socialist ideas of Richard Stallman, including that it is necessary and desirable to use government force to "keep software free". The practice of free content predates the idea of copyright (or copyLEFT) by many thousands of years. From oral story-telling to earliest examples of free software, countless people have found it natural and desirable to give away information with no strings attached. And yet the idea of attaching pages and pages of legalese threats backed by government force to so-called "free" software is now seen as normal, while questioning it is seen as "injecting politics".
- Back in 2010, someone on the FreeBSD forum posted a petition calling for government intervention in the Sun/Oracle deal. I am no Oracle fan, but I posted replies arguing that government intervention is harmful and unnecessary. This resulted in the moderators deleting my account (including all prior posts, most of which were about FreeBSD), and this incident has given me a not-entirely-irrational phobia of contributing to free software ever since...
- IMHO, the worst example of left-wing political hijacking in recent years was all the propaganda for """Net Neutrality""" (an Orwellian term for strengthening blind faith in government to control of the Internet). This has given me additional cause to boycott many Internet institutions, including Reddit, FreeNode, and most especially GitHub. The latter betrayed the trust of millions of non-socialist developers who've been suckered into hosting their projects there - by turning them into tools of socialist propaganda! If you have any content on GitHub, you've spent months as an unwitting signpost for communist lies, whether you like it or not! </rage>
What software licenses are most commonly used by a developer community (see copyfree.org) and whether it remains married to GitHub are all decisions that have significant political consequences. (Nim is doing relatively well with the former, but not the latter.)
Agree To Disagree
In the vast majority of situations, differing beliefs are not really in conflict. You can have your beliefs, and I can have my beliefs.
For example, one could say:
- You can eat tofu; I can eat steak. We can criticize each-other's choices, through arguments and persuasion rather than force, but hopefully we can eventually find other topics of discussion.
- You can use spaces; I can use tabs. You can use import blah; I can use from blah import nil. We can use automated code reformatting tools to see the same code differently. (Note how "agreeing to disagree" encourages technological innovations that make it easier for everyone to get their way.)
- In your "SJW" culture you favor "affirmative action" to benefit individuals from demographic groups that have statistically lower rates of achievement. In our libertarian culture, we believe that everyone should be judged on individual merit. You can run your business how you see fit, and I can run my business how I see fit.
- The neighborhood WiFi service you're selling slows down nim-lang.org and speeds up oracle.com - so I will not use your service, and give my money to another ISP instead.
The Western Civilization achieved a relatively high degree of religious freedom not by the government regulating a "one true religion", not by banning all religious discussion, and not by it making sure all religions had the same number of adherents, but by the policy of "separation of church and state". I now likewise advocate for a separation of the state from the Internet and the free software ecosystems.
There are situations, however, where beliefs are genuinely in conflict and one side must give way. Examples:
- Your "right to swing your fist" cannot exist in the same physical space as my "right to not get punched in the face".
- Your wish for a new MacBook (or whatever) does not give you a "right" to just take (steal) one from somebody else.
- Your belief that tofu is better than beef (or vice-versa) does not justify using force against someone who disagrees.
- Your concern that a certain DNA marker, height range, sexual fetish, StarTrek captain preference, or whatever other measurable attribute is underrepresented within a certain online group may be admirable, but it doesn't justify holding a gun to people's heads until your ideal statistical criteria is reached.
- You believe that a text-file of legalese you've included in your "free" code is a binding contract that I've automagically agreed to. This untenable legal construct cannot be applied consistently, and there must be a more explicit threshold for what constitutes a binding contract. If you throw away a dollar bill with "by picking this up you hereby automagically consent to being my slave" written on it in tiny ink, your aggression against whoever picks it up will remain unjustified.
- Your disagreement with my router's QoS settings may encourage you to route your packets through other nodes in the network (thus making the network more resilient), but it does not justify getting the FCC to hold a gun to my head until I reconfigure my router to your liking.
(The decision of how these conflicts (the fist vs the face, the MacBook thief vs its owner, etc) should be resolved is not arbitrary, but dictated by objective logic. A system of inconsistent ethics (i.e. "it's OK for me to punch and rob you, but immoral for you reciprocate the same against me") is very problematic, but you can read about all that elsewhere.)
The Non-Aggression Principle should be the basis for any CoC, whether written or otherwise. We just need a minimal micro-kernel of rules to resolve conflicts (NO INITIATION OF FORCE!), and we can "agree to disagree" on everything else.
You read waaaaaay more into my original post than I was intending. TBH I posted that after a couple of beers and perhaps wasn't being as clear as I could have been.
The 'it just works' I was referring to was pretty much just the compiler, the libraries, and following along with the tutorials.
The compiler doesn't care about politics or codes of conduct or the equality vs equity debate.
Yeah, I can't seem to resist responding to a mention of Rust's "SJW cancer" with a pent-up rant about politics in free software ecosystems... (The GitHub situation has been particularly traumatic...)
I agree about Nim's technical merits. There's something about the "just works" qualification that, despite being very vague, definitely rings true. I've been especially impressed with how easily Nim has been ported to other platforms - with zero dependencies.
Can you point to some examples of this in the Rust community? As far as my experience goes, the Rust community has been nothing but great so I'm curious what you're referring to.
@libman that is a nice essay. Thank you for taking the time to write it up. Sadly I cannot agree with some of your points, in particular regarding net neutrality. Many ISPs have a monopoly, especially in the US. So letting them go on to do whatever they please, unregulated will be a nightmare.
I think a significant portion of nim users found Nim through Rust. Not sure why, but there used to be some sort of competition between the two (or at least Nim was more known in the Rust community).
That, if true, is very interesting. I would've thought that Nim's closest competitor would be D: both are GC by default, both a lot less verbose than Rust, both created by individuals without big .com / .org / .edu sponsorship, nearly tied on most benchmarks (and now even in my package ecosystem license freedom rankings), etc.
that is a nice essay.
I don't think that ad-hoc rant deserves being called an essay. Your polite tolerance of my rants (especially given that I've never contributed any code) is a great testament to the openness and geniality of the Nim community.
Thank you for taking the time to write it up.
To be perfectly honest, GitHub's ten-alarm "Net Neutrality" banners (appearing for weeks on top of every project, file, issue, wiki article, etc) has been a huge blow to me psychologically. Internet freedom is sacred to me, and having calls for slavery injected down my throat in the name of freedom was just too much... And perhaps the worst part is when people don't even see that they did anything divisive or controversial...
I now feel morally obligated to disassociate myself from GitHub - which is near darn impossible. A huge and growing fraction of the free software ecosystem is married to GitHub, including Nim and the vast majority of its modules and tooling...
I've resisted bringing up this issue as a separate thread, but I guess I've jumped on too eagerly when I thought that @KevinGolding brought up the issue of left-wing political bias first.
Sadly I cannot agree with some of your points, in particular regarding net neutrality.
I've not made any detailed arguments against "Net Neutrality" in my previous post. I've just said that it was a recent and particularly egregious "example of left-wing political hijacking" of free software communities - and one that most directly involves Nim.
It would have been great if GitHub used such a banner to raise funds for hurricane victims, for example, but what they did was very very different - and perhaps some people don't even see this. I'll make more detailed arguments against "Net Neutrality" in this post, but only to illustrate that there are two sides to this issue.
I don't expect anybody to ever change their political opinions, but what is most insulting is how the left no longer even sees anyone who disagrees with them as human. "Everyone must agree that Net Neutrality == freedom, no two ways about it, and anyone who disagrees is a bot for soulless flat-earther corporate shills"...
Many ISPs have a monopoly, especially in the US. So letting them go on to do whatever they please, unregulated will be a nightmare.
All claims of a "natural monopoly" are a conjecture that becomes a self-fulfilling prophecy, stifling technological innovations that would enable competition, but it is especially ridiculous in regards to the Internet. The Internet is a network, not a "monopoly".
There are two different visions of Internet freedom:
- A socialist vision of Internet freedom, based on faith that Mommy Government will make the Internet free. It pours opium on the government-created toothache of cable "monopolies", dulling the pain and enabling the illness to continue. The price of this opium is that everyone must trust the government to always put its own interests aside. All governments everywhere are magically benevolent, and they would never censor or discriminate against anyone, ever.
- A capitalist vision of Internet freedom, based on free market competition (which is how networks actually work). This vision would have avoided the cable monopolies in the first place, and encouraged a lot more and faster technological innovation with wireless (cellular, satellite, municipal wifi, drone wifi, mesh networking, etc) and locally owned ("last mile", neighborhood cache, IPFS, etc) connectivity technologies. You have a choice between dozens of ISPs, and you can connect to several at the same time, adding or dropping subscriptions as you see fit (ex. based on connection speed). Ideally you also use independent VPN(s), so your ISP(s) can't even tell what you do online much less discriminate.
Maybe most people prefer the former, but people who prefer the latter should still be treated with respect.
I just hope that you understand that what GitHub did has crossed a serious line. As far as I'm concerned it was an act of war, in the propaganda sense of the term.
May I suggest that it's probably healthier to leave the politics out of this?
It would be very nice if free software could be apolitical, but (as I've explained above) it is not.
You can't have one side of the issue (ex. Stallman, GitHub, etc) shouting political propaganda with a megaphone, but as soon as someone disagrees - "OMFG, he brought up politics!? What a vulgar uncivilized brute!!! Fetch my smelling salts, O goodness, I think I shall faint!"