LINUX.ORG.RU

Вышел nim 0.14.0

 , ,


1

5

Спустя почти полгода после прошлого релиза вышла новая версия языка программирования nim 0.14.0.

Nim представляет собой императивный язык программирования со статической типизацией, предназначенный для системного программирования.

Основными особенностями языка являются:

  • выразительность: язык обладает кратким синтаксисом, а также мощными средствами обобщенного программирования;
  • элегантность: синтаксис языка достаточно гибок, не нужно менять стиль при метапрограммировании;
  • эффективность: компилятор nim генерирует код на Си, сравнимый по качеству с написанным вручную; при компиляции в машинный код исполняеемый файл будет содержать только то, что действительно нужно; оригинальный сборщик мусора пригоден для работы в системах мягкого реального времени, а в случае необходимости его можно отключить.

По мнению разработчиков, данный язык программирования хорошо подходит для разработки:

  • переносимых приложений,
  • игр,
  • встраиваемых систем и программ микроконтроллеров,
  • системных библиотек,
  • систем криптографии.

Основные изменения в новой версии nim:

  • исправлено более 260 ошибок, многие из которых связаны с работой сборщика мусора, также исправлены недостатки, связанные с установкой пакетов исходного кода nim;
  • внесены изменения в компилятор и ядро языка, нарушена обратная совместимость;
  • стандартная библиотека также претерпела изменения;
  • вместе с новым релизом языка nim обновился и его пакетный менеджер nimble.

Стоит также заметить, что в отличие от других языков, появившихся в последнее время, nim не является проектом какой-либо корпорации, а разрабатывается независимым сообществом на народные деньги. Кампания по сбору средств идет довольно успешно, но проекту не помешает и ваша помощь. Каждый доллар, евро, фунт или рубль приближает релиз версии 1.0.0!

>>> Сайт проекта

>>> Кампания по сбору средств на bountysource

>>> Список изменений

anonymous

Проверено: Falcon-peregrinus ()

компилятор nim генерирует код на Си

Он же вроде LLVM-биткод уже напрямую научился генерировать (помимо C-бекенда)?

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

anonymous ()

Один из самых многообещающих современных языков. Следим и изучаем.

loz ★★★★★ ()

Да нафиг надо.

A fast non-tracing garbage collector that supports soft real-time systems (like games).

Подсчёт ссылок что ли? ))) Вот зачем нагородили в последнее время кучу языков, которые все как один похожи друг на друга? Лучше C нет ничего, ололо!

anonymous ()

Statements are grouped by indentation but can span multiple lines. Indentation must not contain tabulators so the compiler always sees the code the same way as you do.

Фу-фу-фу.

anonymous ()

nim не является проектом какой-либо корпорации

Пока не является. Как только сделают что-то годное, так сразу налетят стервятники^W инвесторы и залюбят до смерти.

anonymous ()
Ответ на: комментарий от loz

Что его делает таковым, точнее, что в нем есть такого, чего нет в других языках?

Another0s ()

язык который пилится одним человеком и который никто не использует..

ну вы поняли

umren ★★★★★ ()
Ответ на: комментарий от umren

Начнем с того, что его активно пилят уже два человека, и еще человек пять-шесть регулярно кооммитят так что тут мимо.

Далее, >2800 звезд на гитхабе и регулярные пожертвоваия как бы намекают нам на то, что язык таки нужен.

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

anonymous ()
Ответ на: комментарий от anonymous

у crystal >5200 звезд, он он все еще ненужен

umren ★★★★★ ()

На нём можно написать либу и потом слинковать с сишечкой/плюсами?

DELIRIUM ★★★★★ ()
Ответ на: комментарий от anonymous

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

Отнять все деньги у разработчиков Rust-а и Go, и отдать их разработчикам языка nim.

Давайте сделаем доброе дело, перестанем обращать своё внимание на ЯП Swift, Go и Rust!

anonymous ()
Ответ на: комментарий от anonymous

Пока не является. Как только сделают что-то годное, так сразу налетят стервятники^W инвесторы и залюбят до смерти.

Овклоуд? Свобода! ко-ко-ко! Взяли и форкнулись, оставив инвестров и маркетолухов с менеджерами писать обиженные обещания выполнять и далее все обязательства по контрактам.

mandala ★★★ ()
Ответ на: комментарий от anonymous

Отнять все деньги у разработчиков Rust-а и Go, и отдать их разработчикам языка nim.

Хорошая идея.

mandala ★★★ ()

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

Пруфцы занесите, пожалуйста.

anonymous ()
Ответ на: комментарий от anonymous

Statements are grouped by indentation

Провал. Несите другой.

anonymous ()

Ним, конечно, шикарен возможностями в плане матапрограммирования и вообще выглядит как современное переосмысление поздних виртовских языков. Но смущает как раз слишком большое количество возможностей. Как бы не получились плюсы, где каждый пишет на своем подмножестве и все они ОЧЕНЬ разные.

kremator666 ()
Ответ на: комментарий от loz

Посмотрел я его 4 месяца назад и он был «баг на баге и багом прогоняет». Также чувствуется реальная поддержка сообщества. Хоть идея у него просто шикарная, но пока нет поддержки от какой-нибудь крупной фирмы не думаю что что-то у них выйдет.

deterok ★★★★★ ()
Ответ на: комментарий от anonymous

Провал. Несите другой.

Куда это ты троллина провалилась?))

anonymous ()
Ответ на: комментарий от DELIRIUM

Судя по тому, что выхлопом будет код на С, то можно.
Хотя, конечно же сразу вопрос — почему не писать сразу на С?
Вопрос не к тебе лично, а вообще к факту существования этого языка.

imul ★★★★★ ()

Очередная обёртка над С?

frost_ii ★★★★★ ()
Ответ на: комментарий от tailgunner

представляет собой императивный язык программирования со статической типизацией

почему это толстовато?

imul ★★★★★ ()
Ответ на: комментарий от imul

почему это толстовато?

Из-за разницы между Nim и Си.

tailgunner ★★★★★ ()
Ответ на: комментарий от frost_ii

Очередная обёртка над С?

А C — очередная обёртка над машинным кодом.

one_more_hokum ★★★ ()

Я в 90-х делал на заказ много таких языков работающих поверх Си с помощью #define и подобных штук. Правда, был ещё маленький скрипт, который скрывал от пользователя некрасивый #include.

anonymous ()
Ответ на: комментарий от one_more_hokum

И таки нужная. Ибо Си кроссплатформенный ассемблер.

anonymous ()

Пишите на похапе и не выпендривайтесь.

anonymous ()
Ответ на: комментарий от anonymous

Отнять все деньги у разработчиков Rust-а и Go, и отдать их разработчикам языка nim.

Люто бешено нульчую, во всяком случае часть про

Отнять все деньги у разработчиков Rust-а

shkolnick-kun ★★★ ()
Ответ на: комментарий от kremator666

Во всяком случае там не будет такого количества <> :: и прочих закорючек...

Ну, я надеюсь на это.

shkolnick-kun ★★★ ()
Ответ на: комментарий от shkolnick-kun

Тебе мало системных языков со сборщиком мусора?

makoven ★★★★★ ()
Ответ на: комментарий от imul

А ты не знал, что хипсторы Си неосиляют?

anonymous ()
Ответ на: комментарий от kremator666

матапрограммирования

Закопать поглубже

anonymous ()

Упоротый язычишко.

  • вместо вменяемых итераторов [почти] без оверхеда в стандартной бибилиотеке, как в русте - какой-то маразм на seq
  • вместо first-class slices, как в русте - какие-то костыли на openarray
  • прагмы с упоротым синтаксисом на каждый чих
  • дебильный for, который, в зависимости от положения звёзд на небе, может то вызывать items, то вызывать pairs, то не вызывать ничего
  • сообщество, ниасилившее сделать нормальный механизм RFC
  • анальная завязанность всей стандартной библиотеки на GC
  • отсутствие полноценного паттерн-матчинга

Единственные замеченные преимущества - удобный CTFE и отсутствие скобкофагготрии у создателей. Как-то не впечатляюще.

Короч, для лоулевел руст всё равно потенциально лучше, а для всего остального есть Go/Жабка/Питон.

Esper ()
Ответ на: комментарий от makoven

«системных» языков со сборщиком мусора

Пофиксил, не благодари.

Esper ()
Ответ на: комментарий от shkolnick-kun

пока закорючек не много. но до 1.0 черт знает что разработчики напридумывают

kremator666 ()
Ответ на: комментарий от makoven

А выключить сборку мусора слабо?

Зачем а каких - нибудь микроконтроллерах, где кучу не используют вообще, ибо свой велосипед аллокатор с пулом написать проще, работать он быстрее и не будет течь, нужен сборщик мусора и прочие alloc/malloc/free ?

shkolnick-kun ★★★ ()
Ответ на: комментарий от Esper

Короч, для лоулевел руст всё равно потенциально лучше

Смотря насколько лоу, и кто будет писать... Мне не улыбается постоянно писать unsafe и разбирать тысячи кракозябр!

shkolnick-kun ★★★ ()
Ответ на: комментарий от kremator666

пока закорючек не много

`!$` `!&` `!*\` `!*` `$$` `$` `%%` `%*` `&=` `&` `>%` `>=%` `<%` `<>` `<=%` `*%` `+%` `-%` `-+-` `..^` `/%` `/../` `=~` `@` `^` с тобой не согласны.

Esper ()
Ответ на: комментарий от kremator666

Дык они почти в каждой релиз-ноте кукарекают про «вот-вот уже почти ещё чуть-чуть и будет 1.0.0».

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

shkolnick-kun ★★★ ()
Последнее исправление: shkolnick-kun (всего исправлений: 1)
Ответ на: комментарий от Esper

А теперь дай пруфца на сравнение плотности закорючек в коде по сравнению с крестами/растом.

shkolnick-kun ★★★ ()
Ответ на: комментарий от shkolnick-kun

А выключить сборку мусора слабо?

В D, говорят, слабо. Стандартные либы ломаются. Как тут - не знаю )

makoven ★★★★★ ()
Ответ на: комментарий от shkolnick-kun

Там разговор про C ABI, а не плюсовое, которое своё у каждого компилятора.

grossws ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.