The OpenNET Project / Index page

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

Релиз языка программирования Nim 2.0

02.08.2023 14:06

Представлен релиз языка системного программирования Nim 2.0. Язык Nim ориентирован на решение задач системного программирования, использует статическую типизацию и создан с оглядкой на Pascal, C++, Python и Lisp. Исходный код на языке Nim компилируется в представление на C, C++, Objective-C или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора (clang, gcc, icc, Visual C++), что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора. По аналогии с Python в Nim в качестве разделителей блоков применяются отступы. Поддерживаются средства метапрограммирования и возможности для создания предметно-ориентированных языков (DSL). Код проекта поставляется под лицензией MIT.

Среди изменений в новом выпуске:

  • По умолчанию задействован сборщик мусора ORC, который использует тот же алгоритм подсчёта ссылок на объекты, что и сборщик мусора ARC, но дополнительно поддерживает обработчик циклов, позволяющий использовать ARC с реализацией механизма async в стандартной библиотеке.
  • Улучшена распаковка кортежей и добавлена возможность вложенной распаковки:
    
       proc returnsNestedTuple(): (int, (int, int), int, int) = (4, (5, 7), 2, 3)
       let (x, (_, y), _, z) = returnsNestedTuple()
    
  • Добавлена возможность нисходящего вывода типов:
    
       let foo: seq[(float, byte, cstring)] = @[(1, 2, "abc")]
    
  • Добавлена прагма .forbids для определения запрещённых тегов.
  • В стандартной библиотеке модуль "os" разделён на несколько отдельных модулей: std/oserrors, std/envvars, std/paths, std/dirs, std/files, std/symlinks, std/appdirs и std/cmdline.
  • Стабилизирована поддержка перегрузки перечисляемых типов (enum).
  • Для объектов предоставлена возможность определения значений полей по умолчанию.
    
       type
         Rational* = object
           num: int = 0
           den: int = 1
    
  • Бэкенд для генерации кода JavaScript переведён на использование типа BigInt для 64-разрядных целых типов (int64 и uint64).
  • Улучшена переносимость с кодом на языке C++.


  1. Главная ссылка к новости (https://nim-lang.org/blog/2023...)
  2. OpenNews: В openSUSE обеспечена полная поддержка языка программирования Nim
  3. OpenNews: Релиз языка программирования Nim 1.6.0
  4. OpenNews: Создатель LLVM развивает новый язык программирования Mojo
  5. OpenNews: В языке программирования Zig обеспечена поддержка самораскрутки (bootstraping)
  6. OpenNews: Доступен язык программирования Julia 1.9
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59542-nim
Ключевые слова: nim
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (112) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 14:16, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Надо попробовать переписать на него свои питоно-скрипты. Отпишусь в следующей новости о результатах.
     
     
  • 2.7, Killer (??), 14:20, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –10 +/
    . Неинтересно
     
  • 2.22, Аноним (22), 15:14, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Без шуток, отпишись о результатах. Может, тоже перепишу вслед, если опыт удастся
     
  • 2.26, YetAnotherOnanym (ok), 15:37, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Интересно.
     
  • 2.28, Жироватт (ok), 15:55, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нахрена? А главное - зачем? Если работает и при этом есть не просит.
     
     
  • 3.68, Аноним (68), 00:11, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Видать, долго работает. Пока получит результат - три раза успевает пожрать - утром, в обед и вечером.
     
  • 2.32, Golangdev (?), 16:31, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > питоно-скрипты
    > Исходный код на языке Nim компилируется
     
     
  • 3.35, n00by (ok), 17:39, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Бывают даже интерпретаторы Си.
     
  • 3.51, 12yoexpert (ok), 19:45, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    если у тебя в системе есть компилятор си, ты можешь юзать nim, в отличие от rust
     

  • 1.3, лох (?), 14:17, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора

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

     
     
  • 2.9, Аноним (9), 14:30, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ник у тебя верный
     
     
  • 3.38, Аноним (38), 18:05, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это аллюзия на другого персонажа, просто замените "Л" на "П".
     
     
  • 4.61, _ (??), 22:36, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    У того персонажа оно конечно - менопауза, но мозги то - есть ... в отличии от дешёвой китайской подделки :)
     
  • 2.104, Аноним (104), 17:44, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Компилируемые языки позволяют получить результат мгновенно, если не учитывать затраты на рантайм.
     

  • 1.8, Аноним (8), 14:27, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Уже ведь есть golang, чем nim принципиально отличается чтобы его выбирали вместо golang?
     
     
  • 2.10, Алексей (??), 14:31, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Он проще
     
     
  • 3.25, Ф1 (?), 15:36, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    >Он проще

    Язык с метапрограммированием, уровня лиспа (синтаксические макросы) и/или С++ (генерики и что-то похожее на шаблоны С++) проще чем Go?

     
     
  • 4.40, Аноним (40), 18:46, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Julia?
     
  • 4.49, Аноним (49), 19:41, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А зачем сегодня язык, который метит быть универсальным, без метапрограммирования?
     
  • 2.13, 12yoexpert (ok), 14:42, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    проще, на порядок производительнее, не вендорлокнутый (если не учитывать, что автор работает в амазоне и нигде, кроме амазона, свою книгу не продаёт)
     
     
  • 3.14, Owlet (?), 14:58, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а если учитывать?
     
  • 3.16, Охохо (?), 15:00, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ссылку на тесты доставишь? На те самые, где Ним на порядок производительнее Голанга.
     
     
  • 4.20, 12yoexpert (ok), 15:08, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в гугле забанили? первая ссылка
    https://programming-language-benchmarks.vercel.app/go-vs-nim
     
     
  • 5.42, Аноньимъ (ok), 19:08, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > в гугле забанили? первая ссылка
    > https://programming-language-benchmarks.vercel.app/go-vs-nim

    По ссылке где-то обгоняет го в 2 раза.
    А где-то уже го обгоеяет этот ним в 2 раза.

    Так что вы сами себя разоблачили получается. Ещё с таким пафосом.

     
     
  • 6.46, 12yoexpert (ok), 19:34, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а было сразу видно, что ты читать не умеешь, а утверждения привык формулировать со словами-паразитами неуверенности навроде "где-то" и "получается"
     
     
  • 7.55, Аноньимъ (ok), 20:19, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > а было сразу видно, что ты читать не умеешь

    Input: 1000
    lang code time
    go 1-m.go 79ms
    go 1.go 477ms
    nim 1.nim timeout
    nim 1.nim timeout

     
  • 7.127, Аноним (127), 09:58, 05/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так на порядок - это в десятки раз. По ссылке видно что во многих тестах nim отваливается по таймауту, в других в сотни раз медленнее. Производительнее, ага
     
     
  • 8.130, Гы (?), 10:58, 06/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    timeout, так это он просто четустал и пошел на опенет читать комменты Завтра вс... текст свёрнут, показать
     
  • 3.17, Аноньимъ (ok), 15:00, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >на порядок производительнее

    Подобные экстраординарные утверждения требуют хоть каких-то доказательств.

     
     
  • 4.19, 12yoexpert (ok), 15:05, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ты всё, что рушит твой маня-мирок, называешь экстраординарным?
     
  • 3.18, Аноним (18), 15:01, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > на порядок производительнее

    Citation needed.

     
  • 3.76, leap42 (ok), 06:35, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > на порядок производительнее

    это будет где-то в 5 раз быстрее Си и Rust 😄😄😄

     
  • 2.52, Golangdev (?), 19:49, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен. В корпорациях так и делают - выбирают промышленные языки, PHP, Java, Go...

    Что приводит к тому что вокруг них появляется коммьюнити и экосистема, популярные Open Source.

    Я даже не буду спрашивать, что из этого есть у Nim. Есть ли хоть один проект, уровня Kubernetes или CockroachDB. Ответ немного предсказуем.

    Но пожелаем удачи проекту, посмотрим, чем он сможет нас порадовать лет через 5-10.

     
     
  • 3.77, leap42 (ok), 06:38, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В корпорациях так и делают - выбирают промышленные языки, PHP, Java, Go...

    Это что за корпорации такие PHP берут? C#, Java, GO, Python видел. А PHP только в стартапах видел, и как легаси в бывших стартапах (мордокнига там, вконтакут).

     
     
  • 4.80, User (??), 07:42, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    1Цэ битрикс и куча го(д|в)ноты на ём - если за страну родных осин.
     
     
  • 5.114, Нанонимус53 (?), 23:17, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Все потроха продуктов компании 1С настолько вонючее говно, что я бы не доверял их выбору.
     
  • 4.115, cheburnator9000 (ok), 23:34, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Например, весь веб интерфейс игры Path of Exile крутится на PHP и trade тоже. Понятно что индексер там написан на чем-то быстром. И все держится практически на одном разработчике.
     
     
  • 5.118, leap42 (ok), 06:47, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, весь веб интерфейс игры Path of Exile крутится на PHP и
    > trade тоже. Понятно что индексер там написан на чем-то быстром. И
    > все держится практически на одном разработчике.

    Path of Exile EA написали или Ubisoft? Ах, нет, это был какой-то стартап, что возвращает нас к моему изначальному тезису.

     
  • 2.84, 1 (??), 09:02, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Он не стучит на тебя в корпорацию добра.
     

  • 1.11, 12yoexpert (ok), 14:37, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    без сомнения лучший язык
     
     
  • 2.63, _ (??), 22:44, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >без сомнения лучший язык

    ... это - заливной телячий, под чесночным соусом и под стопочку пшеничной водки.
    У меня есть мнение - хрен оспоришь! ТЧК.

     

  • 1.15, Аноньимъ (ok), 14:59, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >что позволяет добиться производительности близкой к Си

    Это типо какой-то особый перк?

     
     
  • 2.21, 12yoexpert (ok), 15:09, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    вам, jvm-щикам, никогда не понять, ваш поезд ушёл
     
  • 2.30, Жироватт (ok), 16:04, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В современных системах, где "программа выполняется в интерпретаторе, который выполняется в "не-виртуалка-а-контейнер" внутри полноценного виртуального хоста в виртуальной машине, которая, в свою очередь, выполняется низкоуровневой IL-виртуалке" - да, это перк.

     
     
  • 3.41, Аноньимъ (ok), 19:05, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз в таком случае это значения никакого не играет...
     
  • 3.45, Аноньимъ (ok), 19:18, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вообще удивительно как люди умудряются прочитать мое сообщение таким извращённым образом.

    Я вам пишу - какая-то особая прозвидительности сишки это миф.
    Мне отвечают - да сишка очень быстрая вот бы всем так.
    У людей ментальный блок.

    И русского языка ещё и не знают.

     
     
     
    Часть нити удалена модератором

  • 5.54, Аноньимъ (ok), 20:13, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > а отсутствие запятой у меня ты даже не заметишь

    Снявши голову, по волосам не плачут.

     
     
  • 6.87, 12yoexpert (ok), 10:42, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    что у тебя голова, если волосы - грамотность?
     
  • 5.57, JackONeill (?), 21:17, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сказал ыксперт, который написал больше всех комментов к новости )))
     
  • 5.58, JackONeill (?), 21:21, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И точку забыл)
     
     
  • 6.88, 12yoexpert (ok), 10:43, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    точки в конце сообщений/фраз вызывают дискомфорт у собеседника в неформальном интернет-общении, учёные доказали (с)
     
     
  • 7.113, JackONeill (?), 22:09, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как и запятые, полагаю?) Ссылочку на исследование скинете?)
     
     
  • 8.121, 12yoexpert (ok), 14:59, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    нет, и с запятыми у меня всё идеально... текст свёрнут, показать
     
     
  • 9.126, JackONeill (?), 21:07, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    С запятыми может и нормально, а вот с пониманием контекста беседы похоже не очен... текст свёрнут, показать
     
  • 8.131, Гы (?), 11:04, 06/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Запятые в конце сообщения доставляют ещё больший дискомфорт чем точки так-то,... текст свёрнут, показать
     

  • 1.23, keydon (ok), 15:16, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вполне читаем. Таким должен был быть раст.
     
     
  • 2.53, Golangdev (?), 19:52, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в чё по-вашему проблема с Растом ?
     
     
  • 3.64, _ (??), 22:46, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В растишках! (С)

    А так язык - да и язык. И не такие видывали :)

     
     
  • 4.96, Аноним (96), 15:00, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А так язык - да и язык. И не такие выкидывали ;)
     

  • 1.27, Аноним (27), 15:54, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > создан с оглядкой на Pascal, C++, Python и Lisp. Исходный код на языке Nim компилируется в представление на C, C++, Objective-C или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл

    Август только начался, а приз месяца "За рвение шаблонов" уже выиграли.

     
     
  • 2.29, Жироватт (ok), 16:01, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну и норм же.

    Взяли удачные находки у языков, // Хотя блоки-отступами я не понимаю. Короткий { ... } таки выразительней
    красиво совместили их в один язык, // Ну допустим, как минимум без оглядки на совместимость с легаси-синтаксисом
    добавили немного рантайм-сахара // Что плохого в фоновом сборщике так никто и не пояснил.
    Далее пользовательский код транспилируется в язык, для которого есть mature (слово "зрелый" в русском не несёт той коннотации) компилятор и собирается.

     
     
  • 3.31, Аноним (27), 16:05, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > JavaScript. В дальнейшем полученный C/C++ код

    И вам удачной трансэпиляции.

     
     
  • 4.34, n00by (ok), 17:38, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Удача нужна Linux (ядру) на архитектурах, для которых Rust не умеет генерировать код.
     
     
  • 5.36, Советский инженер (?), 17:46, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ха ха
    Не, чувак, удача нужна таким архитектурам.
     
     
  • 6.102, n00by (ok), 17:22, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    "Горжусь, что Линукс работает на Эльбрус!" (ц)
     
  • 5.97, Аноним (96), 15:05, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ура! У Эльбруса появилась надежда!
     
     
  • 6.103, n00by (ok), 17:27, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсанул и заплакал от счастья.
     
  • 6.132, Гы (?), 11:14, 06/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Ура! У Эльбруса появилась надежда!

    У Надежды появился Эльбрус! Она таких уже давно не считает (и ни во что не ставит).

     

  • 1.33, Аноним (33), 16:43, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > По аналогии с Python в Nim в качестве разделителей блоков применяются отступы

    Дальше можно не читать. Хуже только парсить скобки в лиспе, но там хоть понятно зачем.

     
     
  • 2.37, Жироватт (ok), 17:47, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    )
     
  • 2.44, Аноньимъ (ok), 19:10, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> По аналогии с Python в Nim в качестве разделителей блоков применяются отступы
    > Дальше можно не читать. Хуже только парсить скобки в лиспе, но там
    > хоть понятно зачем.

    Хуже только скобки в сишке, и непонятно зачем.

     
     
  • 3.50, 12yoexpert (ok), 19:41, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    если бы ты код на nim хоть раз в глаза видел, знал бы, зачем, а пока смысла отвечать тебе по существу столько же, сколько сишнику объяснять js-вкатышу, где в компьютере оперативка
     
     
  • 4.65, _ (??), 22:51, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А ... дык ты Ылита? Предупреждать надо!(С)  :-D
     
  • 4.67, Аноньимъ (ok), 00:02, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >если бы ты код на nim хоть раз в глаза видел, знал бы, зачем

    Посмотрев код на nim понимаешь зачем нужны скобки в сишке?

     
     
  • 5.89, 12yoexpert (ok), 10:43, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    именно так
     

  • 1.39, beck (??), 18:06, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Nim ререводится в С. Значит можно переписать ядро линукса на Nim.

    Хм...

     
     
  • 2.48, 12yoexpert (ok), 19:40, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    в теории можно, если gc отключить, но это, во-первых, будет такой же кастрат, как раст в ядре (только весить будет не в 100 раз больше, чем бинарь на си, а в 10), во-вторых, это как ORM использовать - можно, но если ты в уме сможешь прикинуть, что там под капотом выйдет
     
     
  • 3.56, Аноним (56), 20:41, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > (только весить будет не в 100 раз больше, чем бинарь на си,

    Очередной опеннетный экспертизмъ с пруфами вида "Мы все так говорим, а значит это правда!".

     
     
  • 4.90, 12yoexpert (ok), 10:45, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а ты белу рученьку оттуда оторви и поди собери что-нибудь хоть раз в жизни
     
     
  • 5.112, Аноним (56), 21:52, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > а ты белу рученьку оттуда оторви и поди собери что-нибудь хоть раз в жизни

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

     

  • 1.59, Анонус (?), 21:33, 02/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А в честь чего мажорную версию подняли? Вроде никаких радикальных изменений. Или у них как в ядре, просто циферьки?
     
     
  • 2.66, Аноним (66), 23:50, 02/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тоже удивил этот релиз. Ожидал большего от 2.0.
     
  • 2.78, Советский инженер (?), 07:26, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как митники, там std немного порефакторили.
     
     
  • 3.79, Советский инженер (?), 07:27, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    *минимум
     
  • 2.85, funny.falcon (?), 10:06, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я думал, что 2.0 будет означать, что ORC и ARC стали а) стабильными, б) gc по умолчанию. Не знаю, насколько я прав.
     

  • 1.70, Аноним (70), 01:40, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Интересно, а как у него с интероперабельностью? Можно ли легко подключать питоновские модули там, или дёргать сишные либы? Надеюсь что это не очередная "вещь в себе", очередной "супер-язык-убийца-других-языков" на котором надо "просто переписать вообще всё" типа раста.
     
     
  • 2.75, Пельменный смузи (?), 05:40, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Какая то особенная религия запрещает посмотреть, хотя бы в той же вики Цитата ... большой текст свёрнут, показать
     
     
  • 3.94, Аноним (96), 14:52, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >от скриптовых языков (Python, Lua, Tcl)

    Да ну, даже NumPy и Matplotlib можно?

     
     
  • 4.100, Пельменный смузи (?), 17:02, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вариантов ответа три:
    1. Забей. Это не твоё, или тебе не нужно, или ты не умеешь искать ответы на свои вопросы.
    2. RTFM.
    3. _github.com/yglukhov/nimpy
     
  • 3.108, cheburnator9000 (ok), 20:21, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Nim с другим миром может общаться только через обертки написанные на Си, с Rust через cbindgen. Кроме того к этим Си оберткам нужно будет написать интерфейсы доступа на Nim коде.
     

  • 1.82, fumanchez (ok), 08:19, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему они пишут название типа на следующей строчке? Я знаю, что так можно, и для следующего типа можно будет не писать type, но это же просто лишний уровень отступа.
     
     
  • 2.117, Анониссимус (?), 01:54, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-почему, питонисты покусали.
     
  • 2.133, Anon3 (?), 18:45, 06/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому, что ключевое слово type определяет название секции. Это из паскаля. Секции type, var, const
     
     
  • 3.134, fumanchez (ok), 19:56, 06/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так вопрос в том, зачем им секция, когда в ней всего один элемент, т.е. если можно написать


    type Rational* = object
      num: int = 0
      den: int = 1


    вместо


    type
      Rational* = object
        num: int = 0
        den: int = 1


     
     
  • 4.136, Anon3 (?), 15:15, 07/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем в паскале нельзя было обьявлять переменные в теле процедуры?
    Ежовые рукавицы против творческой жилки в душе програмиста
    Так, вроде, сразу глазами ловишь секции, выбираешь секцию, модально переключаешь мышление на соответствующий DSL, ну там описание типов (или вспоминаешь спинным мозгом ограничения в секции const)
    Ну и может сначала как-то связано было с однопроходным компилятором, а теперь легаси
    Можно было бы и разрешить и так:
    type; Rational*=object; num: int=0; den: int=1; ;; internalFlag=object; val: bool=false; ;; ;;;
    Но это и препроцессором решается
     
     
  • 5.137, Anon3 (?), 15:24, 07/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Извиняюсь:
    из документации
    type Foo* = enum abc
     
  • 5.138, fumanchez (ok), 17:47, 07/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда такой фикс на паскале, тем более в таких моментах как объявление переменных (которые к тому же обусловлены ограничениями железа / кривоватой реализацией)? Смысл делать секции, если они почти всегда из одного элемента? В C тоже можно написать например


    double
      x = 0,
      y = 1;

    но никто же так не пишет.
     
     
  • 6.139, Anon3 (?), 19:47, 07/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >> Смысл делать секции, если они почти всегда из одного элемента?

    Заветы дидов о структурном программировании говорят, что написание кода по структуре, структурирует мышление программиста и делает программы меннее подверженными ошибкам.
    Как-бы раньше, програмирование было инженерной дисциплиной и имело смысл сразу допускать минимальное количество ошибок.
    Сейчас програмирование является научной дисциплиной, где это не имеет смысл. Зачем беспокоится о минимальном количестве ошибок и элегантных програмных решениях, если все равно ошибка будет в стороннем модуле, который изучается методом научного тыка, так как документация давно уже неактуальна к коду и вообще не полная. Поэтому для получения работающего решения нужно го.ня.ать по максимуму в данной точке программы и максимально гибко.
    А первые строчки на сайте о Nim
    Efficient, expressive, elegant
    Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula.
    Ну вот Andreas Rumpf упарывается по elegant, Ada and Modula
    Старая гвардия (mature), так сказать

     
     
  • 7.140, Anon3 (?), 19:55, 07/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Наверно, не ответил.
    Если у вас секция состоит почти всегда из одного элемента, вы что-то делаете не так. Не структурно. Вы не произвели декомпозицию задачи и, воообще, походу ее не понимаете.
    Но повторяю, в современных условиях не нужно понимать задачу, надо сделать максимально похожее работающее решение в существующей тяжелой инфраструктуре
     

  • 1.91, Анионим (?), 11:06, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот специально надо добавлять:
    не сборщик мусора, а менеджер памяти как в Rust
    скобочки - прошлый век, 60-е - 70-е года, ЕМНИП
    макросы - не как в С, а нормальные. Насколько помню - 3 варианта, в т.ч. и Hygienic macro, говорят, как в LISP
     
     
  • 2.111, Прохожий (??), 21:10, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что за менеджер памяти в Rust?
     
     
  • 3.124, Аноним (124), 19:55, 04/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    https://doc.rust-lang.ru/book/ch04-01-what-is-ownership.html
     

  • 1.92, Аноним (92), 11:19, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Запутали, загадили макросами и сахаром. Не удержались, ушли в СиПлюснутость. Потому увы, не выстрелит (
     
     
  • 2.95, Аноним (96), 14:54, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так без сахара сейчас ни один новый язык не выстрелит.
     
     
  • 3.107, cheburnator9000 (ok), 20:00, 03/08/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сахар должен быть сбоку от языка, а не так что язык весь в сахаре из-за чего каждый человек занимается только извращением с кодогенерацией вместо читабельности. Лучше бы добавили нормальных человеческих декораторов и на этом успокоились.
     

  • 1.93, Аноним (93), 11:33, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    |По аналогии с Python в Nim в качестве разделителей блоков применяются отступы

    дальше можно не читать...

     
  • 1.98, Аноним (98), 15:40, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Исходный код на языке Nim компилируется в представление на C, C++, Objective-C или JavaScript."

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

     
  • 1.106, cheburnator9000 (ok), 19:58, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ИМХО в nim нужны нормальные классы, эта пародия Go и  Uniform Call Syntax не впечатляют и не добавляют OOP коду читабельности.

    И на настоящий момент огромный недостаток Nim заключается в том что, вместо того чтобы реализовывать библиотеки нормально на коде Nim, люди упариваются в возможности написания "псевдо-декларативной кодогенерации" вместо обычного кода.

     
  • 1.109, cheburnator9000 (ok), 20:24, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плюс у языка очень плого с туллингом. Например по дефолту с VSCode он интегрируется через nimsuggest, а экспериментальная LSP реализация требует грамотной настройки, иначе оно на каждый .nim файл сорцов проекта запустит по процессу и озу моментально закончится. Плагин от JetBrains заброшен емнип с января, одна надежда что кто-то профинансирует плагин для JetBrains или же трудоустроит разработчиков Nim внутри JetBrains что было бы очень круто.
     
  • 1.110, cheburnator9000 (ok), 20:35, 03/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Плюс в nim совершенно из коробки нет такого простого xml/json unmarshal/decoder как в Go, в nim с этим все плохо.
     
  • 1.128, верноговорит (?), 20:19, 05/08/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пробовал этот Nim - не понравился. Ощущение поделки-недоделки от этого яп.
     
  • 1.141, Аноним (141), 22:22, 08/04/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Попробовал и понял, что то лучшее, что есть на данный момент. Полгода программирую на нём. Чистое удовольствие.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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