The OpenNET Project / Index page

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

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

18.10.2020 16:17

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

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

  • Представлен новый сборщик мусора ORC ("--gc:orc"), который использует тот же алгоритм подсчёта ссылок на объекты, что и в предложенном в прошлом выпуске сборщике мусора ARC, но дополнительно поддерживает обработчик циклов, позволяющий использовать ARC с реализацией механизма async в стандартной библиотеке.
  • Добавлен экспериментальный режим ужесточения проверок при определении функций, при котором выводится ошибка при выявлении возможности мутации объектов, доступных через параметры, определённые без явного указания типа. Режим активируется при помощи pragma '{.experimental: "strictFuncs".}' или флага "--experimental:strictFuncs".
  • Внесены многочисленные изменения и улучшения в стандартную библиотеку и компилятор.


  1. Главная ссылка к новости (*https://nim-lang.org/blog/202...)
  2. OpenNews: Увидел свет язык программирования Nim 1.0
  3. OpenNews: Релиз языка программирования Nim 1.2.0
  4. OpenNews: Релиз языка программирования Go 1.15
  5. OpenNews: Выпуск компилятора для языка программирования Vala 0.50.0
  6. OpenNews: Доступен Snek 1.5, Python-подобный язык программирования для встраиваемых систем
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53909-nim
Ключевые слова: nim
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (97) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 16:21, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –22 +/
    >По аналогии с Python в Nim в качестве разделителей блоков применяются отступы.

    В топку. Дальше про язык можно ничего не знать. Даже если в нём реализованы какие-то действительно интересные возможности.

    Это до какой же степени нужно себя не уважать чтобы стандарт языка регламентировал внешний вид листинга?

     
     
  • 2.5, Аноним (5), 16:39, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –14 +/
    а мне нравится, очень удобно
    знаете, на форумах всякие пишут без абзацев и знаков препинания, вот
    а в целом, конечно, фигурные скобки и точка с запятой - лютое говно, какой-то очередной "творец" придумывал
     
     
  • 3.63, Аноним (63), 21:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > знаете, на форумах всякие пишут без абзацев и знаков препинания, вот

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

     
  • 3.84, asdasdasd (?), 11:00, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > а в целом, конечно, фигурные скобки и точка с запятой - лютое говно, какой-то очередной "творец" придумывал

    Ага, очень говно, возможность моментально глазами увидеть локальную область это очень говно, ага.

     
  • 2.8, OpenEcho (?), 17:06, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А ничего, что языку уже 12 лет ?
     
     
  • 3.11, A.Stahl (ok), 17:20, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какая разница сколько ему лет? Питон тоже не вчера появился.
     
     
  • 4.15, OpenEcho (?), 17:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Какая разница сколько ему лет? Питон тоже не вчера появился.

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

     
  • 3.81, Аноним (81), 08:29, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >уже 12 лет

    https://www.opennet.ru/openforum/vsluhforumID3/122143.html#79

     
  • 2.10, Аноним (10), 17:19, 18/10/2020 Скрыто модератором
  • –10 +/
     
     
  • 3.18, Аноним (-), 18:01, 18/10/2020 Скрыто модератором
  • –4 +/
     
     
  • 4.28, банан (?), 18:55, 18/10/2020 Скрыто модератором
  • –2 +/
     
  • 3.20, OpenEcho (?), 18:10, 18/10/2020 Скрыто модератором
  • +8 +/
     
     
  • 4.22, Аноним (10), 18:36, 18/10/2020 Скрыто модератором
  • –7 +/
     
  • 3.48, анонн (ok), 21:15, 18/10/2020 Скрыто модератором
  • +/
     
  • 2.16, Аноним (-), 17:58, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    о, чрезвычайно важное мнение типичного опеннет-иксперта, держи в курсе
     
  • 2.35, Аноним (-), 20:20, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Тебя на ЛОРе забанили за троллинг. Ты и здесь хочешь? Можем повторить.
     
     
  • 3.93, заминированный тапок (ok), 10:36, 20/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    особенно Аннон :-D
    со словами "можем повторить" и надписью "НА ЛОР!" туда можешь и поехать
     
  • 2.38, Annoynymous (ok), 20:24, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ох, тебя-то и не спросили. Но ничего, в следующий раз ты разработаешь правильный, уважающий тебя язык.
     
  • 2.40, Аноним (40), 20:26, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Python воспринимаю нормально, поэтому и в Nim блоки кода оступами тоже норм.
     
  • 2.100, Брат сестры друга соседа отца того парня (?), 00:25, 26/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скобочный синтаксис устарел. Ты просто боишься признать это. Все сишники прячут скобки в конец строки что бы их не было видно, разделяя области видимости отступами. Посмотри исходники ААА+++ проектов, это не я придумал, а такова жизнь. Смирись с этим.

    Вот типичный код, 90% скобки ставят именно так (хотя я сам не ставлю так, но всё же):

    for(int i = 0; i < 10; i++) {
        print("%i\n", i);}

    Чем же пример выше, хуже этого:

    for i in range(10):
        print(i)

    ?

     

  • 1.2, Аноним (2), 16:21, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    Остальные языки будто маломощные, по сравнению с ним.
     
  • 1.3, Sin2x (ok), 16:23, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Nim будущее системного программирования, а никакой не раст.

    https://github.com/kostya/benchmarks

     
     
  • 2.13, topin89 (ok), 17:53, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Быстрого ещё может. Но не системного. Языки со сборкой мусора не могут претендовать на системное программирования. Ну то есть технически может и могут, но на практике не выходит.
    А так да, язык хороший.
     
     
  • 3.17, Sin2x (ok), 18:01, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это некорректное утверждение. Nim не просто подходит как язык для системного программирования, он _позиционируется_ как язык для системного программирования.

    https://nim-lang.org/

    "Nim is a statically typed compiled systems programming language".

    А вот тебе живой пример ядра на ниме:

    https://github.com/dom96/nimkernel

     
     
  • 4.42, topin89 (ok), 20:52, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нда, у systems programming language слишком значений Я не знаю, что здесь имело... большой текст свёрнут, показать
     
     
  • 5.49, анонн (ok), 21:21, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Пример хороший, пока не находишь в конфиге вот это : "--gc:none". В
    > самом примере это обходится очень просто -- там память не выделяется.
    > А придётся.

    ...
    > работы с памятью. И рано или поздно для адекватной производительности этом
    > может понадобиться. В Расте есть. В C и C++ есть.

    Т.е. использование "ручных" типов ссылок (первая же строчка)
    PVIDMem* = ptr array[0..65_000, TEntry]
    > Traced references are declared with the ref keyword, untraced references are declared with the ptr keyword.

    Вы предпочли не заметить?

     
     
  • 6.54, topin89 (ok), 21:39, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно заметил Я заметил и каст на блок памяти чуть ниже Это не выделение пам... большой текст свёрнут, показать
     
     
  • 7.60, анонн (ok), 21:50, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как и везде - написать использовать аллокатор Я хотел указать на то, что ваши ... большой текст свёрнут, показать
     
     
  • 8.62, topin89 (ok), 21:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ответил чуть ниже, но всё равно повторюсь Я не знал, что это возможно Тогда да... текст свёрнут, показать
     
  • 5.50, Sin2x (ok), 21:28, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://nim-lang.org/docs/gc.html

    In addition to GC_ref and GC_unref you can avoid the garbage collector by manually allocating memory with procs like alloc, alloc0, allocShared, allocShared0 or allocCStringArray. The garbage collector won't try to free them, you need to call their respective dealloc pairs (dealloc, deallocShared, deallocCStringArray, etc) when you are done with them or they will leak.

     
     
  • 6.57, topin89 (ok), 21:45, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > https://nim-lang.org/docs/gc.html
    > In addition to GC_ref and GC_unref you can avoid the garbage collector
    > by manually allocating memory with procs like alloc, alloc0, allocShared, allocShared0
    > or allocCStringArray. The garbage collector won't try to free them, you
    > need to call their respective dealloc pairs (dealloc, deallocShared, deallocCStringArray,
    > etc) when you are done with them or they will leak.

    Что сделает язык красивым C++. Так-то тоже неплохо, но rust с его проверками на этапе компиляции и явной маркировкой unsafe для подобных вызовов всё же лучше.

    Но, ладно, раз есть такая низкоуровневая возможность, как и возможность написать свою версию alloc/dealloc прямо на Nim, я признаю язык системным.

     
     
  • 7.83, Аноним (83), 10:37, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    За Nim стоит чуть ли не один человек, за rust целая команда, большая популярность, и заинтересованность больших корпораций.
     
  • 3.34, Аноним (34), 20:15, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    как понял, GC у него опционально вкл/выкл
     
     
  • 4.43, topin89 (ok), 20:53, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > как понял, GC у него опционально вкл/выкл

    Это да. Но в режиме gc:none память никогда не будет освобождена. К счастью, там много разных сборщиков, в т.ч. легковесный arc и чуть менее легковесный orc.

     
  • 3.51, Аноним (51), 21:29, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На практике он по потреблению памяти сравним с C / C++ / Rust. По быстродействию тоже. Причём на разных тестах от разных авторов.

    Что говорит что он отлично подходит для embedded из коробки.

     
     
  • 4.58, topin89 (ok), 21:48, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На практике он по потреблению памяти сравним с C / C++ /
    > Rust. По быстродействию тоже. Причём на разных тестах от разных авторов.
    > Что говорит что он отлично подходит для embedded из коробки.

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

     
  • 3.95, Аноним (95), 03:15, 21/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз с этим сейчас идёт работа - https://habr.com/ru/post/523674/ и так далее. Если использовать чисто ARC, то никакого трейсинга нет - просто RAII и подсчёт ссылок.
     
  • 3.98, BrainFucker (ok), 05:55, 24/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Языки со сборкой мусора не могут претендовать на системное программирования.

    А зачем вам мусор в системе? Не все под винду разрабатывают. В nim нельзя опционально отключить сборщик мусора?

     
     
  • 4.99, topin89 (ok), 22:20, 24/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Языки со сборкой мусора не могут претендовать на системное программирования.
    > А зачем вам мусор в системе? Не все под винду разрабатывают. В
    > nim нельзя опционально отключить сборщик мусора?

    Я там чуть выше писал, что сменил свою точку зрения. Сборщик мусора можно отключить, и можно использовать ручное выделение и развыделение (о чём я не знал, когда писал, что не системный). Так мы получаем красивый C, системный язык наравне с C,C++ И D.

     

  • 1.4, Аноним (4), 16:24, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript.

    кажется это называется не компиляция, а трансляция

     
     
  • 2.6, m.makhno (ok), 16:49, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Трансляция - общее определение. Исходный код может быть скомпилирован или интерпретирован. В данном случае - скомпилирован, так как интерпретация подразумевает ещё и его выполнение.
     
     
  • 3.67, Sw00p aka Jerom (?), 22:09, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    не путайте, процесс ПОДГОТОВКИ к исполнению с самим процессом исполнения. А сам процесс исполнения уже делиться на непосредственное машинное исполнение (нативное - то есть в роли интерпретатора выступает ЦПУ) и программное исполнение (то есть в роли интерпретатора выступает сам язык программирования или виртуальная машина).

    > Трансляция - общее определение.

    В общем определении - ПРОЦЕСС перевода.

    > Исходный код может быть скомпилирован или интерпретирован.

    Тут два разный ПРОЦЕССА и или между ними - ни к месту.

    Вот тут интерпретирован - общее понятие ПРОЦЕССА исполнения, а скомпилирован - ПРОЦЕСС подготовки к исполнению.


     
  • 2.14, topin89 (ok), 17:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Транспиляция точнее
    https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0
     
     
  • 3.64, Sw00p aka Jerom (?), 21:55, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Этот термин придумали смузихлебы, а весь процесс есть S2S трансляция.
     
     
  • 4.66, topin89 (ok), 22:01, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Этот термин придумали смузихлебы, а весь процесс есть S2S трансляция.

    И как это расшифровывается? Нашёл только Speech-to-speech translation, и это голосовой перевод.

     
     
  • 5.68, Sw00p aka Jerom (?), 22:10, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    кхмм, пройдите по англоязычной версии ссылки которую вы указали.

    https://en.wikipedia.org/wiki/Source-to-source_compiler

     
     
  • 6.69, topin89 (ok), 22:14, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > кхмм, пройдите по англоязычной версии ссылки которую вы указали.
    > https://en.wikipedia.org/wiki/Source-to-source_compiler

    Чёрт! Спасибо.

     

  • 1.7, Аноним (51), 16:56, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Смотрел на Nim. Потрясающий язык программирования. Наверное максимально близок к идеальному из существующих.

    Удивительно быстр, быстрее Rust. При этом с GC. Лаконичен.

    Позволяет бесшовную интеграцию с C / C++, опять же, в отличие от Rust.

    Код выглядит очень понятно, в отличие от C++.

    Жаль что пока не популярен.
    Лучшая замена C и C++.

     
     
  • 2.12, Аноним (12), 17:26, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть еще zig
     
  • 2.19, Sin2x (ok), 18:04, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Он с каждой версией всё лучше и лучше. Вот этот пост прочитай:

    https://nim-lang.org/blog/2020/10/15/introduction-to-arc-orc-in-nim.html

     
     
  • 3.21, Sin2x (ok), 18:17, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Русский, кстати, забавно:

    https://github.com/Yardanico

    На хабре есть перевод той статьи: https://habr.com/ru/post/523674/

     
     
  • 4.96, Yardanico (ok), 03:17, 21/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да, здрасте :) Пост вообще спонтанно написал, сначала на dev.to запостил, но людям понравилось, поэтому потом на официальный блог запостили (https://github.com/nim-lang/website/pull/230) и я уж перевёл на русский на Хабр (а другой человек на итальянский ещё сделал перевод).

    Сам я Nim просто как хобби занимаюсь, потому что пока студент, времени много :)

     
  • 2.24, анонимус (??), 18:41, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Потрясающий
    >Жаль что пока не популярен.

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

     
     
  • 3.53, Аноним (51), 21:37, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен. Но есть возможность что кто-то вложится.

    Особенно если стартап его будет использовать и вырастет во что-то большее как Facebook тянул PHP / MySQL.

    12 лет ему, говорят. Это уже хороший знак что вкладываться можно.

     
     
  • 4.82, Аноним (81), 08:31, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >12 лет ему

    https://www.opennet.ru/openforum/vsluhforumID3/122143.html#79

     
  • 2.39, Аноним (-), 20:25, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А мощные игры на нем делать можно, как на С++? Уже сделали хоть одну?
     
     
  • 3.65, topin89 (ok), 21:59, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А мощные игры на нем делать можно, как на С++? Уже сделали
    > хоть одну?

    Да. Скорость позволяет и удобная интеграция с C++ позволяет.
    Нет. О движках тоже не слышно.

    Увы, nim не на хайпе, так что вряд ли кто уже напишет.

     
     
  • 4.86, Sin2x (ok), 11:51, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем ты комментируешь о том, в чём не разбираешься?

    https://github.com/nim-lang/Nim/wiki/Curated-Packages#games

     
     
  • 5.88, topin89 (ok), 20:46, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем ты комментируешь о том, в чём не разбираешься?
    > https://github.com/nim-lang/Nim/wiki/Curated-Packages#games

    ОК, начнём с определений. Мощные игры -- это в первую очередь 3D игры с отличной графикой и кучей контента. Те самые AAA игры. Я не нашёл даже AaaaaAAaaaAAAaaAAAAaAAAAA игр.
    Я даже не сомневался, что есть просто игры. Тетрис и шахматы, в нашем случае. И эмулятор NES, что отлично.
    Для таких игр нужен достойный движок как в техническом плане, так и плане удобства. Ну или инди команда, которая решила, что будет делать на Nim. Вроде пока ни того ни другого нет.

    Если знаешь такую -- с радостью поменяю мнение. Затем и пишу.

     

  • 1.9, Аноним (34), 17:17, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Как у него с ООП и графикой?
     
     
  • 2.23, анонимус (??), 18:36, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >ООП

    https://nim-lang.org/docs/tut2.html#object-oriented-programming

    >графикой

    https://github.com/nim-lang

     
     
  • 3.26, анонимус (??), 18:48, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Плюс поддерживает горячую замену кода https://nim-lang.org/docs/hcr.html
     
  • 3.87, Аноним (87), 16:28, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Опять путают ООП с наследованием, ну что ж такое.
     
  • 2.37, Аноним (-), 20:24, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да.
     

  • 1.25, Аноним (-), 18:47, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1) Какие именно ОСОБЕННОСТИ ЭТОГО ЯЗЫКА не дадут программисту сделать ошибки которые он мог бы сам понаделать в результирующих языках "C, C++ или JavaScript"? 2) Или может есть некие **особенности Nim-языка** которые просто позволили создать некие эффективные СРЕДСТВА машинной проверки **именно** Nim-кода (т.е. такие средства которые в других языках попросту не возможны! или в других языках - часто лажают, или не эффекивны там)?
     
     
  • 2.45, topin89 (ok), 21:00, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > 1) Какие именно ОСОБЕННОСТИ ЭТОГО ЯЗЫКА не дадут программисту сделать ошибки которые
    > он мог бы сам понаделать в результирующих языках "C, C++ или
    > JavaScript"? 2) Или может есть некие **особенности Nim-языка** которые просто позволили
    > создать некие эффективные СРЕДСТВА машинной проверки **именно** Nim-кода (т.е. такие средства
    > которые в других языках попросту не возможны! или в других языках
    > - часто лажают, или не эффекивны там)?

    Он всё же не об этом. Считай, что это такой быстрый питон с нормальным многопотоком.

     

  • 1.27, oni6667891011121314151617181920212223 (?), 18:52, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    в состав GCC не собираются ли его вкрутить?
     
     
  • 2.29, Sin2x (ok), 19:03, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ним и так поддерживает любые компиляторы С.

    https://nim-lang.org/faq.html

    "How do I use a different C compiler than the default one?"

     
     
  • 3.30, oni666789101112131415161718192021222324 (?), 19:21, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ним и так поддерживает любые компиляторы С.
    > https://nim-lang.org/faq.html
    > "How do I use a different C compiler than the default one?"

    да, я в курсе. но меня интересует именно встраивание в GCC

     
     
  • 4.31, Sin2x (ok), 19:35, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем? Что это по-твоему должно дать?
     
  • 4.47, topin89 (ok), 21:08, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Ним и так поддерживает любые компиляторы С.
    >> https://nim-lang.org/faq.html
    >> "How do I use a different C compiler than the default one?"
    > да, я в курсе. но меня интересует именно встраивание в GCC

    Не знаю, но вряд ли. GCC под GPL, Nim под MIT.

     
  • 2.41, Аноним (-), 20:27, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А сам чего не вкрутишь? Силенок ни-ни? ;)
     
     
  • 3.44, oni666789101112131415161718192021222324 (?), 20:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    мне он не на столько сильно нужен, чтобы этим заниматься.

    по факту включения в GCC я сужу о полезности языка, коим Nim не считаю.

     
     
  • 4.52, topin89 (ok), 21:31, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > мне он не на столько сильно нужен, чтобы этим заниматься.
    > по факту включения в GCC я сужу о полезности языка, коим Nim
    > не считаю.

    Языки gcc

    C              (адски полезен, используется во всех остальных языках)
    C++            (адски полезен в сфере сложных и быстрых проектах. Не особо в остальных сферах)
    Objective-C    (не особо полезен, кроме Apple. Но там он может очень полезен)
    Objective-C++  (не знаю. Что это вообще такое?)
    Fortran,       (не особо полезен, кроме BLAS. И то скорее легаси)
    Ada,           (не особо полезен, кроме NASA, и тоже легаси)
    Go             (довольно полезен, надо отдать должное)

    За пределами gcc:

    Python         (адски полезен везде, где скорость разработки много важнее скорости выполнения)
    C#             (полезен для кошелька, но честно, сфер применения не знаю)
    Java           (полезен для кошелька и очень полезен для Android-разработки)
    Lua            (полезен как скриптовый язык)
    Swift          (полезен для разработки под Apple. Сфера специфична, но рынок большой)
    TypeScript     (полезен хотя бы тем, что не JavaScript)

    Я думаю, так себе критерий. В gcc хотят добавить фронт для Раста. Будет ли он лично для тебя нормальным языком, если добавят?

     
     
  • 5.55, oni666789101112131415161718192021222324 (?), 21:43, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >фронт для Раста

    добавят - хорошо. перспективный и многообещающий язык и технология.

     
  • 5.56, Аноним (56), 21:45, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    D - забыл
     
     
  • 6.59, topin89 (ok), 21:50, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > D - забыл

    Это вроде сторонний фронт. Тогда можно и паскаль с модулой до кучи.

     
     
  • 7.71, an (??), 22:30, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не сторонний. При сборке gcc включается опцией  --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d
     
  • 6.73, an (??), 22:37, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, у D тоже можно без сборщика мусора https://dlang.org/spec/betterc.html
     
     
  • 7.74, Аноним (2), 23:01, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но без стандартной библиотеки.
     
  • 2.85, an2 (?), 11:11, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Компилятор Nim (https://www.archlinux.org/packages/community/x86_64/nim/) не такой жирный по сравнению с тем же Rust, которому нужен llvm. В репах поддерживать Nim довольно просто.
     

  • 1.32, Аноним (32), 19:42, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как он может быть с GC если транслируется в C++ код?
     
     
  • 2.33, Аноним (33), 20:03, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    каком кверху, учи букварь
     
  • 2.46, topin89 (ok), 21:03, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Как он может быть с GC если транслируется в C++ код?

    При трансляции всё, что нужно чистить оборачивается в подходящие структуры для сборки и/или вызовы сборщика. Не обязательно даже свои родные, пойдут и сторонние, типа BoehmGC (он вообще для чистого C писался) или Go'шный сборщик. Потом это сборщик подключается отдельной библиотекой.

     

  • 1.36, Аноним (-), 20:23, 18/10/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –3 +/
     
  • 1.61, Аноним (61), 21:50, 18/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    За 12 лет есть какие-то значимые проекты на этом языке?
     
     
  • 2.70, an (??), 22:23, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Смотря для кого значимые. Например, для меня нет ни одного значимого проекта на C# или Objective-C.
    А попсы на Nim нет.
     
  • 2.72, Sin2x (ok), 22:37, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Во-первых, первая стабильная версия нима зарелизилась только в сентябре прошлого года.

    Во-вторых, тебе сюда:

    https://github.com/nim-lang/Nim/wiki/Curated-Packages

     
     
  • 3.75, Аноним (61), 23:54, 18/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, почитаю.
     
  • 3.76, Аноним (61), 00:06, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Открыл первую интересную мне ссылку - finddit. Сайта нет.

    Погуглил, какой-то фейсбучек, туиттор... Социальные активности. Проекта не увидел. Наверное плохо искал.

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

    Ну... Такое себе...

    Хотя язык любопытный и, безусловно, заслуживает внимания.

     
     
  • 4.78, Sin2x (ok), 00:39, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Открыл первую интересную мне ссылку - finddit. Сайта нет.
    > Погуглил, какой-то фейсбучек, туиттор... Социальные активности. Проекта не увидел. Наверное
    > плохо искал.
    > Остальное... люди сами себе пишут библиотеки, которых в ниме, ессно, нет. Ну
    > пишут, да. Всего этого на фортранах, сях, перлах и прочих питонах
    > с явами написано сотнями тысяч.
    > Ну... Такое себе...
    > Хотя язык любопытный и, безусловно, заслуживает внимания.

    Finddit это не проект, а автор. По поводу проектов всё будет, первый стабильный релиз состоялся только года назад.


     
  • 2.80, Аноним (81), 08:28, 19/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >12 лет

    https://www.opennet.ru/openforum/vsluhforumID3/122143.html#79

     

  • 1.77, Аноним (77), 00:11, 19/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Вообще то сначала конвертируется, ну максимум, транслируется, в представление C++, а потом уже компилируется...
     
  • 1.79, Аноним (81), 08:27, 19/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Языку не 12 лет, неправильно считаете. Надо начинать отсчёт с первой стабильной версии.

    Rust появился в 2007 году, версия 1.0 в 2015 году.
    Go появился в 2008 году, версия 1.0 в 2012 году.
    Nim появился в 2008 году, версия 1.0 в 2019 году.

     
  • 1.89, Аноним (89), 23:00, 19/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А что у него с пакетной системой? Как в питоне "принеси мне модуль какой попало версии", так что про повторимые сборки можно забыть или как в расте "принеси мне модуль ровно этой версии" так что за обновлениями всего дерева зависимостей приходится следить автору кода? Или всё-таки предусмотрена нормальная интеграция с системными пакетными репами?
     
     
  • 2.94, annn (?), 13:21, 20/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пакетный менеджер называется nimble. Работает норм.
     

  • 1.90, СССР (?), 00:55, 20/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    очередное засерание мозгов
    табуляция определяет логику , это полная дичь.
     
     
  • 2.97, Аноним (97), 06:01, 21/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ля ты дикий какой, узбагойся
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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