После года разработки опубликован релиз языка системного программирования Nim 1.5, который использует статическую типизацию и создан с оглядкой на Pascal, C++, Python и Lisp. Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора (clang, gcc, icc, Visual C++), что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора. По аналогии с Python в Nim в качестве разделителей блоков применяются отступы. Поддерживаются средства метапрограммирования и возможности для создания предметно-ориентированных языков (DSL). Код проекта поставляется под лицензией MIT...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56029
> NimПочему не NIH?
https://nim-lang.org/blog/2014/10/19/version-096-released.html
раньше был Nimrod
а до этого его не было
сегодня понедельник
это комментарий на опеннете
> Предложен новый синтаксис импорта "import foo {.all.}", позволяющий импортировать не только публичные, но и приватные символы.А зачем?
зачем импортировать то что не должно быть доступно
например для юнит тестирования.
Зачем тестировать приватное апи?
потому что язык пилят полтора студента на энтузиазме, которые сами не знают что в нем должно быть, а что нет. К ветке 2.0 мб повыкидывают половину функционала которым никто не пользуется
> func `'big`*(num: cstring): JsBigInt {.importjs: "BigInt(#)".}Но нечитаемым и кривым будет считаться всё равно [блокировано цензурой].
Добро пожаловать в реальный Nim © Morpheus
Аксиома Эскобара.
раст уже цензурят?
Это была шутка :)
Зачем нам так много языков? Это все равно, что в жизни придумывать новые языки для общения. Можно загнуть туда какую-то свою философию, но по факту людям придется это все учить и учить. А язык должен быть чем то естественным. Что родилось само собой. Я вот например увлекаюсь физикой. Но там часто нужна математика. А математика этой какой-то иностранный язык, который тоже нужно сначала изучить с переводчиком слово за словом, чтобы хоть как то понимать смысл написанных предложений. Аффинная связанность? Кто нибудь, переведите это на русский. Так же и тут. Понаклепают языков с разными завернутыми конструкциями и кучей знаков препинания, а ты потом это учи. А по факту самыми читаемыми языками являются Бэйсик и, ну максимум, Паскаль. Все остальное от лукавого.
>самыми читаемыми языками являются Бэйсик и, ну максимум, ПаскальАда и оберон ещё.
питон
>питонНу на самом-то деле изначально он не так назывался. Просто нецензурную часть пришлось за"пи"кать, потому что оказалось, что пользуются ним, в основном, дети.
Чего минусуют-то? В чём не прав, интересно? Это языки одного семейства, близки к паскалю. Не троллю, хочу знать.
Они сами не знают. Если что, Оберон читать куда легче, чем Васик. И заметно легче, чем предка Паскаль.За все годы жизни, лучшее, что я видел -- это Оберон и Компонентный Паскаль.
> Зачем нам так много языков?Вам не надо. Продолжайте увлекаться.
C++
С++ для детей, на нём ардуины кодят.
Согласен, стоило ещё на ассемблере остановится. Зачем все эти усложнения :)
По сабжу согласен - хотелось бы больше аргументов, кроме как "мне нравится так" :/
Аргумент в стиле "даже на незнакомом языке код должен быть интуитивно понятен" не катит? А то замутят что то типа вот этого $??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see и читай потом.
> Аргумент в стиле "даже на незнакомом языке код должен быть интуитивно понятен"
> не катит? А то замутят что то типа вот этого $??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y;
> -/:-@[-`{-};`-{/" -;;s;;$_;see и читай потом.
%:include <stdio.h>
??=include <stdlib.h>
int main (int argc, char *argv??(:>) ??<
printf("Hello World! %s", argv<:0??));
return 0;
%>
Че там с "интуитивно понятен"?
Так это и не эталон :)
>должен быть чем то естественнымВы только что Дао.
Тяжело наверное быть лентяем и неучем. Ишь-ты, понапридумывали, а ты учи.
> Понаклепают языков с разными завернутыми конструкциями и кучей знаков препинания, а ты потом это учи.#cancelnim #metoo #asmcodematters
Ловите неолуддита! #realmancodeinhex
> А по факту самыми читаемыми языками являются Бэйсик и, ну максимум, Паскаль.Щито? Языки, где операторные скобки пишутся словами — нечитаемы, ибо слова глазом воспринимаются как операторы.
Ключевые слова and и or — тоже.
Много языков не нужно, но через их разнообразие продолжается поиск и развитие. Аналогия с языками для общения некорректна. Люди непрерывно передают/принимают знания, т.е. по-любому придётся что-то изучать и просто учить, но вы можете выбрать язык программирования для изучения. Поиск наиболее естественного и удобного языка одновременно для людей, компьютера и решаемых задач продолжается. Читаемость языка желательна и вы назвали примеры подходов с этой идеей, но пока люди активнее развивают языки, которые уже лучше подготовлены к решению наиболее типичных задач и в которых лучше учтены особенности работы компьютера, а к читаемости не предъявляют повышенных требований. Хорошо читаемые языки используют, в основном, в обучающих и ознакомительных целях.
Это диверсия рептилоидов, чтобы код писали на 100500 языках, а потом долго и нудно портировали с одного на другой (доля шутки 50%)
После zig не интересно.
А чем сам Zig-то интересен? Я ознакомился, но увидел только попытки выборочно заклеить некоторые сишные дырки скотчем.
тогда V?
Как скриптовый язык очень даже ничего. Статическая типизация + быстрая компиляция - как раз то, что нужно. Правда, быстрая компиляция там только без оптимизаций:$ time v self
V self compiling ...
V built successfully!
v self 1.79s user 0.21s system 99% cpu 2.003 total$ time v self -prod
V self compiling (-prod -o v2)...
V built successfully!
v self -prod 88.49s user 2.65s system 99% cpu 1:31.31 totalНо для скриптов они не особо нужны: всё равно будет быстрее, чем sh или Python. В качестве основного языка - ну не знаю, для меня простоват. По сути, он мало чем отличается от Go, хотя-таки в нём дженерики есть :)
так zig так же быстро компилит без оптимизаций
в zig нет чехарды со сборщиком, как в V зато есть глобальные переменные в рамках модуля ( в V это можно включить но там не приветствуют )
мне показалось что V по той же дорого пошел что и Nim.
как основной язык нет конечно.
>>Доступны web-браузеры ... Min ...
>Релиз языка программирования Nim ...Да вы пьяны!
Релиз языка системного программирования NOP.
Релиз языка системного программирования IncDecPushPopCallRetMovAddSubLosbStosbLeaJmpCmpTestJzJne
> IncDecPushPopCallRetMovAddSubLosbStosbLeaJmpCmpTestJzJneПравильно: IncDecPushPopCallRetMovAddSubLodsbStosbLeaJmpCmpTestJzJne
>> IncDecPushPopCallRetMovAddSubLosbStosbLeaJmpCmpTestJzJne
> Правильно: IncDecPushPopCallRetMovAddSubLodsbStosbLeaJmpCmpTestJzJneДа, этот неумный форум не дал мне отредактировать моё же сообщение, сказав, что это не моё. Конечное же LoDs(b/w/d)
Форум как раз умный, без регистрации не позволяет редактировать. А то тут бы наредактировали. :)
NOPe
>Добавлена поддержка чипа Apple Silicon/M1, 32-разрядных систем RISC-V, armv8l и CROSSOS.Как-то не совсем ясно, ведь, он компилирует в код на других высокоуровневых языках. Поэтому, как тут и причём поддержка конкретных архитектур?
предположу, что как минимум кое где по коду надо правильные #ifdef-ы расставить как минимум.
>> Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript.А отлаживать это как?
Лажа в отлаживании не нуждается.
если это С или С++, то при помощи gdb.про JS не знаю.
>что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора.Там сборщик мусора можно отключить или настроить на простой счет ссылок, как это сделано в умных указателях С++ и Rust (детерминированное поведение).
https://nim-lang.org/docs/gc.html
На простом счёте ссылок не может быть сборщика мусора в принципе, из-за циклических ссылок.
Изначально язык и идея хорошие, но они сделали миллион экспериментальных фич и стратегий сборщика мусора аля "собери язык сам". Теперь две библиотеки на одном языке одной версии компилятора могут быть несовместимы между собой. Собственно по той же причине как я понимаю люди не пользуют и Dlang, несмотря на в сущности классный язык.
>они сделали миллион экспериментальных фичНапример?
>по той же причине как я понимаю люди не пользуют и Dlang, несмотря на в сущности классный язык
Не, за Дишкой не стоит богатая корпорация, поэтому он никому не нужен. Это касается любого классного языка или операционной системы. Хотя Ди уже принес пользу, так как является главным источником фич для С++.
>>они сделали миллион экспериментальных фич
> Например?
Ох уже эти теоретики заговоров... Что только не придумают чтобы оправдать не-взлёт какой-то уродской поделки. За D значит корпорации нет, git использут только потому что его линус написал, что там ещё у вас? А может всё-таки D никому не нужная поделка, никаких преимуществ (помимо косметических) над тем же C++ не имеющая, при этом зависящая от GC, при этом её GC в подмётки не годится оному из той же жавы.
Ещё один системный язык на котором не написали ниодной системы?
>NimЗа этим языком программирования не стоят богатые корпорации, поэтому им никто не будет пользоваться, какие бы крутые фичи у него не были. Платят программистам только корпорации. А кто платит, тот и танцует и заказывает музыку. А корпоративная музыка - это это жаба, шарп, го и т.д..
Открою тебе секрет, даже те языки за которыми стоят корпорации часто никому нафик не нужны в том числе и корпокация.Более того, ты можешь сколько угодно верить в свои эти корпорации, только они уже давным давно не рулят этим миром, как бы ты в это не верил. Миром уже давно рулят потребители, а корпорации на подсосе у обычных потребителей.
Именно американские корпорации сейчас определяют ситуацию в программировании. Программисты выучат любой шлак, лишь бы за него платили.
>Программисты выучат любой шлак,кроме COBOL`a
У, как интересно! А расскажи-ка, как ты лично "потребляешь" языки программирования, что они от этого начинают колоситься? Наверное, все-таки язык взлетает, когда на нем пишут штук десять востребованных проектов, а кто же их пишет, потребители, да?
Вовсе не поэтому им не пользуются. Там официальный мануал, мягко говоря, не поэты писали. Вот например:Defer statement
Instead of a try finally statement a defer statement can be used, which avoids lexical nesting and offers more flexibility in terms of scoping as shown below.
Перевожу:
Оператор defer
Вместо оператора try finally может использоваться оператор defer, который позволяет избежать лексической вложенности и обеспечивает большую гибкость с точки зрения области видимости, как показано ниже.
Вот что это за бредятина? Какой, нафиг, try finally?! Оператор defer - это оператор, который выполняет отложенную задачу (в конце блока). И это я не из этого мануала узнал, а потому что до этого Go изучал.
Некоторые операторы вообще не описаны - про них забыли. Так же, как например, не описано создание двухмерных массивов (на их форуме нашел).
Ошибки при компиляции тоже такие, что о них черт ноги переломает. Вот например (путь я сам в ошибке замаскировал):Traceback (most recent call last)
/home/***/***/Nim/test/ts.nim(10) ts
/usr/lib/nim/system/io.nim(801) echoBinSafe
SIGSEGV: Illegal storage access. (Attempt to read from nil?)Знаете что обозначает? Я переменную в процедуре без оператора var указал.
И это только на повехности. Я его начал изучать, потом бросил.
Nim - это каша из фич. У языка должна быть какая-то идеология, которая обосновывает его существование, иначе разработка языка неминуемо скатится к пришиванию собаке пятой ноги. А там как будто от балды всего накидано. Вот накой идентификаторы и ключевые слова в Nim регистронезависимы (кроме первого символа) и не учитывают символ подчёркивания? Не тех людей здесь называют растаманами.
Это ложь. Из популярных языков корпорации стоят, пожалуй, только за go и c#, и они далеко не самые популярные. Во-первых, за самыми популярными не стоят корпорации, во-вторых, коммерческой разработкой IT не ограничиваются, есть СПО где используют что нравится. И могли бы использовать nim, будь у него действительно "крутые фичи". Но не используют.Просто за этим язком не стоят компетентные разработчики языков программирования, поэтому он никому не нужный шлак. Смиритесь с этим и не пытайтесь его оправдывать корпорациями))
> Это ложь. Из популярных языков корпорации стоят, пожалуй, только за go и
> c#, и они далеко не самые популярные.Т.е. сишка с плюсами и джавой и джабба-скриптом - не очень популярны? От оно че.
> Просто за этим язком не стоят компетентные разработчики языков программирования, поэтому
> он никому не нужный шлак.То ли дело ЖС - там целая куча ЯП разрабов была, а не "за 10 дней, на коленке ..."
В общем, хреноватый ты аналитик - смирись с этим и не пытайся оправдываться.
Ну-ка расскажи-ка какая корпорация стоит за сишкой. Я послушаю.
> Ну-ка расскажи-ка какая корпорация стоит за сишкой. Я послушаю.Ты эта, считаешь что Денис Ричи писал свой первый компилятор вечерами, в свободное от работы время? А потом комитет ANSI, при формировании стандарта, питался воздухом и светом?
От оно как ...
https://nim-lang.org/blog/2021/10/25/nim-receives-100k-usd-b...
Nim это стероидный python
Какой-то он неоднородный, отосвюду нахватали.
Это даже приблизительно не Python. Это скорее разновидность Паскаля.
Я считаю что пора Linux переписывать на Nim!
Сейчас перепишут. Они только что 100 тыщ баксов пожертвование получили.
Лудьшибы мне атдали бы, я бы перепесал на тотжи раст хатябы.
Программер, который согласен, с тем что тоталитарный компилер не позволяет ему делать с памятью всё что угодно, не заслуживает снисхождения.