2.4 KiB
What features would you like to see in Nim or the Nim Ecosystem:
-
"pure" mode - force usage of scoped variables (unless imported by from... import) and exact case match (like golang does).
-
lightweight threads with network io multiplexed.
- if Nim had something like goroutine (ie multiplexed on networking and use native threads for other syscalls), then it will be ultimate language for server programming.
-
gem like functionality (gem install sinatra) -
A cookbook site similar to Python, where users can share code, mostly snippets. Driven by normal users rather by experts-only.
-
A wiki functionality for parts of the documentation so that users could update the documentation in a simple way (and Araq could take these suggestions and approve or reject them quickly).
-
A pastebin for nim on the Nim Homepage or somewhere else.
-
Allow multiple ranges (eg 1..3,5..8), handle reverse ranges (eg 5..1, 3.. -3)
-
echo automatically handle simple display of sequences (similar to repr)
-
vector and matrix maths (or include a port of an existing library)
-
include a do while loop (or equivalent)
-
% formating extended to include math precision (like provided by formatFloat, but in a concise % syntax way)
-
easier sorting, that doesn't need wrestling with types.
-
a ternary condition - like ?: in C, or iif()
- You can do:
if cond: a else: b
, IIRC the?:
won't make it into Nim.
- You can do:
-
a simple way of indexing the last element of an array or sequence, to avoid long-hand code like
arr[arr.len-1]
- You can do:
arr[arr.high]
orarr[arr.low]
for indexing the last and first element or an array or sequence. - If it is
thisismylongname[thisismylongname.high]
thats not helpfull.thisismylongname[>]
andthisismylongname[<]
looks nice for that in my eyes.
- You can do:
-
a shorthand way of discarding the return value of a proc (to improve readability)
-
a shorthand initialization of arrays or sequences, eg var x: array[0..25, int] = -1 would initialize all elements of x to -1
-
array/sequence comprehension
-
introspection like python's dir()
-
scoped imports, like D, Ada, and Ocaml
-
Nim documentation provided as .epub (tutorials + manual)
-
Missing features from C++/D template (generics in Nim) system, eg variadic generics and generic generic parameters