The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Новая версия языка Nim 0.19.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая версия языка 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Новая версия языка Nim 0.19.0"  +9 +/
Сообщение от Аноним (3), 28-Сен-18, 10:55 
Как насчет: "Исходный код на языке Nim транслируется в представление на C, C++ или JavaScript"?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Новая версия языка Nim 0.19.0"  –16 +/
Сообщение от ыы (?), 28-Сен-18, 11:01 
плохо.
Трансляция, компиляция, интерпретация- все это подразумевает изменение уровня языка.

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Новая версия языка Nim 0.19.0"  –1 +/
Сообщение от Аноним (8), 28-Сен-18, 11:23 
А как насчёт термина "двоичная компиляция"? Если считаешь, что глупость, плюнь в лицо МЦСТ.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

14. "Новая версия языка Nim 0.19.0"  –3 +/
Сообщение от ыы (?), 28-Сен-18, 13:33 
Наследники советского канцеляризма еще и не такое выдумают...

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

32. "Новая версия языка Nim 0.19.0"  +1 +/
Сообщение от Аноним (32), 29-Сен-18, 11:30 
Сколько тебе годков, вьюноша, чтобы рассуждать о «советском канцеляризме»?
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

38. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Мимоход (?), 02-Окт-18, 17:49 
Трансляция и интерпретация точно не подразумевают. Да и компиляция не обязательно.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

4. "Новая версия языка Nim 0.19.0"  +12 +/
Сообщение от Аноним (4), 28-Сен-18, 10:58 
Называется Transpiling
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Новая версия языка Nim 0.19.0"  +/
Сообщение от ыы (?), 28-Сен-18, 11:03 
О. есть таки такое слово...
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

29. "Новая версия языка Nim 0.19.0"  +1 +/
Сообщение от Jh (?), 29-Сен-18, 08:41 
образованные тут не ходят
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

33. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Аноним (33), 29-Сен-18, 13:05 
> образованные тут не ходят

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


Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

39. "Новая версия языка Nim 0.19.0"  –2 +/
Сообщение от Тот_Самый_Анонимус (?), 05-Окт-18, 07:41 
Если для тебя великий и могучий чужой, то чего ты тут делаешь?
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

40. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Аноним (33), 05-Окт-18, 14:16 
> Если для тебя великий и могучий чужой,

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

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


Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

25. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Илья (??), 28-Сен-18, 20:55 
> как-то иначе.

Трансляция?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

36. "Новая версия языка Nim 0.19.0"  +/
Сообщение от tosh (?), 30-Сен-18, 14:11 
"транспилируется" - тебе полегчало?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Новая версия языка Nim 0.19.0"  +3 +/
Сообщение от Аноним (8), 28-Сен-18, 10:54 
>Регистр написания символов в идентификаторах не учитывается.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Новая версия языка Nim 0.19.0"  +1 +/
Сообщение от Аноним (13), 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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

18. "Новая версия языка Nim 0.19.0"  +4 +/
Сообщение от Annoynymous (ok), 28-Сен-18, 17:15 
Я хочу такой травы тоже, которую курили разработчики этого языка.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

23. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Аноним84701 (ok), 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
.
>

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

10. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Аноним (10), 28-Сен-18, 11:37 
расходимся, нет webasm, не взлетит!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Новая версия языка Nim 0.19.0"  +/
Сообщение от омномномним (?), 28-Сен-18, 11:54 
да вроде есть
один из примеров: https://www.spiria.com/en/blog/web-applications/webassembly-nim
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

15. "Новая версия языка Nim 0.19.0"  +3 +/
Сообщение от Аноним (15), 28-Сен-18, 15:14 
Главный вопрос: "Зачем???".
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

20. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Урри (?), 28-Сен-18, 17:18 
Си ни во что не превратился - каким был, таким остался.

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

21. "Новая версия языка Nim 0.19.0"  +/
Сообщение от типа аноним (?), 28-Сен-18, 17:29 
Враньё. Ничего не путаю. (И по п.1.тоже - враньё).
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

28. "Новая версия языка Nim 0.19.0"  +/
Сообщение от Пользователь Nima (?), 28-Сен-18, 23:19 
У Nim-а есть свою плюси, например  AST макросы на уровне лиспа. Среди компилируемых и строго типизированных языков это редкость
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру