| |
| |
| 3.10, Инопланетянин (?), 17:08, 29/10/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
Умеет вроде, но с конца. Вообще надо походы менять.
> Это фундаментальное архитектурное решение автора языка, Воутера ван Оортмерссена. Так как Goose полностью отказывается от динамической кучи (heap), он заставляет разработчика проектировать структуры данных как монолитные последовательные плоские блоки памяти. | | |
| |
| 4.15, Аноним (15), 17:43, 29/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну то есть, не подходит для хоть чего-то, где требуется какая-либо обработка данных, что 99% программ
| | |
| |
| 5.22, Инопланетянин (?), 18:36, 29/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
> Ну то есть, не подходит для хоть чего-то, где требуется какая-либо обработка
> данных, что 99% программ
Примеры посмотрел?
| | |
|
| 4.38, Аноним (38), 23:21, 29/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Goose полностью отказывается от динамической кучи (heap), он заставляет разработчика проектировать структуры данных как монолитные последовательные плоские блоки памяти
Это подходит только для микроконтроллеров.
| | |
| |
| 5.44, Инопланетянин (?), 00:42, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Goose полностью отказывается от динамической кучи (heap), он заставляет разработчика проектировать структуры данных как монолитные последовательные плоские блоки памяти
> Это подходит только для микроконтроллеров.
Автор сейчас в геймдеве работает. В примерах разное есть.
| | |
|
|
| |
| |
| 5.71, Аноним (71), 16:35, 30/10/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
Делать upset контейнеры, это признак скудоумия и моветон. Блейзин фаст библиотеки и продукты так не работают с данными.
| | |
|
| 4.91, Кот (??), 00:17, 31/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Потому что реальная жизнь такая. Нужно вставлять и удалять элементы.
| | |
|
|
| 2.6, name (??), 16:50, 29/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
1. Уберите var/let/fn
2. Напишите на этом хотя бы ядро ОС
Тогда мы вам проверим.
| | |
| |
| 3.50, Аноним (48), 02:05, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Микроядро написать, как нефиг делать, там такой же принцип передачи данных, как и в IPC
| | |
|
| |
| |
| 4.56, Аноним (48), 09:03, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
С текущими ИИ и аналогичным расту синтаксису переписать все можно гораздо быстрее
| | |
| 4.60, Пыщь (?), 10:16, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Если пенделировать всеми доступными ресурсами как ржавчину, то и не такое полетит на сверхзвуке.
| | |
| |
| 5.62, Аноним (48), 10:45, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Главное не подпускать к проекту любителей поупражняться в программировании
| | |
|
|
|
| |
| 3.57, Аноним (48), 09:06, 30/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
Там концепция владения другая. И все сильно упрощено, по сравнению с C++/Rust. По сути это грамотный C.
| | |
| |
| |
| 5.72, Аноним (71), 16:37, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Zig смог только в явную передачу коллектора везде где можно и нельзя. Если человек пишет на Фортране, то он на любом языке будет писать как на фортране
| | |
| |
| 6.73, Аноним (71), 16:38, 30/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Zig смог только в явную передачу коллектора везде где можно и нельзя.
> Если человек пишет на Фортране, то он на любом языке будет
> писать как на фортране
*Аллокатора
| | |
|
| 5.78, Инопланетянин (?), 17:36, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Претендентов стать грамотнвми сями уже полно: C3, Zig, Hare
Hare не предлагает ничего нового.
| | |
| |
| 6.94, другой аноним (?), 06:59, 31/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Хуже. Там есть тонкая засада: язык и его стандарные библиотеки построены вокруг типов сумм (что само по себе хорошо и правильно), и тег типа фиксируется не на этапе сборки, как в большинстве нормальных языков (по сути указатель куда-то в рантайм), а на этапе компиляции хешем от описания типа. И он всего 32 бита. То есть, даже случайно может совпасть (атака дней рожденья может сама получиться), а уж подобрать два типа с одинаковым хэшем -- как нефиг делать, он не крипто. Причём это фиксированно на уровне требований к языку, починить нельзя. Вообще автор, похоже, склонен в упор не видеть проблемы "хэши совпали". У него она игнорируется во всех примерах... но это типа ладно, учебные примеры, мы просто пишем покороче для наглядности, в реальном коде будет не так... но оно и в реальном так. И всё.
| | |
|
|
|
|
|
| 1.8, Гость (??), 16:56, 29/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– | |
вот, даже этот Nim лучше чем rust.
почему? потому что нет головной боли с указателями и всё просто работает как в питоне или Go.
если нужна головная боль, то даже C++ лучше чем Rust, и даже тут нужно ещё постараться и специально не юзать удобные умные указатели, чтобы выстрелить себе в ногу.
| | |
| |
| 2.9, Инопланетянин (?), 17:04, 29/10/2026 [^] [^^] [^^^] [ответить]
| –4 +/– | |
> почему? потому что нет головной боли с указателями и всё просто работает как в питоне или Go.
Как понять какой код будет? Как отлаживать? Генеренные исходники си?
| | |
| |
| |
| 4.43, Инопланетянин (?), 00:41, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
> Как всегда: printf() Ну или как там оно в Nim.
Тут ниже эксперты говорят, что есть дебагер, но ИИ говорит, что далеко не все гладко. Есть опыт?
| | |
| |
| 5.85, Аноним (85), 19:27, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
from std/sugar import dump
from pretty import print
from pretty import printTable
| | |
|
| 4.86, Аноним (85), 19:32, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
import std/strformat
let name = NimVersion
let version = 2.4.0
echo fmt"Hello from {name} version {version}!"
let x = 42
echo fmt"{x=}" # Выведет: x = 42
| | |
|
|
| 2.14, Аноним (14), 17:42, 29/10/2026 [^] [^^] [^^^] [ответить]
| +3 +/– | |
> C++ [...] нужно ещё постараться и специально не юзать удобные умные указатели, чтобы выстрелить себе в ногу.
Лол. В C++ запросто отстреливаются ноги даже чисто с использованием ссылок и итераторов - без явного использования кучи и умных указателей для нее.
| | |
| |
| 3.77, Брат Анон (ok), 17:34, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
В nim целый пакет, который с помощью макросов и шаблонов делает из nim питон на стероидах. С почти полным доступом к стандартной библиотеке питона.
| | |
|
|
| 1.18, Аноним (15), 17:48, 29/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –7 +/– |
Слишком сложен C? Нужен язык безопаснее, чем C++? Ну хорошо, а чем обычный C# не устраивает?
| | |
| |
| |
| |
| 4.41, Аноним (38), 23:30, 29/10/2026 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну хорошо, вот тогда и посмотрим, когда M$ на нём, компилируемом в натив, ядро напишет.
| | |
| 4.55, Смузихеб забывший пароль (?), 08:41, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
Уже даром не надо. Поезд лет как 5-10 назад уехал, вихляя задом
Xamarin помер по сути( как раз из-за всяких IL ). Яблок, точнее, яблоСтору, сильно не понравилось, что у самариновских приложений под капотом какой-то посторонний байт-код и карманная ВМ для него, хотя это прямо запрещено требованиями( React-Native обошёл ограничения тем, что JS в нём исполнялся яблочным же жс-двиглом, а не хз чем под капотом. Т.е никаких посторонних ВМ он не тащил, а всё имеющееся исполнялось штатными средствами системы )
Т.е получалась типо кроссплатформенная штука, посредством которой не собрать приложение, которое можно выгрузить в стор( в отличие от RN и Flutter ), т.е в мобильной разработке - на помойку
В десктопной - там хз какая и чего поддержка на разных ОС разных версий. Ещё и что-то дополнительно ставить( почти как для прог на VB:) ) Десктопность под разные ОС - тоже отпадает.
Он получается даже хуже электрона и котлин композ.
Вроде в игровом двжике Юнити3Д как один из вариантов написания логики использовался шарп. Там оно кстати было удобно, но были и другие варианты.
Остаётся лишь веб. Серверная часть. Но там и без шарпа полно претендентов
Ну и на кой оно надо что с байткодом что с компиляцией и каковы перспективы ?
| | |
| 4.61, Hezal (?), 10:21, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– | |
>> Уже пилят компиляцию в натив
И что? Вы хоть понимаете, что именно компилируете?
Native AOT не превращает C# в язык без runtime. В бинарник статически вшивается урезанный NativeAOT runtime, в котором по-прежнему есть GC и система типов. Просто больше не требуется отдельно установленный .NET Runtime и JIT.
При этом получаешь ограничения: никакого Assembly.LoadFile, Reflection.Emit, обязательный trimming и необходимость проверять весь граф NuGet-зависимостей на AOT-совместимость.
То есть это не "обычный C# теперь компилируется как C". Это отдельный режим публикации с ограничениями, которые приходится учитывать при проектировании приложения.
Сам факт наличия AOT ещё ничего не говорит о том, насколько эта модель эквивалентна нативной разработке на других языках.
| | |
| |
| 5.63, aname (ok), 11:46, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
> И что? Вы хоть понимаете, что именно компилируете?
> Native AOT не превращает C# в язык без runtime. В бинарник статически
> вшивается урезанный NativeAOT runtime, в котором по-прежнему есть GC и система
> типов. Просто больше не требуется отдельно установленный .NET Runtime и JIT.
> При этом получаешь ограничения: никакого Assembly.LoadFile, Reflection.Emit, обязательный
> trimming и необходимость проверять весь граф NuGet-зависимостей на AOT-совместимость.
> То есть это не "обычный C# теперь компилируется как C". Это отдельный
> режим публикации с ограничениями, которые приходится учитывать при проектировании приложения.
> Сам факт наличия AOT ещё ничего не говорит о том, насколько эта
> модель эквивалентна нативной разработке на других языках.
Так и пиление ещё в процессе. Не сделают нормально- ну помрёт язык, да и гой с ним. Плакать, чтоли, если сдохнет?
| | |
| |
| 6.64, Hezal (?), 13:29, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
>Так и пиление ещё в процессе.
Ну вот когда допилят, тогда и будем говорить об этом, а сейчас это маркетинговая блёвань.
| | |
|
| 5.84, Аноним (85), 19:18, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
"Native AOT не превращает C# в язык без runtime." Я бы даже хотел с грустью заметить что "Native AOT не превращает ХХХХХХХ в язык без runtime.", а где либо/когда либо было такое, что изначально в язык без runtime и его без существенных изменений кодовой базы превратили в язык без runtime? Видимо фарш обратно не провернуть, кодовая база как раз расползается и использует то, что язык не надо компилировать. См. примеры с Ruby -> Crystal. Вроде Kotlin там чего-то пытается, но так просто там ничего не перевести уже существующие проекты.
| | |
| |
| 6.87, Аноним (85), 19:38, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
Пардон: а где либо/когда либо было такое, что изначально в язык c runtime и его без существенных изменений кодовой базы превратили в язык без runtime? Уважаемые знатоки может есть кто знает примеры?
| | |
|
|
|
|
|
| |
| 2.23, Инопланетянин (?), 18:50, 29/10/2026 [^] [^^] [^^^] [ответить]
| –1 +/– | |
> Лучше не смотрите на то, что это генерирует вместо кода на си.
Вот вопрос такой же. Как отлаживают это? То не говорите, что принтами.
| | |
| |
| 3.27, Боевой Петух (?), 19:09, 29/10/2026 [^] [^^] [^^^] [ответить]
| +5 +/– |
У сабжа есть отладчик для отладки. Впредь не задавайте глупые провокационные вопросы, а спросите хотя бы у гугло-нейронки.
| | |
| |
| 4.30, Инопланетянин (?), 19:52, 29/10/2026 [^] [^^] [^^^] [ответить]
| –2 +/– |
> У сабжа есть отладчик для отладки. Впредь не задавайте глупые провокационные
> вопросы, а спросите хотя бы у гугло-нейронки.
Личный опыт есть? ИИ говорит
3. Где начинаются сложности (Минусы)
Есть несколько сценариев, когда отладка сгенерированного кода становится запутанной:
• Макросы и шаблоны (Metaprogramming): Если вы активно используете macro в Nim, код генерируется «на лету». Отладчик покажет вам точку вызова макроса, но не покажет пошагово, как выполнялся сгенерированный им AST-код.
• Сложные типы данных: Простые типы (int, string, float) видны хорошо. Однако объекты, кортежи и последовательности (seq) внутри C превращаются в структуры с указателями. Чтобы увидеть их содержимое в GDB, приходится «пробиваться» через поля вроде p.data.
• Сборщик мусора (ARC/ORC): В C-коде будет много автоматических вызовов для управления памятью (nimNew, операции копирования/перемещения). При пошаговой отладке в C-режиме они могут отвлекать.
| | |
| 4.82, Аноним (85), 19:04, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
года три назад как-то мне удавалось прикрутить QtCreator с отладчиком(там есть спец плагин по поддерже нима), не помню правда насколько удобно отображалось значение переменных, но в целом отладка по шагам заход внутрь фнукции и брякпойнты работали. Спустя это время уже появились LSP а также плагины Sublime Text, Zed, Vscode с различно степенью поодержки в том числе и отладки.
| | |
|
|
| 2.46, нах. (?), 01:26, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
ты и не должен это смотреть, ты же не смотришь машинный код
| | |
|
| 1.25, Аноним (25), 19:05, 29/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– | |
>Реализован режим оптимизации коротких строк (SSO, Small-String Optimization), включаемый через опцию "--strings:sso" и приводящий к хранению небольших строк непосредственно в самом объекте, без отдельного выделения памяти в куче.
замечательно, но удар по abi; было бы хорошо так приделывать подобъекты к объекту, но без разделения на полустатику и кучу
| | |
| |
| 2.83, Аноним (85), 19:12, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
ABI нужно делать когда у вас боооольшой заопарк исходников и вы компириуете в бинарник а потом линкуете это когда-нибудь потом. Кстате до этого релиза не было инкрементальной компиляции, так что ни а какой раздельной компиляции и речи быть не могло. К счастью язык достаточно быстро компилируется даже с учётом двухстайдиной компияляции НИМ -> C -> exe(сам компилятор себя за минуту компилирует). Единственно, когда вам нужна эта ABI совместимость это когда вы компилирует билиотеку которую будете использовать ликовать через СИ интрефейсы(pragma exportC) -- ну тогда вы ручками и вбиваете эти Си функции которые вам нужно экспортировать -- и соотвественно ничего у вас от версии к версии не поплывёт.
| | |
|
| |
| 2.58, user1985 (?), 09:08, 30/10/2026 [^] [^^] [^^^] [ответить]
| –3 +/– |
Быстрый ответ Алисы AI
Содержимое ответа
На языке Nim можно создавать проекты самого разного типа — от веб-сервисов и утилит до игр и системных библиотек. Я подобрала для вас несколько примеров реальных проектов и инструментов, которые демонстрируют возможности языка. codechick.io
Примеры проектов
Веб-фреймворки и серверы. HappyX — полнофункциональный веб-фреймворк, который компилируется как в C, так и в JavaScript. На его основе можно разрабатывать как серверные, так и клиентские веб-приложения. habr.com
Серверы и API. Проект Mummy — это HTTP- и WebSocket-сервер, написанный на Nim. libhunt.com
Криптографические библиотеки. Constantine — высокопроизводительная криптографическая библиотека. adorabilis.wordpress.com
Асинхронное программирование. nim-chronos — эффективная библиотека для асинхронного программирования. dev.toadorabilis.wordpress.com
Сериализация. nim-serialization — расширяемый модуль для эффективной сериализации данных. adorabilis.wordpress.com
Инструменты для разработки. Nimalyzer — утилита для статического анализа кода на Nim. adorabilis.wordpress.com
Графика и игры. nimgl — библиотека Nim, которая предоставляет привязки к популярным библиотекам компьютерной графики. github.com
Криптография. nimbluez — модули Nim для доступа к системным ресурсам Bluetooth. github.com
Криптографические обёртки. nimpy — пакет, который позволяет вызывать код на Nim из Python. habr.com
| | |
| 2.59, Axonic (ok), 09:11, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
github.com/search?q=language%3ANim&type=Repositories&ref=advsearch&l=&l=Nim&s=&o=desc
| | |
| 2.81, Аноним (85), 18:56, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Nitter — (AGPLv3+) легковесный альтернативный веб-интерфейс для X (ранее Twitter).
Nimbus: An Ethereum consensus layer (Ethereum 2.0) client built by Status
Для веб разработки его иногда используют. как фронтэнд так и бекэнд.
Еще благодоря всяким макросо-программисткми штукам его очень любят использовать для того что-бы писать небольшие DSL и модули к Python. см. Ускоряем код на Python с помощью Nim.
И как уже было написано пишут майлварь. В общем там где не охота на си во время компиляции парсить файлы и генерировать статический контент(в вебе кстати тоже широко используеться).
| | |
| |
| 3.88, Аноним (85), 20:03, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
Модули к Python:
https://github.com/juancarlospaco/faster-than-requests
Вот эти функции залили в питон
get() post() put() head()
patch() delete() download() download2()
scraper() scraper2() scraper3() scraper4()
scraper5() scraper6() scraper7() get2str()
get2str2() get2dict() get2json()
post2str() post2dict() post2json() post2list()
download3() tuples2json() set_headers() multipartdata2str()
datauri() urlparse() urlencode() urldecode()
encodequery() encodexml() debugs() minifyhtml()
websocket_send() websocket_ping()
| | |
| 3.89, Инопланетянин (?), 20:56, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– | |
> Nitter — (AGPLv3+) легковесный альтернативный веб-интерфейс для X (ранее Twitter).
Его автор еще до закрытия сказал, что больше на Nim писать не будет.
| | |
|
|
| |
| 2.79, Брат Анон (ok), 17:39, 30/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
1) а перед тобой должен автор отчитываться?
2) а слабо на сайт проекта сходить и почитать зачем?
| | |
| |
| 3.95, User (??), 07:52, 31/10/2026 [^] [^^] [^^^] [ответить]
| +/– |
О! Вот и нашёлся человек, который рекламе производителя верит))).
| | |
|
|
| 1.70, Аноним (70), 16:14, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
В какой-то момент много стало opinionated хрени.
Это тот самый язык, который запретил табы и установил кодстайл с отступами 2 пробела.
Ну и если серьёзно, языки построенные вокруг наследования (в наше-то пока ещё просвещённое время) и multiple dispatch, чьё гибельное воздействие на композируемость и (как следствие) экосистему на примере julia давно уже стало общим знанием...
| | |
| |
| 2.74, Axonic (ok), 16:40, 30/10/2026 [^] [^^] [^^^] [ответить]
| +1 +/– |
Nim поддерживает только одиночное наследование объектов (object of, ref object of RootObj), и оно необязательно. Идиоматичный Nim опирается на структуры без наследования, свободные процедуры, дженерики, концепты и композицию.
Наследование используют редко и в основном для динамического полиморфизма.
| | |
|
| 1.80, Аноним (85), 18:47, 30/10/2026 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В новости не указано, что также сопровождается/представлен релиз предыдущая ветки 2.2.12->2.2.14 c различными исправлениями багов. А также то что, разрабатывается следующая ветка Nimony/Nim 3 для которой также работает "режим оптимизации коротких строк (SSO, Small-String Optimization)"
| | |
|