Telegram Group Search
Channel created
На этом канале я буду рассказывать про такой язык программирования как Nim. Он умеет компилироваться в С/С++/Obj-C и в JavaScript.

Здесь будут публиковаться новости, статьи, туториалы и хорошие проекты, написанные на Nim.
Хоть и стабильная версия Nim вышла только год назад, на нём уже написано достаточно хороших игр.
—————————————
Вот небольшой топ из них:

5. Nim-chess. Просто шахматы ( ͡° ͜ʖ ͡°). GitHub

4. Pucker Up. Игра, в которой нужно защищать "ядро" от шарика. GitLab. Также есть веб-версия на 16pp.net, который частично написан на Nim.

3. Glorious Glacier Grotto. Игра-лабиринт, где ты играешь за пингвина(а всё из-за The Linux Game Jam, в котором она участвовала). GitHub

2. Smalltrek. В игре нужно исследовать небольшую галактику, посещать планеты и помогать инопланетянам. GitHub, Impbox, веб-версия.

1. Vektor2089. На первом месте платная игра. Vektor — это гонка в пиксельном ретро-стиле. В ней даже есть собственный редактор уровней. Impbox.
Небольшая подборка статей на русском языке про Nim
—————————————
Учебное пособие по Nim (часть 1) — перевод 1-ого туториала с официального сайта Nim.

Учебное пособие по Nim (часть 2) — перевод 2-ого туториала с официального сайта Nim.

Что такого особенного в Nim? — статья рассказывает о некоторых фичах, тонкостях Nim.

Nim: совершенный язык программирования — чем Nim лучше других языков программирования.

NimRusTutorial — небольшой учебник на русском.

Мой опыт разработки на языке Nim — рассказывает о плюсах и недостатках Nim.

Стоит ли переходить с Python на Nim ради производительности? — сравниваются языки C, Python и Nim.

Знакомство с Nim: пишем консольную 2048 — об основах Nim.
​​Nim существует c 2008 года и было бы интересно узнать, как менялись сайт, логотип(и т.д) этого языка
—————————————
Перейдя по ссылкам, можно увидеть, как выглядели прошлые сайты Nim

2014 г.клик. Тогда язык ещё назывался Nimrod. Сейчас сайт выглядит довольно необычно.

2015 г.клик. Язык переименовали в Nim.

2016 г.клик. Сайт потерпел небольшие изменения.

2017 г.клик. Становится всё больше похож на нынешний.

2020 г.клик. Сайт этого года.

2021 г.(скорее всего нет) — клик. Стартовая страница Nim от одного из участников сообщества.
​​Сферы, которые идеально подходят для использования Nim

Олимпиадное программированиеNim работает быстро и не требователен к ресурсам компьютера. На решение задач можно потратить гораздо меньше времени, чем при использовании C/C++.

Кибербезопасностьлегок в использовании и в обучении, при этом компилируется и работает быстро как С/C++, тем самым объединяя преимущества двух самых популярных в этой сфере языков: С++ и Python.

GUI скорость, метапрограммирование, UFCS, компиляция в С/C++ — всё это позволяет использовать уже известные библиотеки в несколько раз удобнее и легче.

WebNim может компилироваться в JavaScript, что позволяет писать фронтенд, а с помощью Source Code Filters можно форматировать html, подобно JSX.

GameDevязык наглядный и, как я уже говорил, быстрый, что очень полезно для такой сферы применения. Поскольку Nim умеет компилироваться в JavaScript, вы можете сделать веб-версию своей игры, не переписывая её заново.

Небольшая новость: репозиторий Nim на GitHub набрал 10.000 звёзд!
​​Что означает логотип Nim и почему язык так называется

Раньше Nim назывался Nimrod, а Nimrod — это царь в легендах Ближнего Востока. Поэтому на логотипе изображена корона.

Но люди в большинстве случаев ассоциировали слово "Nimrod" как оскорбление в английском языке, которое использовалось в комиксах и мультфильмах с участием героя Bugs Bunny.
Поэтому, разработчики языка и решили переименовать его в Nim.

Интересно, что Nimrod — это также компьютер для игры в Nim.
Совпадение или нет?
Освещаем главные события в Nim
За то время, как я отсутствовал на канале произошло несколько интересных событий!


• Вышла новая версия Nim 1.4.0!
ARC и ORC открыты для широкого тестирования
Nim 1.4 — самое крупное обновление со времён 1.0
Более 250 багов было исправлено

Установка через сhoosenim:
       choosenim update self
choosenim update stable
Более подробно об обновлении 1.4 можно почитать здесь

• Новый пост в блоге Nim об ORC/ARC
Блог: ссылка
Русская версия: ссылка

• Новая версия choosenim 0.7.4
Исправлены некоторые баги
Обновить можно через choosenim update self
Проекты, написанные на Nim

Библиотеки:
NimxGUI фреймворк для ПК и мобильных устройств
Gintroобёртка над GTK
FidgetUI с плагином для Figma
NiGUIпростой кроссплатформенный GUI

Jester веб-фреймворк от одного из разработчиков Nim (dom96)
Prologueнедавно(относительно 🙃) вышло обновление, всё больше становится полноценным веб-фреймворком

Fragигровой 3D фреймворк
Nicoдля пиксельных игр
Rodкроссплатформенный игровой движок


Текстовые редакторы:
Aporia IDEIDE для Nim от dom96
Moeконсольный редактор
Paravimоснован на Vim
Editorпростой текстовый редактор


Командные оболочки:
Nshкроссплатформенный
Nimshпростая имплементация командной оболочки
Js(Jarads Shell)кастомная оболочка на Nim

Не совсем командная оболочка, но тоже неплохой проект:
Nicy — красивая кастомизируемая командная строка


Также можно отметить nimtown — домен для веб-страниц на Nim(можно использовать вместо github.io)

===========================

Спасибо @gabbhack за помощь в этой подборке
Несколько дней назад вышли обновления Nim 1.2.8 и 1.0.10, где исправили множество багов.

Более подробно о них можно почитать здесь
О виртуальной машине Nim и зачем она нужна

Виртуальная машина Nim используется для выполнения кода во время компиляции. Например, она вычисляет все выражения в const. Также все, что находится в static будет исполняться ей в compile-time:

static:
echo "Executed at compile time!"

Почти любой код можно выполнять во время компиляции. Однако, в виртуальной машине Nim отсутствует FFI(Foreign Function Interface)

Файлы, которые будет интерпретировать виртуальная машина принято сохранять с расширением .nims. Сам язык, который выполняет VM на самом деле называется не Nim, а NimScript. Чтобы запустить такие файлы есть команда nim e filename.nims

Помимо этого, NimScript используется пакетным менеджером nimble для конфигурационных файлов. А ещё, написав в терминале nim secret запустится REPL, все команды которого будут выполняться виртуальной машиной.
Вышла новая версия — Nim 1.4.2

Это патч релиз, который включает в себя 229 коммитов и более чем 90 решённых багов. Среди них достаточно исправлений ORC/ARC.
Обновить Nim можно через choosenim:
$ choosenim update stable

Changelog можно найти в официальном блоге: https://nim-lang.org/blog/2020/12/01/version-142-released.html
​​Новый интересный пост в блоге Nim "Introducing ORC"(Знакомство с ORC)

https://nim-lang.org/blog/2020/12/08/introducing-orc.html

P.S: название было изменено, автор по какой-то причине перевёл его на немецкий язык :D
Nim Community Survey — это опрос сообщества Nim о его пожеланиях в развитии языка. Он проводится каждый год.

Сегодня уже можно пройти Nim Community Survey 2020 — https://forms.gle/kEWvEeVyfxSHq9Uj8
Всех с Новым годом!
Вчера вышли новые версии Nim — 1.2.10 и 1.4.4

В версии 1.4.4 было исправлено 15 багов. Весь changelog содержит 45 коммитов.
1.2.10 включает в себя 12 багфиксов и так же 45 коммитов.

Обновиться до 1.4.4 можно через choosenim:
$ choosenim update stable
Попробовать 1.2.10:
$ choosenim 1.2.10

Почитать об обновлении на официальном сайте можно здесь:
nim-lang.org/blog/2021/02/23/versions-144-and-1210-released.html
5 интересных пакетов nimble разработанных в феврале

Новый пост на официальном блоге Nim: nim-lang.org/blog/2021/03/01/this-month-with-nim.html
Что нового будет в 1.6?

Потихоньку начинается подготовка к выпуску 1.6 (все важные баги вроде как пофикшены).
В 1.6 ожидается много хороших изменений, некоторые из них:

- Сборщик мусора ORC быстрее на 10% во многих случаях (для информации об ARC и ORC можно прочитать Introduction to ARC/ORC in Nim и Introducing ORC — Vorsprung durch Algorithmen)

- В strformat теперь можно использовать не только строковые литералы, но и константные строки. Так же добавлена поддержка всех видов выражений (if, case, when, block и т.д) — RFC#366.

- Теперь, если в процедуре с прагмой strictFuncs (или функции — func) есть код, который запрещён strictFuncs, то ошибка будет намного более информативна, чем раньше.

- Кастомные числовые литералы - очень полезно для библиотек, предоставляющих arbitrary-precision числа, т.е. можно будет писать let a = 123456'bignum если bignum реализован в сторонней библиотеке. Это реализация RFC#216 и RFC#228.

- Добавлен новый синтаксис для импортирования всех символов (даже приватных) из модуля — import foo {.all.}. Это упрощает написание тестов, т.к. теперь можно напрямую тестировать приватные функции модулей. Реализация RFC#299.

- В дополнение к предыдущему пункту — в стандартную библиотеку добавлен новый модуль std/importutils , который даёт доступ к приватным полям объектов.

- Теперь небольшое количество символов Unicode можно использовать для операторов, а именно ∙ ∘ × ★ ⊗ ⊘ ⊙ ⊛ ⊠ ⊡ ∩ ∧ ⊓ ± ⊕ ⊖ ⊞ ⊟ ∪ ∨ ⊔. Это реализация RFC#388

- Для флага --styleCheck добавлена новая опция — --styleCheck:usages . С этой опцией компилятор сможет выводить или подсказку (--styleCheck:hint) или ошибку (--styleCheck:error), если какой-либо символ (переменная, процедура, и т.д) использует отличное от оригинала написание идентификатора.

Полный список изменений можно просмотреть в репозитории.

P.S.: Это репост моей статьи из https://vk.com/@nim_lang-chto-novogo-budet-v-16
Вышел Nim 1.6.0 RC1 - первый релиз-кандидат новой версии.

Скачать ночной билд можно с https://github.com/nim-lang/nightlies/releases/tag/2021-09-06-version-1-6-30d28bcefcad0da8900cfa231be9d77bb98c5097

https://forum.nim-lang.org/t/8404 - ссылка на оригинальный пост на форуме.
2024/09/30 17:28:47
Back to Top
HTML Embed Code: