URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 115419
[ Назад ]

Исходное сообщение
"Новая версия языка Nim 0.19.0"

Отправлено opennews , 28-Сен-18 10:45 
Доступен (https://nim-lang.org/blog/2018/09/26/version-0190-released.html) релиз языка системного программирования Nim 0.19.0 (https://nim-lang.org). Язык использует статическую типизацию и создан с оглядкой на Pascal, C++, Python и Lisp. Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора (clang, gcc, icc, Visual C++), что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора. По аналогии с Python в Nim в качестве разделителей блоков применяются отступы. Регистр написания символов в идентификаторах не учитывается. Поддерживаются средства метапрограммирования и возможности для создания предметно-ориентированных языков (DSL). Код проекта поставляется (https://github.com/nim-lang/) под лицензией MIT.


В новой версии представлено два нарушающих совместимость изменения в обработке строк и последовательностей. Вместо значения "nil" строки и последовательности теперь по умолчанию принимают значения  ""  и @[]. Доступ к нулевому символу, сигнализирующему об окончании строки, отныне не является корректной операцией и приводит к выводу ошибки. Для выборочного включения экспериментальных возможностей предложена  pragma experimental и опции командной строки (одного общего переключателя для активации всех экспериментальных функций теперь нет). Кроме самого языка также доступен связанный с ним пакетный менеджер Nimble 0.9.0 (https://github.com/nim-lang/nimble/blob/master/changelog.mar...), в котором пересмотрен процесс создания гибридных пакетов.


URL: https://nim-lang.org/blog/2018/09/26/version-0190-released.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=49355


Содержание

Сообщения в этом обсуждении
"Новая версия языка Nim 0.19.0"
Отправлено ыы , 28-Сен-18 10:45 
Фраза "Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript."
несколько дика...

компиляция- это когда с высокоуровневого на низкоуровневый или машинный код.

а с высокоуровневого на высокоуровневый- это должно называться как-то иначе.


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 10:55 
Как насчет: "Исходный код на языке Nim транслируется в представление на C, C++ или JavaScript"?

"Новая версия языка Nim 0.19.0"
Отправлено ыы , 28-Сен-18 11:01 
плохо.
Трансляция, компиляция, интерпретация- все это подразумевает изменение уровня языка.

Для изложения того же самого на таком же уровне но на ином языке - следует использовать "переводится" или на иноземный манер "портируется" например "код на языке Ява переводится на язык Бэйсик" или "код на языке Лисп портируется на Го"


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 11:23 
А как насчёт термина "двоичная компиляция"? Если считаешь, что глупость, плюнь в лицо МЦСТ.

"Новая версия языка Nim 0.19.0"
Отправлено ыы , 28-Сен-18 13:33 
Наследники советского канцеляризма еще и не такое выдумают...


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 29-Сен-18 11:30 
Сколько тебе годков, вьюноша, чтобы рассуждать о «советском канцеляризме»?

"Новая версия языка Nim 0.19.0"
Отправлено Мимоход , 02-Окт-18 17:49 
Трансляция и интерпретация точно не подразумевают. Да и компиляция не обязательно.

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 10:58 
Называется Transpiling

"Новая версия языка Nim 0.19.0"
Отправлено ыы , 28-Сен-18 11:03 
О. есть таки такое слово...

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 12:11 
> компиляция- это когда с высокоуровневого на низкоуровневый или машинный код.
> а с высокоуровневого на высокоуровневый- это должно называться как-то иначе.

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


"Новая версия языка Nim 0.19.0"
Отправлено Урри , 28-Сен-18 17:17 
В отчественной печати для этого принят термин "трансляция".
https://ru.wikipedia.org/wiki/Транслятор

И я немного удивлен общим уровнем образованности в таких элементарнейших вещах в комментариях.


"Новая версия языка Nim 0.19.0"
Отправлено Jh , 29-Сен-18 08:41 
образованные тут не ходят

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 29-Сен-18 13:05 
> образованные тут не ходят

Самокритично конечно, но попрошу говорить за себя.



"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 29-Сен-18 13:10 
> И я немного удивлен общим уровнем образованности в таких элементарнейших вещах в комментариях.

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


"Новая версия языка Nim 0.19.0"
Отправлено Тот_Самый_Анонимус , 05-Окт-18 07:41 
Если для тебя великий и могучий чужой, то чего ты тут делаешь?

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 05-Окт-18 14:16 
> Если для тебя великий и могучий чужой,

Да-да, образование можно получать только на "рідної мови"! Иначе ведь не патриотично!
Да и самообразование на буржуйском только для буржуев (нормальные люди буржуйский не учуть)!
> то чего ты тут делаешь?

Ловлю лулзы с таких как ты, прогуливавших логику.
Ты ж на "чужие" ресурсы не ходишь, да и на буржуйском небось ничего не читаешь?



"Новая версия языка Nim 0.19.0"
Отправлено Тот_Самый_Анонимус , 05-Окт-18 16:35 
> Да-да, образование можно получать только на "рідної мови"! Иначе ведь не патриотично!
> Да и самообразование на буржуйском только для буржуев (нормальные люди буржуйский не учуть)!

Сам придумал — сам опроверг. Молодец, рисуй звёздочку.

> Ловлю лулзы с таких как ты, прогуливавших логику.
> Ты ж на "чужие" ресурсы не ходишь, да и на буржуйском небось ничего не читаешь?

Второй раз один приём. Ты все свои фантазии в ранг фактов возводишь, иннословный лулзолов?


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 05-Окт-18 21:37 
>> Если для тебя великий и могучий чужой, то чего ты тут делаешь?
> Сам придумал — сам опроверг. Молодец, рисуй звёздочку.
>> Если для тебя великий и могучий чужой, то чего ты тут делаешь?
> Второй раз один приём. Ты все свои фантазии в ранг фактов возводишь,

Экий ты самокритичный!


"Новая версия языка Nim 0.19.0"
Отправлено Илья , 28-Сен-18 20:55 
> как-то иначе.

Трансляция?


"Новая версия языка Nim 0.19.0"
Отправлено tosh , 30-Сен-18 14:11 
"транспилируется" - тебе полегчало?

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 10:54 
>Регистр написания символов в идентификаторах не учитывается.

Сколько это недоразумение можно повторять из новости в новость? Это не соответствует действительности. Сам не поленился и проверил в v 0.18. Вывод: различается и для ключевых слов, и для переменных пользователя.


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 13:26 
> Вывод: различается и для ключевых слов, и для переменных пользователя.

Там всё более хитро. Различается только регистр первого символа в идентификаторе, а остальные нет. А подчёркивания вообще игнорируются.


https://nim-lang.org/docs/manual.html

Two identifiers are considered equal if the following algorithm returns true:

proc sameIdentifier(a, b: string): bool =
  a[0] == b[0] and
    a.replace("_", "").toLowerAscii == b.replace("_", "").toLowerAscii

That means only the first letters are compared in a case sensitive manner. Other letters are compared case insensitively within the ASCII range and underscores are ignored.https://nim-lang.org/docs/manual.html


"Новая версия языка Nim 0.19.0"
Отправлено Annoynymous , 28-Сен-18 17:15 
Я хочу такой травы тоже, которую курили разработчики этого языка.

"Новая версия языка Nim 0.19.0"
Отправлено Аноним84701 , 28-Сен-18 17:38 
> Я хочу такой травы тоже, которую курили разработчики этого языка.

Ну это вообще-то попытка угодить "и вашим и нашим", т.е. любителям "fooBar" и "foo_bar".
Там еще без разницы:
foo_bar(x,y)
fooBar(x,y)
x.foo_bar(y)
x.fooBar(y)

Но есть более "зачетные" вещи ;)
> Strong spaces
> A experimental feature, currently only available through a source code filter, is strong spaces. The relative spacing
> between operators and operands overrides their standard precedence, like adding parenthesis would
.
>


"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 11:37 
расходимся, нет webasm, не взлетит!

"Новая версия языка Nim 0.19.0"
Отправлено омномномним , 28-Сен-18 11:54 
да вроде есть
один из примеров: https://www.spiria.com/en/blog/web-applications/webassembly-nim

"Новая версия языка Nim 0.19.0"
Отправлено Аноним , 28-Сен-18 15:14 
Главный вопрос: "Зачем???".

"Новая версия языка Nim 0.19.0"
Отправлено типа аноним , 28-Сен-18 15:40 
Ответить то - несложно. Си превратился в маркенг: кто кого фишками заалит игнорируя надёжность и/или производительность. А разросшийся стандарт С++ - (и без доп.библиотек ) уже "монстр".

Но... «зачем» так?!....................


"Новая версия языка Nim 0.19.0"
Отправлено Урри , 28-Сен-18 17:18 
Си ни во что не превратился - каким был, таким остался.

А вы путаете С++ и С. Стыдно.


"Новая версия языка Nim 0.19.0"
Отправлено типа аноним , 28-Сен-18 17:29 
Враньё. Ничего не путаю. (И по п.1.тоже - враньё).

"Новая версия языка Nim 0.19.0"
Отправлено типа аноним , 28-Сен-18 17:31 
FIXED+Дополнил мысль:
Ответить то - несложно. Си[++] превратился в маркетинг: кто кого фишками завалит... - игнорируя надёжность и/или производительность.
А разросшийся стандарт С++ - (и без доп.библиотек ) уже "монстр".
Как компиляторы так и сами библиотеки - такое ощущение что, финансирутся производителями оборудования/ОС - чтобы всё сильней тормозить / всучивать новое, и АНБ - чтобы всё время были новые дыры (в т.ч.и под предлогом поддержки 10-100-500 архитектур).

Это просто отвратительно, что за столько десятилетий - даже крупнейшие OSC компиляторы
- дырявейший и глючнейший шлак, который к тому же чтобы собрать нужно подключить и задействовать ещё 10-100-500 такого же "добра"...
А, rolling-release?... Сейчас для надёжности кодогенерации получатся лучше взять любой древний (и пусть заглюченный)проприетар компилятор времён дораспространенияя сети и частых обновлений(они же маркетинговая привязка к производителю - для покупки лицензии пользователями... т.е.баги - запланированны на вечно) - давно остановшейся в развитии - и просто наблюдая учитывать его баги, по крайне мере при его релизе бетатест заведомо куда интенсивней проводился чем у любых OSC(и позжих не-OSC), да и ведь к нему точно в обновлении не будет нового внепланново... ВДРУГ (и что будет видно - вовсе не обязатено сразу при обновлении). Таже проблема даже с ассемблерами.
Сейчас нету ни одного гарантированного безбагового компилятора, даже ассемблеры, т.е.код которого был бы быстро проверяем. Чтобы быть уверенно в отсутствии подлога свинью нужно писать ...в кодах! Но, это не продуктивно и само по себе сверхрисково.
Достали. Меня давно жутко достали баги криворуких авторов компиляторов, когда ты бывает недели тратишь в поисках бага, тем более когда в чужом говнокоде давно написанном(а, не с нуля - поэтапно), а это оказывается компилятор - "ой извините[, в новой версии - вот так]"...

Но, по языку этому - правильней спросить: «зачем» же так?!...


"Новая версия языка Nim 0.19.0"
Отправлено Пользователь Nima , 28-Сен-18 23:19 
У Nim-а есть свою плюси, например  AST макросы на уровне лиспа. Среди компилируемых и строго типизированных языков это редкость

"Новая версия языка Nim 0.19.0"
Отправлено типа аноним , 29-Сен-18 13:48 
Никто про полное отсутвие плюсов и не говорил же. Они всегда есть - в ч.н.кому то.
Вопрос тут скорей о устраиваемости их - всем или хотя бы большинству, хотя бы просто многим.

Любой Си поддержиет макросы, в том числе косвенно - через template и даже перегрузку операторов.
Ассемблеры ещё более изощрённые в макросах.
Но, AST макросы совсем уж какая то дичь. Тут то на обычные СИ макросы часто гонят когда они напсианны кем то иным, да и самому налажать легко - а, уже ещё сильней расширять их сферу применения...


"Новая версия языка Nim 0.19.0"
Отправлено Pilat , 28-Сен-18 16:45 
>По аналогии с Python в Nim в качестве разделителей блоков применяются отступы.

Ну и правильно. Сделали бы как надо, никто бы о Nёm и не говорил.


"Новая версия языка Nim 0.19.0"
Отправлено типа аноним , 28-Сен-18 17:56 
Несмотря на большую лаконичность, к сожалению, отступы это ещё одна "палка которая периодически стреляет в ногу". Вообще же отступы и лаконичность из-за них - хоть и самый заметный, но совсем не самый большой плюс у Python, в сравнении с Сями. Самый главный там - проще синтаксис. Тем более нету кучи версий компилятора со своими уникальными [недокументированными] конкурентными фишками... отсутствующими или работающими иначе у каждого другого. Да и стандарт языка как я не настолко туманен что, даже хочешь char будет знаковым, нет? Ну, дело твоё... (и ведь делали, маркетингово). И т.д. Да даже помню была непредопределанна последовательнсоть вычисления в выражении... Это и правда издёвка, "стандарт", а не стандарт! В итоге каждый реально всегда сидел в реальном стандарте - производителя компилятора, причём понятно версие неконстантном.

Ну, да пока проще...  (Си[++] когда то тоже был синтаксически очень лаконичен, "прогресс" тут как тут).