Рубрики
Без рубрики

Почему вы должны рассмотреть язык программирования NIM

Вероятно, было три года с тех пор, как я обнаружил язык программирования NIM. Вернувшись тогда, у него не было … помечено NIM, C, программированием, Python.

Вероятно, было три года с тех пор, как я обнаружил язык программирования NIM. Тогда она еще не достигла версии 1.0, несмотря на развитие в течение почти десятилетия. Я был заинтригован этим претензиями и особенностями, но не погрузился.

В прошлом году я решил дать NIM серьезную попытку. Проведя некоторое время с языком, я полностью влюбился в него. NIM позволил мне понять преимущества определенных языковых конструкций, а через изучение NIM я также научился писать лучший код.

Имеет не только сам язык, стабилизированный с течением времени, но экосистема Ним также развивалась. Сегодня NIM показал, что он достиг зрелости и должен считаться серьезным соперником для растущего числа случаев использования.

Официальный сайт NIM

Сильный статически набранный язык

NIM может похвастаться эффективностью, выразительностью и элегантностью. Это статически набранный и составленный язык с очень эргономичной системой типа.

Типы всех переменных известны при компиляционном времени, и компилятор не позволит вам сделать ошибки, связанные с тривиальными типами, которые настолько распространены на динамических языках, где переменные типы оцениваются только во время выполнения. Одним из них предотвращает целую категорию ошибок в коде, написанном в NIM.

Язык NIM использует конститут , Пусть и var Ключевые слова при объявлении переменных для дифференцировки переменных, которые являются неизменными и оценены при компиляционном времени, просто неизменяемым и смежным соответственно.

Система типа проста, но гибка и обеспечивает семантику для наследования, различных типов, кортежей, универсальных и порядковых или типов сумм.

Python, как синтаксис

NIM сочетает в себе успешные концепции от зрелых языков, таких как Python, Ada и Modula. Общий синтаксис аналогичен Python, поскольку вдавливание используется для обозначения блоков вместо фигурных скобок.

Пример популярной перекрестной платформы Nigui Библиотека, которая оборачивает GTK3.0 на Mac и Linux и API Win32 в Windows.

Пример из ArrayMancer Библиотека, реализующая простую нейронную сеть.

Компиляция к C, C ++ или JavaScript

Одно из волшебных вещей о NIM состоит в том, что он компилировал C, C ++ или JavaScript, с помощью C, являющейся ценой компиляции по умолчанию. Это позволяет вам использовать NIM, чтобы написать что-либо от очень низкого уровня драйверов к веб-приложениям и интернатам.

При создании собственных приложений, компилятор NIM генерирует бесплатные выполненные зависимость, которые являются небольшими, быстрыми и простыми для распространения.

Когда библиотеки строительства Компилятор NIM могут генерировать DLL или статические библиотеки, которые будут использоваться с других языков.

В результате NIM компиляции C или C ++ он также имеет невероятную совместимость с C или C ++. В экосистеме NIM есть даже ряд инструментов, которые позволяют автоматически генерировать привязки NIM для библиотек C или C ++.

Отличная стандартная библиотека

Стандартная библиотека языка мощная без перенапряжения. Он обеспечивает большое количество типов данных и модулей, которые вы можете использовать для достижения практически всего, что вы можете изобразить. Стандартная библиотека NIM ближе к тому, что из Python или узла, чем C. Это даже обеспечивает поддержку большинства баз данных прямо из коробки.

С исключением Система Модуль, который реализует основу NIM и неявно импортируется компилятором, каждый модуль, предоставляемый стандартной библиотекой, должен быть импортирован вручную при использовании. Это означает, что вы можете импортировать только символы, которые вы используете в ваших модулях и предотвращают загрязнение пространства имен.

NIM стандартная библиотека

Быстрорастущая система упаковки

На верхней части функциональности, предоставляемой стандартной библиотекой, NIM имеет постоянно растущую систему пакета, управляемого сообществом, а также отличный менеджер пакетов, известный как Ловкий Отказ

Nimble используется для установки зависимостей из каталога пакета NIM для использования в вашем проекте.

В каталоге пакета вы можете ожидать найти:

  • Веб-каркасы
  • API Клиенты для многих публичных API
  • Проклятия и терминальные интерфейсы
  • Ночные библиотеки пользовательских интерфейсов
  • Игра Библиотеки двигателя и графических программиров и привязки
  • Машинное обучение, статистика и математические библиотеки
  • Широкий массив сообществ поддерживает типы данных данных
  • Привязки для массивного количества библиотек C и C ++.
  • И много больше.

Серьезно, этот список просто царапает поверхность, когда речь идет о количестве пакетов, сообщество NIM поделились в Каталог пакета NIM

Чрезвычайно настраивается

NIM имеет сильные методы MetaProgramming и обеспечивают макро-систему, которая может использоваться для увеличения языка по мере необходимости. Макросистема удобна для абстрагирования повторяющихся шаблонов в вашем коде или построении конкретного языка домена, который на самом деле просто код NIM.

Макросы выполняются во время компиляции. Все код NIM скомпилирован в абстрактное синтаксическое дерево комминирутором, и на этом уровне работает макрос. MACROS NIM можно использовать для преобразования абстрактного синтаксического дерева напрямую и гораздо более гибко, что традиционные текстовые макросы.

Вы можете добиться практически всего в NIM без необходимости макросов, но они позволяют расширить NIM с пользовательскими функциями Lanuage при необходимости.

Последние мысли

NIM действительно изменил так, как я думаю о строительных системах и стал одним из самых мощных инструментов в моем панели инструментов в качестве разработчика программного обеспечения. Это позволило мне написать веб-приложения и API с уровнем уверенности в моем коде, что я иначе не имел. Он также выступил в качестве весеннего доски, которая привела меня к изучению программирования 3D-графического программирования, нейронных сетей и программирования встроенных систем.

Мой опыт с NIM до сих пор был достаточно положен, что я почувствовал необходимость поделиться этим с миром. Go Дайте NIM попробуйте, вы можете просто почувствовать то же самое.

Ресурсы

Если вы заинтересованы в обучении больше о NIM, Страница обучения на официальном сайте Вероятно, лучшее место для начала. Он содержит большой список как официальных, так и сообщественных ресурсов, которые начнут вас.

Оригинал: “https://dev.to/buildsavvy/why-you-should-consider-the-nim-programming-language-1bpb”