Live data from Hacker News

Nim Advocacy and Promotion Strategies

forum.nim-lang.org

41–50 of 59 posts

Re: Nim Advocacy and Promotion Strategies

#41
post #35

Earlier quoted context omitted.

You may be in luck: https://github.com/filcuc/NimQml

Thank you for the link, but I can reasonably expect that Qt bindings for Nim either exist or will become available soon, as most languages that get any traction get them. I still don't know, however, if it's a good choice to try and put a GUI app together in Nim. Will it surprise me with a huge binary, like Rust does? [1] Will it be easy to develop in it on multiple platforms? I can find all those things myself, but…

Having seen multiple young open source projects, like Nim, play themselves out over the course of my many years in the Bitcoin space, I expect the savviest developers at this point to benefit most from Nim by establishing themselves as core contributors.

The devs who got into Bitcoin on the ground floor in 2011 and 2012 are three years later on the most sought after venture backed teams, with the whole world hanging onto their every last word. Young and profoundly promising languages like Nim offer a similar opportunity if you're willing to risk it.

It could very well be better to use the myriad of other, more mature and stable languages to solve truly pressing issues. Nim is very young, and the risk:reward ratio is skewed more towards contributors than users who can't risk bugs.

Re: Nim Advocacy and Promotion Strategies

#42

Earlier quoted context omitted.

Nim compiles down to C and can produce code to run directly on bare metal. My understanding is that Go and Rust (to a lesser degree) require a runtime. Perhaps someone with better knowledge of all three languages could chime in.

Rust's runtime has been reduced to bounds-checking of array access, IIRC. So to a much lesser degree, and I believe Nim also provides this behavior by default. Go is garbage collected and has an opinionated ABI and runtime. Completely different beasts.

Yes, agreed, though I really wish Rust could compile to C: http://www.reddit.com/r/rust/comments/2e8t9k/my_1_wish_list_...

Someone has revived the LLVM C Backend. Hopefully this could be a path to Rust->C compilation: https://github.com/draperlaboratory/llvm-cbe

Compiling to C is so important to me that I may check out Nim as an alternative to Rust, despite liking Rust very much.

Re: Nim Advocacy and Promotion Strategies

#43
post #34

Earlier quoted context omitted.

That kind of thinking will only prevent adoption, not help it. Aesthetics are important to technical subjects as well. It shows that a lot of time and consideration have gone into every part of the project, not just the technical side. It's also a good sign of community support/interaction. I will agree that content is the most important, but you shouldn't write off aesthetics so easily, especially when you want peop…

Try to google some popular languages. Use http://archive.org/ to see how their respective pages looked like in the past. I find it hard to believe aesthetics helped their adoption. Interesting article, related to web design and conversion rate: https://blog.kissmetrics.com/shocking-truth-about-graphics/

Here's Ruby for example, before it was popular: (2004) https://web.archive.org/web/20040211074335/http://www.ruby-l... and here's when/right before it (arguably) started picking up a community https://web.archive.org/web/20070805190709/http://www.ruby-l... (2007)

Popularity being based on the Rails 2.0 release since that's when Ruby/Rails seemingly started to take off. It's a bit before my time so if anyone knows better feel free to correct me.

Re: Nim Advocacy and Promotion Strategies

#44
post #34

Earlier quoted context omitted.

Try to google some popular languages. Use http://archive.org/ to see how their respective pages looked like in the past. I find it hard to believe aesthetics helped their adoption. Interesting article, related to web design and conversion rate: https://blog.kissmetrics.com/shocking-truth-about-graphics/

Here's Ruby for example, before it was popular: (2004) https://web.archive.org/web/20040211074335/http://www.ruby-l... and here's when/right before it (arguably) started picking up a community https://web.archive.org/web/20070805190709/http://www.ruby-l... (2007) Popularity being based on the Rails 2.0 release since that's when Ruby/Rails seemingly started to take off. It's a bit before my time so if anyone knows bet…

So we can probably agree that at least Ruby didn't get popular because of graphical design.

And here's Nim:

http://nim-lang.org/

It looked pretty good when I saw it for the first time today. Told me what it is about concisely. I don't see how a better design could significantly improve Nim's adoption.

Edit: I did completely miss the carousel at top of the Nim main page. I think it'd work better, if it was just serially on the page instead of the widget. Same content, less "design".

Re: Nim Advocacy and Promotion Strategies

#45

Earlier quoted context omitted.

> Nim: "no idea what to write here" That's a good point. One could try "faster, safer Python" here, but I agree that it should be discussed and made official, so that anyone seeing Nim's homepage would immediately know what it's about.

Main problems people have with Python are: -very slow -GIL -not enough type checking Nim fixes those while keeping things which attract people to Python in the first place. It should be enough of a selling point. I write most of my code in C + Python (and sometimes in Python + C). For me Nim ticks all the boxes, even the minor ones (how syntax looks etc.). I can't wait to give it a try once I am done with my current…

Exactly. This is why I mostly agree with the comment which said that Nim should be advertised directly to Python programmers. Pythonistas have a hard time finding a language which would be faster, lower-level but still elegant, simple and expressive - and Nim is a solid candidate here. It's not 100% aligned with Python design, but it's much more similar to Python than Go is.

Re: Nim Advocacy and Promotion Strategies

#46
post #9
post #6

Alright, then show me! For example, the beginner tutorial was linked a while ago ( http://nim-lang.org/tut1.html ) and I wouldn't criticize it at all, because it's well written, but it doesn't show me why I would care about Nim when there are dozens of languages I could choose instead. It looks like Python, with a little more types. Fwiw, I'm also a language geek and my favorite language is Factor. If I wanted to eva…

I am excited about Nim because it compiles to C that can run on an ARM microcontroller. I believe this was a possibility at some point, but I don't know if this is a priority for Araq. So (personally) I see it as a (potential) "C replacement for embedded systems".

I'm just trying Nim for the first time. How do you compile to totally self-contained C?

I tried pulling the files out of nimcache/*.c, but it is wanting to include nimbase.h.

Is there a way to compile an entire Nim program to a single self-contained .c file (ie. an amalgamation, aka SQLite?)

Re: Nim Advocacy and Promotion Strategies

#47
post #9
post #6

Alright, then show me! For example, the beginner tutorial was linked a while ago ( http://nim-lang.org/tut1.html ) and I wouldn't criticize it at all, because it's well written, but it doesn't show me why I would care about Nim when there are dozens of languages I could choose instead. It looks like Python, with a little more types. Fwiw, I'm also a language geek and my favorite language is Factor. If I wanted to eva…

I am excited about Nim because it compiles to C that can run on an ARM microcontroller. I believe this was a possibility at some point, but I don't know if this is a priority for Araq. So (personally) I see it as a (potential) "C replacement for embedded systems".

That's truly exciting. I wonder how well it'd run on Altera Nios 2 with, say, 16 kB of RAM. If Nim works well for that case, I'll start to use it yesterday!

Re: Nim Advocacy and Promotion Strategies

#48
post #44

Earlier quoted context omitted.

Here's Ruby for example, before it was popular: (2004) https://web.archive.org/web/20040211074335/http://www.ruby-l... and here's when/right before it (arguably) started picking up a community https://web.archive.org/web/20070805190709/http://www.ruby-l... (2007) Popularity being based on the Rails 2.0 release since that's when Ruby/Rails seemingly started to take off. It's a bit before my time so if anyone knows bet…

So we can probably agree that at least Ruby didn't get popular because of graphical design. And here's Nim: http://nim-lang.org/ It looked pretty good when I saw it for the first time today. Told me what it is about concisely. I don't see how a better design could significantly improve Nim's adoption. Edit: I did completely miss the carousel at top of the Nim main page. I think it'd work better, if it was just serial…

You're missing the entire point. If they had a better design it would probably interest people more, pertinent information would be more visible, and it wouldn't look like it came out of 2002.

This is pretty much the "sales" page for Nim and it looks outdated and unmaintained. For comparison check out the Rust homepage. It's not "flashy" but it's simple and looks fairly nice. It gives you a simple example and tells you why you should be using Rust in as few words as possible.

http://www.rust-lang.org/

Here's some other sites that have fairly good designs that show that the community cares about how they and their language come across.

http://elixir-lang.org/ http://rubygems.org/ https://www.ruby-lang.org/en/ https://new-www.haskell.org/ http://www.scala-lang.org/

All of those languages/tools show that the community/devs care about how they and their language look to others/potential adopters. I'm not saying that having a great site design (not graphical design, that's different) are going to make Nim the most popular language on the planet. I'm suggesting that it can, and will help if they move forward and pick up a more modern design and simplify the content to get their point across.

Re: Nim Advocacy and Promotion Strategies

#49
Lack of tutorials...

Learning the syntax/features of the language should be part of documentation, not a tutorial.

"Hello World" as the core/intro example with nothing else after that (or trivial command-line programs) will not get many adopters.

Show people how to build REST APIs, GUI programs (like a text editor), a small web-server and maybe some other scientific/math example.

Showing just a few features and then saying "go build" will not get normal people to adopt the language. Only "savants" will pick it up.

Give examples/libraries and people will build on those.

The syntax is also not that close to Python. It is obscure in some places and not as readable. If you're going to compare it to Python, do a readability test:

Write the exact same application in Python and Nim and then ask somebody else to compare the 2.

I tried to pick up Nim, but I was fighting against it every time I tried to go beyond a trivial CLI program.

I'll take Pythons slower implementation with 3000 libraries over Nims "C-like" speed where I can't even build a REST API.

I like Nim, but if all the effort of promoters is just promotion, the language will stay where it is.

You geniuses working on Nim for a long time need to share your examples and show the noobs how you built things with decent screencasts/tutorials/lessons.

Something tells me that even just 3 decent examples where real applications are built (eg. a game like Snake using a GUI and game-engine/lib) will get +1000 Youtube hits in no time.

Re: Nim Advocacy and Promotion Strategies

#50
post #15

Earlier quoted context omitted.

Won't Rust and Go likely get there equally easy?

Nim compiles down to C and can produce code to run directly on bare metal. My understanding is that Go and Rust (to a lesser degree) require a runtime. Perhaps someone with better knowledge of all three languages could chime in.

Rust has been used to write code that runs on bare metal too. Typically, this is done by using #![no_std], since the standard library depends on things like jemalloc and libc stuff. Everything that doesn't depend on these is in libcore.
Post reply on HN