Académique Documents
Professionnel Documents
Culture Documents
Looking to keep my programming skills current, I keep an eye out for other
languages to learn that I may nd interesting, useful, or just fun. With that in
mind, around 2015/6 I heard about Nim, then I saw this video, and after
reading this article I started trying to learn it to do some really serious stu . It
looked like it could be a nicer alternative to C/C++ to write machine level
code in.
So I join Nim’s forum, reading the threads and posts, looking at its docs, and
trying to get a feel of its community and the direction of the project. One
thing that became an immediate frustration was a lack of good (or any)
documentation, so many of my initial posts (as other newbies) were questions
about how to do basic things. Also, coming from a dynamic language like
Ruby to a compiler based language required a shift in thinking.
According to its wikipedia page, Nim was created by Andreas Rumpf (whose
forum handle is araq ) and rst appeared in the public in 2008. Here's a
video presentation he gave in 2015. As I write this, it's at version 0.18.0 (for
my Linux OS) pushing to get to 1.0.
Let me say now, Nim has some great technical potential. I can now write Nim
coded applications that are much faster than some C++ versions. But it has
remained a small niche language, not well known to the broad programmer
public, not because of a lack of technical merit, but more so because of the
attitude of its developers. They need to understand and appreciate, if you
aren’t nice to users, and respect them, and try to make them happy , your
project won’t grow.
Just as Ruby has a nice community because of Matz, Nim has nowhere near
the friendly community that creates user loyalty and love, because Nim’s devs,
led by araq , seem to (so unnecessarily) go out of their way to be
condescending, rude, and in my case, petty and vindictive. Why? Read on.
There’s really two parts to it. The rst part deals with the discussion around
how to get the phrase to compile (ultimately by me guring out how to
rewrite it so it would compile). Then I came back to the thread a week later
trying to convince the devs to add some syntactic sugar to the
parser|compiler so it could do this automatically, to make programmers' lives
easier.
You can see from the full thread, though I couldn’t convince most responders
to see it my way, they didn’t get personal, except for araq . For whatever
reasons, he's had a history of trolling my posts, and he starts out here being
antagonistic, and also mischaracterizes what I say, shown below.
That's just your opinion... and Yes, let's document the features that
Nim does not have. Brilliant idea. and And Swift deprecated ++
After trying to ignore these comments, I nally felt I had to respond to him
and correct his mischaracterizations of my posts. Here’s the full response of
my last post.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Also Ruby, Crystal (with Nim) allow this programming style, but make it easy
for programmers to do it.
rescnt
(....)
So, in all three of these languages (as a non exhaustive sample) this
programming paradigm is allowed and possible. However, while Nim could
also provide the syntactic sugar that Ruby, Crystal, et al provides, you
insist to force the programmer to become a manual parser to conform to your
whims, than to provide the simple means to deal with these cases, and make
programmers lives easier.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
After making this post I was nished with the thread. Five other responses
followed, with araq posting twice, with his last post in the thread being this.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
I checked your previous posts a bit. This was your last impertinence.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
Here was a person who obviously had a long simmering antagonism toward
me, seething with invective, searching to justify punishing me. Of course, he
only needs a bit of a reason to do so (as Nim's creator, and a forum admin)
so no due process is necessary. But then he states The real reason for the
action, my impertinence. Here's its de nition that most likely captures what
he meant.
Here’s just one example, in a thread started a month before I was banned
(June 1, 2018), where two other people spoke out about how they felt badly
treated, and unwelcomed, by araq speci cally, and other devs. Note how
others in the thread make excuses for araq's behavior.
Going Forward
Nim recently issued a notice for its 2018 survey. But from the 2017 survey
results, under What improvements are needed before v1.0 can be
released? , the top item was Documentation. Creating more, better, and
useful documentation (of all forms) would absolutely attract more users and
PRs (pull requests). I think a bulk of araq 's attitude toward me has come in
my criticism of, and suggestions to improve, documentation.
Nim would also attract more none programming help and bene ts (doc
producers, translators, videos, tutorials, testimonials, user groups, nancial
support, etc), if the devs realized these non-programming elements are
essential for growing it. Just because you build it doesn’t mean people will
come, or stay, especially if not treated right and made to feel unwelcome.
It should be without saying that the Nim admins need to unban me, and then
institute (and enforce) a clear Code of Conduct for the forum, which applies
to themselves as well.
The future will show whether Nim devs learn how to create a friendly and
welcoming community, else Nim will litter the oor of programming
language history as just another unful lled promising idea which never
achieved critical mass and use.
Responses
Next story
How to think like a programm…