Add more details on Nim cons
parent
33d7c656cb
commit
42af4474f7
@ -35,6 +35,10 @@ Next let's try to collect various language options, with their pros and cons:
|
||||
### Nim
|
||||
+ 👍 Nice rational syntax with lots of features
|
||||
+ 👍 Compiles to JavaScript or WASM (via either C/C++ > emscripten or a third-party LLVM backend)
|
||||
- ⇓ The user community is very small, and even the most basic tools and libraries seem sporadically maintained. *(Aaron)*
|
||||
- The best-maintained linear algebra library I can find is [Neo](https://github.com/andreaferretti/neo). It's the only linear algebra library mentioned in the [SciNim](https://scinim.github.io/getting-started/overview/index.html) scientific computing ecosystem overview. Unfortunately, it's been [broken](https://github.com/andreaferretti/neo/issues/50) by a language update since January 2023, and the author doesn't seem to be using Nim anymore. I think the package is unlikely to be fixed unless we do it ourselves.
|
||||
- There seems to be a command line interface bug in `nlvm` that causes the basic examples in the README to fail. We can work around it, but it makes me worry that if we include `nlvm` in our toolchain, we may end up having to maintain it.
|
||||
- ⇓ I haven't been able to build working WASM from any code using Neo, the recommended linear algebra library. I've tried `nlvm` and Emscripten with various build options. I suspect that the bug in Neo mentioned above is causing the build failures. *(Aaron)*
|
||||
- ⇓ Clunky comprehensions (see the examples on the home page) and dicts are not in the language, but rather in the library. (Based on one small slightly hard to find section in the manual, {"a": "b", "c": "d"} is a literal representation for a fixed-length array of pairs of strings, apparently in an effort to be agnostic to different possible dict-like implementations. So in particular, the types in each pair have to match, and all pairs must be the same type.)
|
||||
- ⇓ Some odd rigidity, such as indentation for continuing expressions is only allowed in certain special places like after a binary operator or a parenthesis. Araq, the "benevolent overlord" of Nim, definitely displays his opinionated rigidity on the forums. Of course, maybe that's what it takes to see a new language through to success...
|
||||
- (Bottom line, there will definitely be a number of very unusual idiosyncrasies with nim such as foo_bar being the **same** identifier as foObaR that will at least require getting used to or maybe even working around. But it's not clear that any are showstoppers.)
|
||||
|
Loading…
Reference in New Issue
Block a user