Hacker News new | ask | show | jobs
by ac29 2314 days ago
I think it needs a "killer library". The core language is pretty easy to learn if you've used Python, but there aren't a ton of third party libraries, and the ones that do exist seem to be incomplete, poorly documented, buggy, abandoned, or some combination thereof.
3 comments

I got annoyed when it didn’t have a decent standard library to handle command line flags and arguments.

The examples given so far, are mediocre.

parseopt is incredibly cumbersome.

docopt is an incredibly poor design, that I can’t believe anyone thought this was a good idea.

And failing to have such basic libraries, I realized, this language has a long way to go.

I contemplated building my own library to handle such a need, but why, this doesn’t solve my problem of building something. And if it’s missing such basic libraries, then what else is it missing? The odds were too great, and too risky for me to commit my time to it.

There are many libraries for that, but I suggest cligen. It is the simplest command line parser I have found across all programming languages.
What if the Nim maintainers made some kind of continuous popularity measurement to let good libraries bubble up? Opens other problems I know, but may fix such scenario and accelerate Nim adoption?
There was an attempt a few months ago, but it was a little weird. But if you just want to find libraries relevant for your task (e.g. parsing the command line), there is https://nimble.directory where all Nim libraries are listed
I hadn't seen docopt before, but am curious why you think it's such a bad design.
you can try cligen and then argparse https://github.com/iffy/nim-argparse
making clones of the top 50 python libraries would make it attractive. familiar syntax! way more speed!
Many of the top 50 python libraries are wrapping a lot of code that is actually c, c++ or fortran. So I doubt that there is a lot of performance to be gained. Numpy is a good examples for that.
I have applied for a job at a company where they were switching from Python to Rust, because even though they were using Numpy, there was a lot of overhead in setting the data up to send to Numpy.
It's not those libraries' performances, but allowing people to port their own code with less friction for a presumed gain in performance.
How would one find these "top 50 python libraries" list?
I’d suggest based on PyPI download numbers, see https://hugovk.github.io/top-pypi-packages/
This would be super compelling.
I'll place my chips on mratism (Arraymancer, Weave, Laser) being the killer librarian. But it will take a decade or two to unseat Python.