# ЧЁ? >Nim - это статически типизированный компилируемый язык системного программирования. Он сочетает в себе успешные концепции таких развитых языков, как Python, Ada и Modula. Его дизайн сосредоточен на эффективности, выразительности и элегантности.
> язык системного программирования > Nim distinguishes between traced and untraced references. Untraced references are also called pointers. Traced references point to objects in a garbage-collected heap, untraced references point to manually allocated objects or objects elsewhere in memory. Thus untraced references are unsafe.
>>2350369 Их разрабатывают годами. Да, ошибки могут быть и у них. Clang и GCC использует гораздо больше. Буквально корпорации и куча программистов по всему миру. Заметят ошибку – исправят. Nim настолько непопулярен, что вероятность что не заметят выше. Если я не прав и у Nim есть какие-то гарантии, рад был бы увидеть их.
>>2351889 МЫ ЗАПИЛИЛИ ТРАНСЛЯЦИЮ В ЖС @ ВСМЫСЛЕ ВАСМ ЛУЧШЕ @ ВСМЫСЛЕ ЛЮБОЙ ЯЗЫК КОМПИЛИРУЕТСЯ, ДАЖЕ ПЛЮСЫ!?!! @ ВСМЫСЛЕ ТАЙПСКРИПТ ЛУЧШЕ РАЗ УЖ КОМПИЛИРУЕМ @ Ну как же жс везде, пук...
>>2351889 > Nim может транслироваться в js, а zig не может. >>2352157 > Nim и в wasm компилируется. >>2352249 > И?
Ну окей, вот тут прям перекрыл все нападки на язык охуенно красава, но дальше что? В чем смысл его использования если он ничем не выделяется и ничего не привносит особо? Может там удобство абстракций как в современной функциональщине? Или безопасность анальная, но все же как в расте? Рили, вот есть zig, не особо популярный, но выезжает за счёт своих "плюсовских" фишек компайлтайм штуки, простой интероп с си, нативность и при этом более зрелый чем Nim. Тогда нахер последний нужен?
>>2352287 У nim синтаксис проще. Позволяет использовать как несколько разных GC, так и ручное управление памятью. Nim запустится везде, где есть компилятор C, C++ или интерпретатор js. Zig и rust запустятся только там, где есть llvm. А он есть не везде.
> Nim provides memory safety by not performing pointer arithmetic, with optional checks [ https://nim-lang.org/docs/manual.html#pragmas-compilation-option-pragmas ], traced and untraced references and optional non-nullable types. It supports Valgrind through the koch tool, and taint analysis. Где-то ещё видел сравнение с C и C++, не нашёл пока.
>>2352287 >Тогда нахер последний нужен? Ты его не с теми сравниваешь, он не про безопасность и не про системность, это просто умеренно няшный язык, но не доходящий до уровня питона. Не новая ада как раст и не новый си как зиг — а новый паскаль, лол.
С каких пор вообще компиляция в JS стала фичей? Вы ебанутые? У вас язык для системного программирования. Вон посмотрите на Haxe, он умеет работать в дохуище рантаймов, только это никому нахуй не нужно
>>2352789 > LLVM в рантайме не используется, дорогой. Я где-то это говорил? Нет. Скомпилируй rust под эльбрус. > У Zig и Nim одни и те же платформы и архитектуры, где они работают. Прям 1 в 1 Нет. Zig поддерживает только таргеты llvm, а nim поддерживает любой компилятор Си. Clang, GCC и прочие. Даже lcc. Понятно, что ты скажешь, что эльбрус нинужно. Он для примера, что есть таргеты, для которых llvm нет. Другие примеры лень искать.
>>2352920 Да конкретно фронт ни на чём кроме жопаскрипта не пишут, успокойся. Но если целится туда — то язык таки должен транспилится в жопаскрипт, и не только потому что ДОМ и кококо, а потому что твой васмовый хэловорд с рантаймом будет по классике весить под десятку мегабайт.
>>2352983 Затем же, зачем нужен был паскаль — для людей которым не нравится си, лол.
Кину немного камней в огород после пары месяцев не особо активного использования языка, а значит многих фишек еще не секу:
- Компилируется долго, потому что нет инкрементальной компиляции, обещают завести в будущем, но с учетом скорости выкатывания через пяток лет не раньше.
- Дебагга считай нет, потому что он работает неадекватно, переменные половины не показывает, стэк хрен проссышь, в многопотоке вообще завести не удалось, после C# я как будто в прошлый век вернулся и сейчас мой дебаг это printf
- Ужасно медленная и тупая разработка, т.е никакой IDE адекватной нет, пробовал VS Code & JetBrains, в VS Code просто дичайшие тормоза в подсказках по десятку секунд, при попытке прыгнуть к коду (F12) ты ждешь так же десятки секунд и не факт что с первого раза получится прыгнуть, подсказки более менее только с языком работают, со сторонними модулями ты будешь видеть Loading десятки секунд, в итоге 80% времени ты тупо чего-то ждешь, в jetbrains все это вообще тупо не работает, зато там хотя бы быстро работает code complition т.е при обращению к своему типу ты быстро увидишь что там за поля есть. Короче разработка на языке тупо боль для реальных проектов и не в соло где ты вынужден прыгать по коду.
- Рефакторинг, его тупо нет, максимум переименует что-то в твоем файле и все, дальше компилируй и ищи руками где остальное переименовать надо
- "Найти где используется" т.е вот есть функция или переменная и ты думаешь, а где они у тебя используются и как, будь добр ищи через тупо поиск везде по имени и надейся что имя у тебя УНИКАЛЬНОЕ, т.е какой-нибудь draw*() в десятке файлов будет для тебя болью когда ты захотел узнать где-же оно вызывается только из одного файла.
- Плохая документация и мало примеров, тупо очень тяжело разобраться что и как работает, при том пример чтобы разобраться что и как надо еще выдумать, а затем через print потестить, сложно и больно. Я к примеру до сих пор не понимаю где аллоцируются строки на куче или стэке если я из функции их посылают в C библиотеку, написано на куче, но почему при 1кк строк не кушается оператива бешеными темпами, но если закрыть программу почему-то на секунд кушание оперативки с 20-30 мб уходит до гигов.
Вроде как не совсем адекватный ментор, такое у меня о нем впечатление сложилось после чтения кучи его постов при поиске "а как это сделать" и тупо листая форум
Лично для себя я вижу серьезную проблему именно в разработке на этом языке, она неадекватно неудобная и сравнима с написанием кода в блокноте, сравнивая с C# это просто как будто с BMW пересесть на копейку. НО самое печальное что с этим судя по всему ничего не собираются делать, а значит язык обречен на гибель, так как язык языком, а разработка на нем не должна быть болью в которой большую часть времени на топовом железе ты чего-то ЖДЕШЬ.
>>2354772 Ты используешь не серьезный язык для серьезных проектов, завязывай. Никто и никогда этот язык не будет использовать в реальных проектах, мелкие поделки может быть, но что-то реальное на нем делать нереально. Вся проблема в том что язык давно в релизе, но за эти годы на нём никто и ничего реального не написал и ни одна компания не захотела в него вкладываться, отсюда и вытекают твои проблемы.
Если смотреть детальнее, то описанное тобой работает через nimsuggest, там меньше 1_000 строк и тот код будет отлично работать для мелких проектов, но когда ты начинаешь работать с чем-то средним, то все упирается в линейность кода nimsuggest, он проходит каждый модуль что ты подключил, каждый файл, при каждом твоем клике/наведении и все это в одном потоке.
Факт существования одной из главных вещей языка в таком состоянии говорит о том что язык нахер никому не нужен, иначе бы кто-то уже столкнулся с проблемой дерьмовой производительности и попытался это исправить, но тут либо это никому не нужно, либо создатель имеет своё "видение" и в результате язык опять нахер никому не нужен, ведь зачем бороться с очередным шизиком, когда есть куча других языков.
>>2354772 Звучит так, будто виндузятник не осилил линукс и жалуется на это. Значит язык годный. >>2354980 Пикрил. И на nim правда ради самой идеи ядра ОС писали. Так что, не надо тут о серьёзности говорить плохое.
>>2354772 Человек впервые попробовал "васянство" в чистом виде и у него сгорел пердак. Ты берешь экзотические язык очередных заскучавших программистов и ждешь от него чуда. Сейчас с LLVM ленивый только не создал себе перделку.
>>2356293 Основные претензии к языку связаны с QoL разработки, которого тупо нет для мелких проектов и скриптов не критично, а вот для реального где 100к+ строк плюс, куча модулей и не один разработчик такой подход вообще не приемлем.
Вот как мне на работе где не против использовать что-то новое нормально продвинуть Nim так чтобы после меня не уволили когда получат тонну проблем?
Ответ - никак. Я уже думал об этом и единственный ответ: Язык не подходить для реальной разработки и использование не энтузиастами. Разработка даже средних проектов в командах около 3-5 человек на нем практически невозможна в том виде в котором он существует. Для реальный разработки нужен жесточайший стайл гайд чтобы хоть какими-то костылями решить проблемы с невозможностью понимания как работает и где вызывается код. Только CTRL+F по всему проекту и никак более, а это уже прошлый век, не говоря уже о том что код будет просто ужасен вида getNameUsedInModuleName т.е для хоть какой-то структуры нужно будет добавлять вот этот UsedInModuleName, потому что если какой-то другой модуль имеет тот же getName у тебя нет никакой возможности кроме наверное перекомпиляции узнать, а где нужный getName вызывается. А в реальных проектах часто бывает так что до стадии когда проект компилируется надо еще дойти.
>>2356853 >Ты берешь экзотические язык очередных заскучавших программистов и ждешь от него чуда Мне интересно есть ли хотя бы один такой язык в котором разработка будет приятной и удобной?
>>2356861 >Вот как мне на работе где не против использовать что-то новое нормально продвинуть Nim так чтобы после меня не уволили когда получат тонну проблем? Есть же хаскель, или в край раст, с менее, но все еще сложной кривой вката. А вообще эра хипстоты и стартапов прошла, если сейчас есть кабанчики, которые еще на такой развод ведутся, то такой конторе и так не долго работать.
>>2356861 >Мне интересно есть ли хотя бы один такой язык в котором разработка будет приятной и удобной? Очевидно, пойди по этому же пути и напиши свой язык. Еще год назад все смеялись над "языком на коленки" V, а теперь его реально вижу тестах. То есть, средний айтишник настолько отупел, что имея базовый маркетинг ты даже свою перделу сможешь протолкнуть. Лет 20 назад такое бы не прошло, а сейчас вот легко.
Компилируется непосредственно в C, C++, Objective-C и Javascript. Поскольку он не зависит от виртуальной машины / среды выполнения, он не создает то, что я хотел бы назвать "вредоносным по", как предполагается для других языков (например, Golang) Синтаксис, вдохновленный Python, позволяет быстро создавать собственные полезные данные и создавать прототипы. Обладает чрезвычайно развитыми возможностями FFI (Интерфейс внешних функций). Позволяет избежать того, чтобы вы действительно писали на C / C++, и впоследствии избежать множества проблем безопасности в вашем программном обеспечении. Супер простая перекрестная компиляция в Windows из * nix / macOS, требует только установки набора инструментов mingw и передачи одного флага компилятору nim. Компилятор Nim и сгенерированные исполняемые файлы поддерживают все основные платформы, такие как Windows, Linux, BSD и macOS. Может даже компилироваться для Nintendo switch, IOS и Android. См. раздел кросс-компиляции в руководстве по использованию компилятора Nim Технически вы могли бы написать свой имплант и серверную часть c2 как в Nim, так и скомпилировать свой код непосредственно в Javascript. Даже имеет некоторую начальную поддержку WebAssembly
Для тех кто еще не знаком с языком, я могу объяснить его одной фразой: В основном для дебага рекомендуется использоватьecho
Если вы пришли из того же C#, то разработка на этом языке чего-то сложнее единичного скрипта будет для вас болью. А работа в команде с языком в принципе выглядит чем-то нереальным.
Единственная надежда это на 2.0, но с учетом скорости разработки я думаю это не раньше 24 года
Не переношу питон из-за идиотского устарелого синтаксиса. А тут оказывается есть люди, которым им вдохновились. Интересно у них тоже есть градация любви ко второй версии или третьей?
>>2414363 >Единственная надежда это на 2.0, но с учетом скорости разработки я думаю это не раньше 24 года В тг группе было обсуждение, что автор языка(Araq) сильно занят на работе(амазон). И потому очень мало времени уделяет языку. Все опечалены. Тем не менее он родил бумажную книжку по языку за 45 баксов https://nim-lang.org/blog/2022/06/29/mastering-nim.html
Язык не приспособлен к копипастингу. Я попробовал писал на нём. Все знают что приходится копипастить участки своего кода из одной структуры в другую с разным уровнем вложенности. А значит и количеством отступов. Ну, вы всё поняли? РУЧКАМИ приходится выравнивать отступы того, что вставил. Никакой тебе автоматической beautiful. Я ебал такой подход.
>>2414363 >В основном для дебага рекомендуется использовать echo Сука обосрался. Прямо как в пхп, с другом общался недавно, работает полгода, спрашивал про отладку в пыхе - никак нет, только echo, ебать ад.
Вот чувак тоже пишет что-то типа книги по языку, при том часто в книге есть разговоры о nim 2.0, как с теми же slice, что они сейчас не оптимизированы и что если вы делаете sequences[1..^2] то создается новый Seq, вместо того чтобы создать легкую структуру для работы ссылками по старым данным. Типа в 2.0 это собираются исправить.
Языку сильно не хватает любви, я не вижу тех кто хочет развивать IDE или плагины для работы с языком, нет intellisense (хотя бы в виде предложений по типу, ведь язык строго типизированный), вместо этого предлагают tabNine. По сути язык имеет все те же проблемы что имел тот же C# и очевидно что решения те же самые, это кэш, умные проверки и выделение больше времени для работы над инструментами разработки, чем над самим языком.
Все эти новые и "модные" языки имеют одну общую проблему, никто не ставит в приоритет саму разработку на языке, в целях ставят скорость, красоту, лаконичность, эффективность работы с памятью и еще кучу чего, но никто не задумывается о том чтобы на языке было удобно и приятно писать, а ведь это реально киллер фича была бы.
модеры подсуетитесь кабанчиком там и прикрепите чтобы быдло видило этот эталон света и стремилось выбраться из своих ублюдских помоек с визуальным мусором ;{
>>2431008 Сейчас бы на полных щах обсуждать кустарные языки. Суть одна, потешить самолюбие автора и крошки тем, кто успел присосаться на халяву и просочились в топ комьюнити, пока было мало народу.
>>2430911 >Си-шарп уебищный бойлерплейт от индусских хуеглотов
>>2431008 изабавить питоняшек от кровавых слез от уебанского визуального шума, который говнари без чувства прекрасного и интеллекта запихали дажи в новейший карбон, сука ору с инцелов
>>2431227 >в новейший карбон Это обновленная версия старого языка как Котлин для жабы, только тут для крестов, которое само собой будет тащить что-то из старого языка
>изабавить питоняшек от кровавых слез от уебанского визуального шума Короче говно без задач, которое не взлетит как Кристал с синтаксисом руби
>>2431291 >Котлин однако на жабапарашу совсем не похож, там все довольно мило и няшно (хотя яблочный клон будет еще приятнее)
без говна и ублюдского шума ;{{
>говно без задач это ты, а ним топовый системный язык, где ситонизированной питоняшки уже не хватает (всякие слай хуйни или ЯДРО ЛИНУКСА например или риалтайм графен)
приятно писать приятно читать
таких языков всего два, это ним и пайтон, все остальное столетний высер из дидовской жопы
>>2352866 Тоже на него смотрел. Но вот это желание разрабов общаться через мейлинг листы, ирки и прочую залупу доинтернетовской эпохи погубит проект, имхо. Вот нахуй на каком то васянсокм клоне гитхаба вести проект, они не хотят чтобы о нем узнали что ли?
>>2436327 >не говно очевидно то что не выглядит, не пахнет и на вкус не как говно
как бы пиздорылые додики не копротивлялись, но грамотно сконструированная вещь всегда и выглядит красиво
а потому А Э С Т Е Т И К А - будет всегда мерилом качества
и если гнилозубые патлатые ничтожества считают возможным кормить тебя жидкой дрисней со скобочками и семиколонами
придумывая жалкие оправдания свои никчемным умениям в написании парсера
то это очевидная куча дерьма, которая обречена на ненависть и забвение
>какой язык топчик? самый глупый вопрос что я слышал - очевидно же что питоняшка! =^-^=
идеальный язык для непиздоглазых недаунов, которые имеют достаточно интеллекта чтобы менеджерить отступы
все есть, никакие велосипеды придумывать не надо
в очередной раз как додику писать стринги тоже не нужно
а если вдруг мало скорости подключаемых сишных либ (хотя куда нахуй тебе торопится, это не геймдев и даже не риал тайм графен) то буквально в две строчки питоняшка буститься до сипарашных скоростей
в итоге ним нужен только шизикам пуристам, сидящих на древних ляптяпах и считающих каждый мебибайт
ну или в геймдеве, графене, финтехе коинах транзакциях сетевке и прочем низушном дерьме
>какие технологии топчик? свободные
>и вообще как оно надо чтобы по фен-шую меня слушай, других не слушай
>>2443293 А знаешь от чего больше пердак у тебя выгорит? Уже сейчас на линях пишут больше на шарпе, чем на этом говне. Причем примерно так в 100 раз. Так что фактически, получается, это на nim под линуксом никто не пишет.
>>2443420 тупопездное быдлоубунтойдное стадо не считается.
оно сидит на домохозяйском линупсе только потому что ублюдки индусы адище устраивают для разрабов (но тем не менее тысячи пидарасов жрут индусский кал и им норм)
>>2443420 у тебя хуевая выборка по C# большинство репозиториев это домашки с курсов или репы китайцев не понятно с чем и о чем вообще, у них там вообще бум по C# а то что на nim никто не пишет особо оно и понятно, язык сложен в разработке, умных подсказок нет хотя язык типизированный, сами подсказки лагают что пиздец, дебаг боль, да и сам вкат в язык не простой.
>>2443970 Опять манипуляция цифрами, пользователей C# миллионы, а у nim десятка тысяч? Плюс язык не имеет пиара и огромной корпорации за собой, естественно в чистой популярности он проиграет.
Да и вообще любой анализ должен идти через нормализацию данных, иначе миром начнет править не около здравый смысл, а манипуляция данными любой ценой, потому что популярность станет главнейшим и самым важным ресурсом.
>>2444313 Это был ответ хлебушку, который говорил что на линуксах на шарпах не пишут, а вот на говниме пишут. Но оказалось в сравнение с шарпом, это на говниме почти не пишут на линуксах.
>>2444027 >пиздуй ка получать ВО и учить МАТАН и АЛГОСЫ > а то что у тебя айкью собачий Обвиняет анона в собачьем айкью. Неспособен сформулировать осмысленное предложение.