nim-wiki/Feature-suggestions.md

46 lines
1.9 KiB
Markdown
Raw Normal View History

2015-02-03 08:08:07 +00:00
What features would you like to see in Nim or the Nim Ecosystem:
2014-09-10 16:30:27 +00:00
- lightweight threads with network io multiplexed.
2015-02-03 08:08:07 +00:00
- 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.
2014-09-10 16:30:27 +00:00
- <del>gem like functionality (gem install sinatra)</del>
2015-02-03 08:08:30 +00:00
- [nimble](https://github.com/nim-lang/nimble)
2014-09-10 16:30:27 +00:00
- 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).
2015-02-03 08:08:56 +00:00
- A pastebin for nim on the Nim Homepage or somewhere else.
2014-09-10 16:30:27 +00:00
- 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()
2015-02-03 08:08:07 +00:00
- You can do: ``if cond: a else: b``, IIRC the ``?:`` won't make it into Nim.
2014-09-10 16:30:27 +00:00
- 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]`` or ``arr[arr.low]`` for indexing the last and first element or an array or sequence.
- 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