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

Исходное сообщение
"Выпуск языка программирования Nim 2.2.6"

Отправлено opennews , 03-Ноя-25 22:51 
Представлен релиз языка системного программирования Nim 2.2.6.  Обновление вышло спустя шесть месяцев после релиза версии 2.2.4 и включает 141 коммит с исправлениями ошибок и улучшениями производительности. Nim – статически типизированный компилируемый язык программирования с синтаксисом, вдохновлённым Python, и возможностями метапрограммирования на уровне Lisp. Язык компилируется в C, C++ и JavaScript, обеспечивая производительность на уровне C при выразительности высокоуровневых языков.  Код проекта поставляется под лицензией MIT...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64173


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 03-Ноя-25 22:51 
> и возможностями метапрограммирования на уровне Lisp
> Язык компилируется в C, C++ и JavaScript,

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено ZloySergant , 03-Ноя-25 23:51 
>...Common Lisp, компилируемый в представление на любом мейнстримном языке.

Был такой. ECL, но после самоотвода jjgarcia скатился в унылое.
До этого gcl, ccl и др.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Кошкажена , 04-Ноя-25 01:14 
> нужен Common Lisp,

У него заморожен стандарт. Как же без обновлений? На что выделять деньхи?


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 01:35 
А что, если создавать новые библиотеки? ... Да ну на! Лучше синтаксис каждые 3 недели ломать!

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 04:09 
Common Lisp слишком переусложнен и переполнен всяческой абракатаброй.

Но вот Scheme - это то, что надо. Простой, понятный, элегантный, продуманный, интуитивно понятный. Первоклашки в схему въезжают буквально за 15 минут, а коммон лисп осиливают долго, да еще и постоянно потом путаются.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 06:06 
Спасибо не надо, ваши не осилившие паскаль первоклашки потом вкатываются в ойти через пейтон и уже вовсю пишут калькуляторы на 30ГБ ОЗУ.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 12:37 
>ваши не осилившие паскаль первоклашки

Паскаль не надо осиливать, паскаль надо закапывать. Если уж и брать компилируемые языки, то хотя-бы современные SML, Go, Ocaml, другие подставить по вкусу.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 16:20 
паскаль нужен не для программирования, а для освоения концепций. см. столярова.
а в одном рядоу go с ocaml, конечно, странно выглядят.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 08:18 
>Но вот Scheme - это то, что надо.

Scheme - это стандарт на бумаге, его не заюзаешь. Юзайте реализацию Guile.


"Выпуск языка программирования Nim 2.2.6"
Отправлено morphe , 04-Ноя-25 06:07 
> нужен Common Lisp

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 07:56 
Julia?

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 15:01 
>Нужно перестать стесняться и сказать вслух очевидное: нужен Common Lisp, компилируемый в представление на любом мейнстримном языке.

На сцену приглашается Lovesan Лоровскый.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 03-Ноя-25 23:00 
Будучи программистом с опытом более 15 лет и комфортной зарплатой, я ничего не понял из описания. Слишком сложно, а значит, не выстрелит.

"Выпуск языка программирования Nim 2.2.6"
Отправлено bdrbt , 03-Ноя-25 23:16 
Вот если бы ты не программы там всякие 15 лет писал, а каждый раз придумывал почему убогий с/с++/c#/жаба/<ещёчегонибудь> не подходит под высокий полёт твоей мысли, вот тогда бы ты всё понял.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 00:05 
> Вот если бы ты не программы там всякие 15 лет писал, а каждый раз придумывал
> почему убогий с/с++/c#/жаба/<ещёчегонибудь> не подходит под высокий полёт
> твоей мысли, вот тогда бы ты всё понял.

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 03-Ноя-25 23:38 
Это ок.

Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже их ошибки на уровне ЦПУ хотят решать, а им невдомек.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 00:07 
> Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже их
> ошибки на уровне ЦПУ хотят решать, а им невдомек.

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 02:04 
Выбор корпораций решать си-ошибки на уровне ЦПУ является признанием того, что раст не нужен. Иначе зачем бы им решать си-ошибки на уровне ЦПУ, вместо изучения раста их сотрудниками.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 06:27 
> Выбор корпораций решать си-ошибки на уровне ЦПУ является признанием того, что раст не нужен.

Решать в рантайме то, что должно решаться на этапе компиляции?

> Иначе зачем бы им решать си-ошибки на уровне ЦПУ, вместо изучения раста их сотрудниками

Потому, что очень много написано на С, и, в ближайшем будущем, от этого не избавится.

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 02:46 
> Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже
> их ошибки на уровне ЦПУ хотят решать, а им невдомек.

Не беспокойтесь, мы с удовольствием предложим адептам Rust выбросить их старый хлам, точно так же как это делают сейчас они. Ибо долг платежом красен :)


"Выпуск языка программирования Nim 2.2.6"
Отправлено Шизгорин , 04-Ноя-25 16:46 
Они думают, что вечно будут молодыми. Ага. Я тоже в свое время ржал над теми, кто сидит на третьих пентиумах, а сейчас сам завис на "коре дуба" из-за: а) привычка; б) тянет всё что мне надо.

"Выпуск языка программирования Nim 2.2.6"
Отправлено 12yoexpert , 03-Ноя-25 23:41 
это новость про патч-релиз. вопросы по изложению к автору новости

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 07:42 
А что, разве питон может компилироваться в js или wasm? Или может в Си код, сопоставимый с нативным? Работать на микроконтроллерах без такого сжирания ресурсов, тоже близком к Си?
Нет.

"Выпуск языка программирования Nim 2.2.6"
Отправлено минона , 04-Ноя-25 12:56 
> А что, разве питон может компилироваться в js или wasm? Или может
> в Си код, сопоставимый с нативным? Работать на микроконтроллерах без такого
> сжирания ресурсов, тоже близком к Си?
> Нет.

Ну, есть транспайлер py2many, но заставить его работать на скрипте, большем чем hello_world.py, мне не удалось.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Уникум , 04-Ноя-25 00:18 
Язык на пробелах не нужен

"Выпуск языка программирования Nim 2.2.6"
Отправлено Кошкажена , 04-Ноя-25 02:44 
Правильно. Нужно писать без пробелов, в одну строку желательно.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 11:41 
Для человека структурирование через отступы — естественный приём. Так пишут списки, планы, вложенные элементы.

Конечно, можно так:
if (x > 0) {
    printf("Positive\n");
} else {
    printf("Non-positive\n");
}

Но я человек, и мне удобнее так:
if x > 0:
  echo "Positive"
else:
  echo "Non-positive"

Языки с отступами формируют повышенную дисциплина кодирования. Программист не может "сломать стиль" случайными пробелами и код различных авторов в проекте выглядит более единообразно. Кроме того, меньше конфликтов при совместной разработке (например, при слиянии веток в Git).


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 12:26 
При вставке кода могут появиться трудно уловимые ошибки, которые будут проходить синтаксическую проверку.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 13:57 
Ну, если вставлять в MS Word, то, пожаоуй, да 🙂‍↕️

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 15:36 
В Nim с его чувствительным компилятором это вряд ли возможно. Для написания программ на языке Nim нужна высокая культура кодинга и чутьё при применении типов.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 12:54 
>Конечно, можно так:

Не можно, а нужно. Вместо скобочек можно end использовать, но это дело вкуса.
>Но я человек, и мне удобнее так:

Если вы не заметили, то отступы уже давным давно проставляются автоматически. Вот вам в качестве примера: https://try.ocamlpro.com/ вводим какой-то код, например

let a = [

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

let a = [
  [ (* < добавили новую скобку *)
  1
]

То он автоматически приведётся к нужному виду

let a = [
  [
    1
  ]

>Языки с отступами формируют повышенную дисциплина кодирования.

Языки с отступами свидетельствуют о узости кругозора, и незнании о такой простейшей вещи, как автоформатирование.
>Программист не может "сломать стиль" случайными пробелами

Ну так положите файл с настройками в репозиторий. Зато, при управлении проблемами программист будет регулярно отхватывать проблем, от того, что лишние пробелы к коду приклеились. Программировать без IDE будет мучением, а копирование кода в случайные места приведёт к потере пробелов и полной поломки кода.


"Выпуск языка программирования Nim 2.2.6"
Отправлено anonymous , 04-Ноя-25 13:44 
>  Конечно, можно так:
>  if (x > 0) {
>      printf("Positive\n");
>  } else {
>      printf("Non-positive\n");
>  }

это для детей, вообще то надо так:

   printf( x>0 ? "Positive\n" : "Non-positive\n");


"Выпуск языка программирования Nim 2.2.6"
Отправлено _kp , 04-Ноя-25 14:33 
Более того, вместо x может  быть и "функция" объявленная здесь же, в массив, и мало ли что.
А выше предлагают ВМЕСТО сокращения портянок исходников, те же портянки разукрасить пробелами, что бы хотя бы издали было красиво. :)

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено cheburnator9000 , 04-Ноя-25 01:29 
> теперь компилятор корректно применяет перемещение

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


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 08:22 
>У них была и до сих пор есть возможность перейти на LLVM для полной поддержки сборки и дебага, вместо костылей.

Что за бред ты несёшь?


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 11:06 
В профессиональной литературе и документации сам Nim называют именно компилятором, а не транспилятором.

Причина в том, что конечный результат — исполняемый бинарный код. Наличие промежуточного языка (C) лишь часть внутреннего процесса компиляции и архитектурно Nim ближе к традиционным компиляторам, чем к чистым транспиляторам вроде TypeScript→JS.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 12:28 
так а в чём разница? Компилятор - из исходного кода в машинный код, транслятор - из исходного на одном языке в исходный на другом. А транспилятор - из исходного кода в?

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 13:53 
...в самодостаточный читабельный текст программы на другом ЯП, очевидно же.

Цель компилятора Nim таки давать на выходе бинарник.


"Выпуск языка программирования Nim 2.2.6"
Отправлено АнонимичныйАноним , 04-Ноя-25 16:02 
По вашей логике clang - это компилятор, или же транслятор? Поскольку сборка, изначально, происходит в другой язык - IR LLVM.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Медведь , 04-Ноя-25 17:54 
> так а в чём разница? Компилятор - из исходного кода в машинный код, транслятор - из исходного на одном языке в исходный на другом. А транспилятор - из исходного кода в?

И компилятор, и транспилятор -- трансляторы. Компилятор: исходный код -> машкод/байткод; транспилятор: исходный код на языке A -> исходный код на языке B.

По моему мнению, Nim таки ближе к транспилятору, хотя назовите как хотите, на суть происходящего не влияет. ;)


"Выпуск языка программирования Nim 2.2.6"
Отправлено Шизгорин , 04-Ноя-25 16:42 
Ты просто прицепился к словам. Сами они называют это компилятором, а использование промежуточного Си преподносят как фичу.

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 18:43 
clang, получается, тоже транслятор?

"Выпуск языка программирования Nim 2.2.6"
Отправлено Аноним , 04-Ноя-25 13:03 
>детерминированное управление памятью с поддержкой нескольких стратегий (ARC/ORC, refc, маркировка-и-подметание)

И получение граблей на ровном месте
>Оптимизация move-семантики для полей объектов

Но всё же, у них там ещё и сборщик мусора зачем-то нужен
>Устранена фундаментальная проблема в сборщике мусора при обработке циклических структур данных

Видимо слишком простым язык получился, перед крестами стыдно.
>Исправлена утечка сокетов в asyncnet при ошибках согласования TLS-соединения:

Ошибка в сетевых соединениях исправлена в языке, не в библиотеке, а в языке. Особенно приятно будет во всяких дебианах, ждать ещё года два.
>Устранён эффект «утечки» отключения предупреждений за пределы pragma-блоков:

Похоже, они действительно решили догнать кресты по сложности.


"Выпуск языка программирования Nim 2.2.6"
Отправлено Троллль , 04-Ноя-25 13:54 
Чем это лучше хруста?

"Выпуск языка программирования Nim 2.2.6"
Отправлено Троллль , 04-Ноя-25 15:12 
Чем это лучше хруста?