It appears most of the comments made to my original post are not addressing the 
issue I raised, which is increasing the exposure of Nim. In fact, some 
commentators seem to be suggesting they don't see a high need to increase Nim's 
exposure. I think this is a very insular view and attitude of the world and 
detrimental to Nim's development, adoption, and future.

I also totally agree that every language (be it programming or human) is 
inherently reflective of a distinct community of people and their way of 
thinking about, interacting with, and solving problems (and what is even 
considered a "problem").

**Consider the Tale of Two Languages**

**Forth**

Most people have never heard of Forth, which was created by one person, Charles 
Moore, and first released to the world in 1970. He wrote it for himself so he 
could easily control radio telescopes at the U.S. National Radio Astronomy 
Observatory, where he worked.

[https://en.wikipedia.org/wiki/Forth_(programming_language](https://en.wikipedia.org/wiki/Forth_\(programming_language))

It is a stack based language that's been implemented in hardware cpu systems 
(Forth Engines), many of which have fueled NASA, and European Space Agency 
(ESA) missions.

[https://en.wikipedia.org/wiki/RTX2010](https://en.wikipedia.org/wiki/RTX2010)

[https://www.forth.com/resources/space-applications](https://www.forth.com/resources/space-applications)/

[https://www.forth.com/resources/forth-apps](https://www.forth.com/resources/forth-apps)/

[http://forth.org/successes.html](http://forth.org/successes.html)

Many of you are probably too young to remember that in the 1970's into the 
early 1990's HP was a major player in calculators (especially scientific ones), 
before the advent and ubiquity of "personal" computers. HP calculators were 
based on Forth, and used reverse-polish-notation (RPN) and stacks. To this day, 
IMHO, they are the best calculators on the market (technically) but other 
cheaper brands (Casio, Texas Instruments (TI), etc) rule that market now.

When I was an engineering student at Cornell in the early/mid 1970's it was 
considered "cool" to have an HP calculator (especially a programmable HP-45, 
which I saved to pay a ransom sum to get). So when I started working for NASA 
in 1979, and assigned to use Forth on prototype flight/ground systems, I felt 
right at home.

Forth is one of the most powerful programming environments you can ever use. It 
allows you to do literally anything you can thinks of, if you can think of it. 
Whatever the cpu could possibly do, Forth allowed you to control every 
register, instruction, and byte of memory of it.

However, like becoming a "really good" violin player, you had to appreciate, 
learn, and practice using its capabilities, otherwise, like most people who try 
to play the violin, it just becomes a piece of wood with strings attached. If 
you take the time to master it, you can make people laugh, dance, or cry, 
depending on how you play it.

To this day, Forth has a vibrant and vocal user community, but at best now, 
it's a niche language (though sometimes it's some company's secret development 
language).

[https://groups.google.com/forum/#!forum/comp.lang.forth](https://groups.google.com/forum/#!forum/comp.lang.forth)

Why have most of you never even heard of Forth, or seen articles on it, or 
conferences about it, etc (and all these still do occur)?

The major reason is because people in the Forth community have never had the 
vision, and ultimately the desire, commitment, and unity, to change the 
language to expand its reach, by making it more friendly and useful to a wider 
community of people other than themselves. Does this sound familiar?

**Ruby**

Now consider Ruby. It too was created by one person, Yukihiro "Matz" Matsumoto, 
and released to the world (Japan) in 1993.

[https://en.wikipedia.org/wiki/Ruby_(programming_language](https://en.wikipedia.org/wiki/Ruby_\(programming_language))

It's highest goal is, as quoted from Matz in the wikipedia article:

> ..we need to focus on humans, on how humans care about doing programming or 
> operating the application of the machines. We are the masters. They are the 
> slaves."

Matz, and the Ruby development team, and its community, takes this goal very 
seriously.

So for the traditional Christmas release (December 25, 2017) of the new major 
version 2.5, it included the method `prepend` to `class Array`, solely because 
of community desire for (English) linguistic consistency, since there already 
was an `append` method. And both of these are aliases of the original core 
methods `unshift` (add elements to beginning of an array) and `push` (add 
elements to end of an array).

These additions were soley requested and added to the language because people 
wanted to write better readable code. So now, instead of writing: 
`ary.unshift(1,3,4)` and `ary.push(5,6,7)` you can write `ary.prepend(1,3,4)` 
and `ary.append(5,6,7)`. Anyone who understands English can read such code and 
immediately knows what it's doing.

[https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5](https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5)/

This commitment to user happiness means Ruby's users and community will always 
be working to make themselves more happy using it, and thus it will be around a 
long time.

**Nim**

I think Nim's developers and community needs to become much more flexible with 
the language to accommodate users, since just about everyone who will use Nim 
will come with experiences from other languages and have certain expectations 
and desires. It's just a given of human nature.

And you can't/won't get users if you don't have greater exposure and visibility.

Nim doesn't even earn a listing on wikipedia's History of Programming Languages 
page.

[https://en.wikipedia.org/wiki/History_of_programming_languages](https://en.wikipedia.org/wiki/History_of_programming_languages)

and has a meager individual page, though (currently) it's over 9 years old.

[https://en.wikipedia.org/wiki/Nim_(programming_language](https://en.wikipedia.org/wiki/Nim_\(programming_language))

I think Nim has very good technical merits as a programming language. Other 
languages, however, are eating Nim's lunch because they have larger and more 
friendly/accessible communities, better documentation, and more public 
mindshare.

Technologies rarely prevail solely on technical merit however, (remember VHS vs 
Betamax), because people (human beings) rarely use technical merit (of 
anything) as the sole, or even highest, priority/criteria for choosing to use 
them. This is a severe blindspot that some commenters, and Nim developers, seem 
not to want to acknowledge. Just because you make a faster (fastest) car 
doesn't mean people will choose to buy/use it just to go to the grocery store.

Nim deserves wider use. But in order to achieve this it needs much greater 
exposure than it currently has. And in order to get this greater exposure its 
adherents/community needs to work more on the non-technical stuff to attract, 
educate, and please (make happy) newer users.

**It really is all about making people feel comfortable and happy using the 
language.**

Reply via email to