nim-wiki/Unofficial-FAQ.md

2.3 KiB

If you are looking for the official FAQ then you can find it here

How can I help?

For beginners I suggest to implement missing parts of the standard library or some other more specialized libraries:

  • locale support
  • bignums
  • a lean GUI library
  • libraries for scientific computing
  • libraries that deal with multi-media
  • etc.

How does the Nimrod compiler's versioning scheme work?

Versions with a trailing odd number are considered to be "in-development", these are unstable "bleeding-edge" versions of the compiler which you can get from Github. Versions with an even number are releases. E.g. 0.9.0 is a release version, 0.9.1 is an in-development version.

Will Nimrod have block comments?

Most probably not. Reasons for avoiding them are:

  • If proper block comments exist, they should be nestable. This means you cannot tokenize Nimrod with regular expressions anymore.
  • The editor can be used to put "#" in front of every line.
  • "when false" is not a bad solution. At least syntax is still checked for deactivated code.
  • discard """ """" is another solution.

Why is it case/style insensitive?

  • Identifiers which only differ in case are bad style. If the programming language treats them the same the programmer needs to come up with different names for different things.
  • Case insensitivity is widely considered to be more user friendly. This holds for file systems, configuration files, and programming languages.
  • Many programming languages are case insensitive: Lisp, Basic, Pascal, Ada, Eiffel, Fortran. Since software for aircrafts and power plants has been written in Ada, it seems reasonable to assume that case insensitivity will not destroy civilisation.
  • Note that most people confuse case sensitivity with case consistency (which is indeed good style). However, case consistency is easier to achieve with case insensitivity and a properly configured IDE than with case sensitivity.

Where can I find code examples?

You can find examples in the examples/ directory. There are also many other examples available on Rosetta Code.

Why are unsigned types discouraged?