$ - nim toString
Expl: $a[0]
Data exchange with C
| C type | Nim type |
| int | cint |
| unsigned long | culong |
| float | cfloat |
| int x[4] | array[4, cint] |
| int* | ptr int |
| char* | cstring |
| char** | cstringArray = ptr array [0..ArrayDummySize, cstring] |
addr x[0] -> to ptr [type]
# - first argument
@ - other comma separated args
Emit pragma - used to javascript generation in nim, but it's also possible to generate C - but this is bad idea.
Heap - is always garbadge colected
Jester - web [micro]framework on Nim
/nimongo -- by Rostislav
/exort -- by Rostislav
Vagrant
emerald - nim templating engine
http://www.buildout.org/
Nim компилируется быстрее С++ и Rust, но меделеннее Golang.
graced references
nake - сборка
SDL2
syngraph
Adobe After Effect - композиции для карты
opengl
python - для прототипирования, потом раньше переводили на C++
сейчас Юра для прототипирования использует Nim
jnim - гегерирует код java из nim для передачи в jvm - для работы в android
coveralls - для тест каверидж.
интерполирование
uho3D
NimScript - виртуальная машина для интерпретации, можно кодить в интепретации.
SDL - делает связку OpenGL c чем-то:)
Nim - Nimrod - король первый в истории человечества, но это слово матюк по английски, поэтому название укоротили, но корона в названии осталась.
Compile Function Evaluation
const vs let?
Яркий пример:
Задача получить список файлов в директории.
- При компайл тайме(const): мы не реагируем приложением в рантайме на добавление новых файлов в эту директорию.
- При рантайме(let): реагируем на добавление файлов без пересборки приложений.