Podlodka #282 – Nim, часть 1
Aug 22, 2022•1 hr 6 min
Episode description
Efficient as C, Expressive as Python, Elegant as Lisp. В этом выпуске вместе с Гавром мы разбираемся с лучшим языком программирования – Nim. В первой части мы разбираем основную философию и концепции языка, оставив на будущее продвинутые возможности, экосистему и применение в продакшне.
Поддержи лучший подкаст про IT:
www.patreon.com/podlodka
Также ждем вас, ваши лайки, репосты и комменты в мессенджерах и соцсетях!
Telegram-чат: https://t.me/podlodka
Telegram-канал: https://t.me/podlodkanews
Страница в Facebook: www.facebook.com/podlodkacast/
Twitter-аккаунт: https://twitter.com/PodlodkaPodcast
Ведущие в выпуске:
Евгений Кателла, Катя Петрова, Егор Толстой
Полезные ссылки:
Сайт языка
https://nim-lang.org/
Zen of nim (Видео: https://www.youtube.com/watch?v=D_G9h7DcIqM&feature=youtu.be
и статья: https://nim-lang.org/blog/2021/11/15/zen-of-nim.html — основные идеи заложенные автором в язык)
StrictFuncs
https://nim-lang.org/docs/manual_experimental.html#strict-funcs (контроль за неизменяемостью ссылочных типов)
Method
https://nim-by-example.github.io/oop/ (пример ООП на котятах)
Блог про поддержку ООП в Nim
http://goran.krampe.se/2014/10/29/nim-and-oo/ (там еще 5 частей: http://goran.krampe.se/category/oop/)
Tuples(Структурная типизация)
https://nim-lang.org/docs/tut1.html#advanced-types-tuples
Pipe оператор F#
https://riptutorial.com/fsharp/example/14158/pipe-forward-and-backward
Array2 Rescript(pipe first), оптимизированная для пайп оператора копия Array в STD
https://rescript-lang.org/docs/manual/latest/api/js/array-2
Effect System
https://nim-lang.org/docs/manual.html#effect-system
Static(выполнение кода на этапе компиляции)
https://nim-lang.org/docs/manual.html#statements-and-expressions-static-statementslashexpression
When(static if)
https://nim-lang.org/docs/manual.html#statements-and-expressions-when-statement
CTFE уязвимость Rust (получение ssh ключа при открытии кода в редакторе)
https://habr.com/ru/news/t/557598/
Distinct типы(создание копии типа не совместимого с исходником)
https://nim-by-example.github.io/types/distinct/
Convertors (неявные преобразователи типов)
https://nim-lang.org/docs/manual.html#converters
Подробная документация и гайды по языку
https://nim-lang.org/documentation.html
Обучающий трек по Nim
https://exercism.org/tracks/nim