LINUX.ORG.RU

Состоялся релиз языка Nim 1.0

 , ,


1

5

Nim — статически типизированный язык, который ориентируется на эффективность, читаемость и гибкость.

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

Этот релиз включает в себя множество изменений, включая исправления ошибок и некоторые языковые дополнения. В комплекте также идет обновлённый пакетный менеджер Nimble.

Версия 1.0 теперь имеет статус LTS. Поддержка и исправление ошибок будут продолжаться до тех пор, пока будут востребованы. Новые возможности, которые не будут нарушать обратную совместимость, будут развиваться в ветке 1.х.

Текущая цель состоит в том, чтобы любой код, который компилируется этим релизом, продолжал компилироваться любой стабильной версией 1.х в будущем.

Компилятор всё ещё реализует функции, которые описаны в «экспериментальном руководстве». В эти возможности всё ещё могут быть внесены обратно несовместимые изменения. Есть также модули в стандартной библиотеке, которые до сих пор считаются нестабильными, и они помечены как нестабильное API.

Обновиться можно уже сейчас:

choosenim update stable

>>> Подробности



Проверено: INFOMAN ()
Последнее исправление: Deleted (всего исправлений: 5)

Все ничего, но этот бездарный синтаксис аля псевдокод для букваря никуда не годится.

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

Это не запрещено

echo(max([1,2,3,4,5,6,7,8,9]))
opqx
() автор топика
Ответ на: комментарий от opqx

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

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

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

Анонимус хорошо покакал.

Овсянкой с обрезками ногтей.

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

Это где такое дерьмо забористое готовят?? Строки с именем модуля в инструкции импорта.

Кушайте, не обляпайтесь.

use List::Util qw(max);
say max(1..9);
anonymous
()
Ответ на: комментарий от opqx

Python, Ruby, D, C++ (да, и такой есть один), Common Lisp, Haskell, Javascript, Racket, Elixir, C#, Rust, Vala.

Лично я бы сказал что по «просто удобству» он уступает из этого списка только Common Lisp и Haskell, с остальными 10-ю вопросы не ко мне.

UPD: Вывод сделан на основании часа чтения доков по Nim и N лет разработки на Python, C++, Common Lisp, Haskell, и C#.

Gentooshnik ★★★★★
()
Последнее исправление: Gentooshnik (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

Virtuos86 ★★★★★
()

В нише «технически неплохо сделаная никому не нужная маргинальщина» он вроде сидит вместе с D, Vala, Crystal, Vlang.

Рынок так перенасыщен, что просто сделать нормальный ЯП в котором все не горит и не полыхает уже не достаточно.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от vertexua

Эта

никому не нужная маргинальщина

используется в проде. Например здесь Nimbus

Жду комментариев в стиле - это тоже херня.

opqx
() автор топика

Nim generates native dependency-free executables, not dependent on a virtual machine

Так, загибаем палец, ВМ - это зло, потому что дополнительная зависимость.

Fast deferred reference counting memory management that supports real-time systems.

Ага, значит, оно на реал-тайм нацелено. Но почему тогда в пункте про ВМ не сказано, что оно обычно зло, т.к. обычному ВМ параллелен реал-тайм, а поскольку Nim - это реал-тайм...

Support for various backends: it compiles to C, C++ or JavaScript so that Nim can be used for all backend and frontend needs.

Так, но в п.1) их не устраивала зависимость от ВМ. А если зависимость от компилятора другого ЯП - то это уже ОК и преимущество?

Пионерией и красноглазием попахивает.

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

А в Common Lisp и Haskell (за которые из всего списка я могу отвечать сам) определённой киллер-фичи и нет. Оба языка появились в результате некоторого комплекса взаимоисключающих но удачно сочетающихся решений, на основе кучи похожих языков существовавших до них.

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

Анонишка, а зачем какой-то синтаксический мусор qwhdfgdfgfd(...)? Нельзя было сделать просто перечисление через запятую?

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

Так он и не говно. Это не важно. Таких неговен ещё очень много

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

Ужас. Иметь в синтаксисе 5-6 трюков для почти любой задачки (что объективно нафиг не нужный перебор и избыточно) и при этом для подключения библиотек присобачить обычную функцию. Как там перловики живут вообще? Современные ЯП имеют сложные, хорошо продуманные системы импорта. Вряд ли это можно как-то удовлетворительно покрывать таким финтом ушами.

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

В чем ужас? Эта функция не только для импорта, а для любых трюков в компилтайме. Какому-нибудь питону и не снились те возможности, что дает use. А собственно сам импорт в перле очень простой, но и очень гибкий, причем полностью контролируется на стороне модуля. Впрочем, кому я рассказываю. Ты же все меряешь своим пистоном убогим, ты просто не поймешь как работает use.

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

Окай, не пойму, так не пойму. Мне уже переучиваться поздно, староват :). Пойду дальше всё мерять своим пистоном убогим :)

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

да не всё понятно, хотя подобное «функционально» - бессмысленная экономия на спичках, реклама для потенциальной доли пользователей

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

Да ладно, он же юродствует. У них там в расте очень любят такие однострочники отягощенные блямбдами. И это даже могло быть удобно, если бы там был пристойный синтаксис.

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

Такая хрень тоже есть

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

printf '%s\n' {1..9}
anonymous
()
Ответ на: комментарий от opqx

Это предыдущий оратор меня пытался удивить ))

Я думаю, он просто хотел слегка тебя потроллить, так как Perl является полной противоположностью хайповым @язычкам, с полутора @библиотеками и парой-тройкой @ПриветМиров, написанным на них. Perl – это проверенный временем $язык, опирающийся на массивный тектонический $пласт готовых, проверенных в $бою @решений.

anonymous
()

читабельность кода важна! успехов языку

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

Бугурт это по нашему.

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

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

Там уже есть nimpy и плагины для jupiter notebook, которые позволяют прозрачно взаимодействовать питоновскими либами и писать расширения python на nim.

Соответствующие пакеты есть в anaconda.

Так что создателям cython уже стоит напрячься, возможно, создателям numba тоже...

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

Но этой фигней пользоваться можно уже сейчас

А можно и не пользоваться.

https://github.com/yglukhov/helloworld

Ты бы ещё дал ссылку на какой-нибудь HelloWorld калькулятор или плеер.

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