The OpenNET Project / Index page

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



"Новая версия языка программирования Nim 0.18.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от opennews (??) on 03-Мрт-18, 21:58 
Представлен (https://nim-lang.org/blog/2018/03/01/version-0180-released.html) значительный релиз языка  системного программирования Nim 0.18.0 (https://nim-lang.org). Язык использует (https://ru.wikipedia.org/wiki/Nim) статическую типизацию и создан с оглядкой на Pascal, C++, Python и Lisp. Код проекта поставляется (https://github.com/nim-lang/Nim) под лицензией MIT.


Исходный код на языке Nim  компилируется в представление на C, C++ или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора (clang, gcc, icc, Visual C++), что позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора.
По аналогии с Python в Nim в качестве разделителей блоков применяются отступы. Регистр написания символов в идентификаторах не учитывается. Поддерживаются средства метапрограммирования (https://ru.wikipedia.org/wiki/%D0%9C%D0%...) и возможности для создания  предметно-ориентированных языков (DSL).


В новом выпуске отмечается ряд существенных новшеств и изменений, связанных с проведением чистки стандартной библиотеки перед релизом 1.0. Также внесена большая порция изменений, нарушающих обратную совместимость. Оператор индексирования "[]" теперь выдаёт ошибку, если запрошенный диапазон выходит за границы строки, вместо выдачи подпадающий под запрос части строки (например, var myString = "hello world"; myString[6 .. 45] теперь инициирует исключение IndexError). Также изменена логика обработки коллекций оператором "$" и прекращено приведение массивов array[x, char] к типу cstring. Спецсимвол "\n" теперь выводит только код перевода строки без кода возврата каретки.


Среди  новшеств:


-  Добавлен модуль strformat, предоставляющий поддержку форматируемых строковых литералов, позволяющих определить строку, содержащую подстановки (например let name = "Fred"; doAssert  fmt"My name is {name}."), в стиле "f"-строк Python 3.6.
-  В генератор документации добавлен макрос runnableExamples, позволяющий протестировать работу приводимых примеров кода.
-   Добавлен новый макрос mapLiterals, упрощающий создание массивов и последовательностей (например, "let x = mapLiterals([12, 34, 15, 1], uint32)").
-  Изменён алгоритм управления памятью. Новый алгоритм TLSF позволяет снизить фрагментацию памяти, ценой усложнения операций alloc и dealloc;

-  Серия изменений в модулях для асинхронного ввода/вывода. Представлена унифицированная реализация asyncdispatch и новая процедура getIoHandler, возвращающая дескриптор ввода/вывода или epoll/kqueue.  В модуле asyncjs появилась новая реализация async await  для бэкенда JavaScript;

-  Пакетный менеджер Nimble  обновлён до версии 0.8.10, в которой появилась возможность размещения нескольких пакетов Nimble в одном репозитории Git или Hg;

-  Из stdlib в обособленные пакеты Nimble переведены библиотеки gentabs, libuv, polynumeric, pdcurses, romans, libsvm и     joyent_http_parser. Объявлены устаревшими basic2d  и basic3d, вместо которых следует использовать такие пакеты, как glm, arraymancer и neo.

URL: https://nim-lang.org/blog/2018/03/01/version-0180-released.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=48186

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Новая версия языка программирования Nim 0.18.0"  +5 +/
Сообщение от Аноним (??) on 03-Мрт-18, 21:58 
> По аналогии с Python в Nim в качестве разделителей блоков применяются отступы.

Зачем? Даже Гвидо признал что это было не лучшей идеей.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Новая версия языка программирования Nim 0.18.0"  +4 +/
Сообщение от пепе on 03-Мрт-18, 22:04 
а можно ссылку на это утверждение Гвидо?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Новая версия языка программирования Nim 0.18.0"  +4 +/
Сообщение от Аноним (??) on 03-Мрт-18, 22:53 
http://www.yaml.org/faq.html

> Tabs have been outlawed since they are treated differently by different editors and tools. And since indentation is so critical to proper interpretation of YAML, this issue is just too tricky to even attempt. Indeed Guido van Rossum of Python has acknowledged that allowing TABs in Python source is a headache for many people and that were he to design Python again, he would forbid them.

Но, возможно, он бы стал требовать просто по 4 пробела. Или нет, по 5. Хотя нет, по 3 было бы лучше всего - ведь это так сильно меняет программу, сколько пробелов в каждой строке ставить.

p.s. Я до сих пор не могу найти лучшего кандидата на первое место в списке "самые идиотские решения в ЯП", чем задание синтаксической конструкции отступами.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Новая версия языка программирования Nim 0.18.0"  +8 +/
Сообщение от Аноним (??) on 03-Мрт-18, 22:57 
Вы прочитали то, что процитировали? Он не против отступов, он против табуляций. Чтобы творческие личности могли в один отступ два пробела вставить, а в другой шесть. Пробелы хороши в функциональных языках - там всё равно нет отступов, лишь выравнивание. Но в императивных языках запрещать надо, скорее, пробелы, чем табуляции.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Новая версия языка программирования Nim 0.18.0"  +2 +/
Сообщение от анонимус (??) on 04-Мрт-18, 00:00 
Было бы логичней, как раз, в начале строки пользоваться табуляцией, а после первого непробельного символа разрешить только пробел. Один таб -один отступить и форматирование не разваливается при разном размере таба.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 02:11 
> Было бы логичней, как раз, в начале строки пользоваться табуляцией, а после
> первого непробельного символа разрешить только пробел.

А не логичней было бы сперва ознакомиться с мат.частью, а уж потом рассуждать на тему "как правильнее"?
Обычно под «форматированием пробелами» понимаются только пробелы в начале строки. После первого непробельного символа - хоть трава не расти.

>Один таб -один отступить и форматирование не разваливается при разном размере таба.

Разный размер таба в одном файле?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

39. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от анонимус (??) on 05-Мрт-18, 07:53 
>Обычно под «форматированием пробелами» понимаются только пробелы в начале строки.

Это и есть глупость

>После первого непробельного символа - хоть трава не расти.

Если после непробельных символов используется таб, то форматирование разъедется при открытии файла в другом редакторе с другим размером таба.

>Разный размер таба в одном файле?

В разных редакторах у разных пользователей

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

48. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 05-Мрт-18, 14:39 
>>Обычно под «форматированием пробелами» понимаются только пробелы в начале строки.
>  Это и есть глупость

Ну, если авторитет опеннета так считает.

>>После первого непробельного символа - хоть трава не расти.
> Если после непробельных символов используется таб, то форматирование разъедется при открытии
> файла в другом редакторе с другим размером таба.

Самому компилятору\интерпретатору это до одного места. Т.е. никакого насилия над Свободой Форматирования, о чем тут так пекутся некоторые, в этом случаене будет. А превращаться в плохо читаемую кашу оно будет в других ЯП точно так же.

>>Разный размер таба в одном файле?
> В разных редакторах у разных пользователей

Именно отступы табами - не развалятся. Если вперемежку с отступами и прочим, тогда да, будет винегрет. Но зато теоретически есть полная Свобода Форматирования! Нет?

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

49. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 05-Мрт-18, 14:43 
> Именно отступы табами - не развалятся. Если вперемежку с пробелами и прочим,
> тогда да, будет винегрет. Но зато теоретически есть полная Свобода Форматирования!
> Нет?

fix.

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

15. "Новая версия языка программирования Nim 0.18.0"  +7 +/
Сообщение от Ydro on 04-Мрт-18, 11:24 
То есть кроме отступов, табуляций и пробелов вас двоих ни чего не беспокоит в Nim? :-)
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

21. "Новая версия языка программирования Nim 0.18.0"  +3 +/
Сообщение от Аноним (??) on 04-Мрт-18, 14:24 
> Было бы логичней, как раз, в начале строки пользоваться табуляцией, а после
> первого непробельного символа разрешить только пробел. Один таб -один отступить и
> форматирование не разваливается при разном размере таба.

Хорошо, что не все программисты школьники-дегенераты, и поэтому пользуются пробелами.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

27. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от вапвап on 04-Мрт-18, 19:05 
К отступам и пробелам чувствительна СКВ, поэтому, чтобы не париться с мержами конфликтов, я бы рекомендовал пользоваться автовыравнием, которое заточено под корпоративный стандарт.

Зачем вообще париться над пробелами, если можно просто нажать "выровняйся всё само"?

Меньше творчества в коде => меньше конфликтов => проще жизнь.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

36. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 21:44 
> Хорошо, что не все программисты школьники-дегенераты, и поэтому пользуются пробелами.

Как раз пробелами пользуются только те, кто не понимает, что такое отступ. "Я тут накопипастил со стека и у меня код разъехался. Поэтому я больше не буду пользоваться табуляциями, а некорректное форматирование буду пробелом добивать до того, от чего глаза не вытекают."

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

38. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 22:07 
> Хорошо, что [...] пользуются пробелами.

Можете привести пару (а лучше больше) объективных уважительных причин использовать пробелы в отступах вместо табуляций, пожалуйста?

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

40. "Новая версия языка программирования Nim 0.18.0"  –2 +/
Сообщение от анонимус (??) on 05-Мрт-18, 07:54 
> Хорошо, что не все программисты школьники-дегенераты, и поэтому пользуются пробелами.

Дегенераты как раз пользуются пробелами в начале строки

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

52. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от sdkisik on 05-Мрт-18, 15:10 
>Дегенераты как раз пользуются пробелами в начале строки

Дегенераты вообще не пользуются форматированием кода, ни табуляциями, ни пробелами. А все остальные могут воспользоваться средствами автоформатирования

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

57. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от nich (ok) on 06-Мрт-18, 18:53 
Гвидо против табуляции, и правильно.  Все осходники, использующие табуляцию, рано или поздно (на практике очень рано) начинают выглядеть как гaвно.  Первое, что я делаю в не моем проекте, это заменяю все табы на пробелы.  Только после этого с исходниками можно нормально работать.  Разрабы, которые использовали там табы, даже ничего не замечают, потому что тем, кто использует табы, обычно положить, что их исходники выглядят как полное гaвно.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 00:12 
> p.s. Я до сих пор не могу найти лучшего кандидата на первое место в списке "самые идиотские решения в ЯП", чем задание синтаксической конструкции отступами.

Ты, наверно, до того как начал использовать питон, код не форматировал в принципе, вот сейчас и испытываешь боли, что заставляют это делать на уровне синтаксиса языка?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 01:05 
Не знаю, как он, но спасибо что решили за всех, как им форматировать
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

32. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 20:23 
В Golang, так любимом ненавистниками Python, форматирование тоже принудительное. С фигурными скобками, но отформатировать как тебе хочется не выйдет.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

42. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от angra (ok) on 05-Мрт-18, 10:32 
> В Golang, так любимом ненавистниками Python, форматирование тоже принудительное. С фигурными  скобками, но отформатировать как тебе хочется не выйдет.

ЕМНИП оно принудительное только в паре мест, где нельзя перенести открывающую фигурную скобку на следующую строку. Связано это с парсингом, а не стилем. А так можно хоть однострочники писать:
package main;import "fmt";func main() {fmt.Println("Hello, world")}

Другое дело, что в сообществе Go принято пропускать исходник через gofmt. Но к этому никто не принуждает, просто правило хорошего тона.


Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

8. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Онаним on 04-Мрт-18, 01:45 
> Но, возможно, он бы стал требовать просто по 4 пробела. Или нет, по 5. Хотя нет, по 3

Оптимално по 2 ящетаю. Серьёзно.

Вообще уверен он имел вииду именно это. Я тоже поначалу плевался на эту идею, но потом мне стало очевидно, что для языка программирования (YAML - язык сериализации данных, а не программирования, так что там другая история) это оптимально ибо отступы всё-равно все всегда ставят и фигурные скобочки как и обязательные точки с запятыми в конце строк в C#-подобных языках - бессмысленный балласт.

На деле Python используется ОЧЕНЬ широко и никто особо не переживает по поводу этих отступов, так что всё в порядке. Некоторые небольшие проблем ощущаются только в момент копипастинга кода и те PyCharm решает за секунду.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Новая версия языка программирования Nim 0.18.0"  +2 +/
Сообщение от Аноним (??) on 04-Мрт-18, 02:04 
>> Indeed Guido van Rossum of Python has acknowledged that allowing TABs in Python source is a headache for many people and that were he to design Python again, he would forbid them.

https://nim-lang.org/docs/manual.html
> Indentation consists only of spaces; tabulators are not allowed.

Все верно сделанно.

> Но, возможно, он бы стал требовать просто по 4 пробела. Или нет, по 5. Хотя нет, по 3 было бы лучше всего - ведь это так сильно меняет программу, сколько пробелов в каждой строке ставить.

Хоть 1, хоть 10. Главное, не поддаваться порывам творческой натуры и не менять количество пробелов в одном блоке.
Кстати, обычно даже довольно простые текстовые редакторы вполне настраиваются на автозамену нажатия таба на определенное количество пробелов.


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

11. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Tita_M (ok) on 04-Мрт-18, 04:53 
>оглядкой на Pascal

Что там от паскаля? Да и оберон уже давно есть.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

33. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 20:25 
Ну и пиши на своём Обероне. Много напишешь?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

37. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от Tita_M (ok) on 04-Мрт-18, 21:44 
Имелось ввиду зачем ориентироваться на паскаль если можно было вдохновляться тем же обероном.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

12. "Новая версия языка программирования Nim 0.18.0"  +7 +/
Сообщение от leap42 (ok) on 04-Мрт-18, 05:53 
> позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора

а если ещё какие-нибудь не учитывать, то даже быстрее получится

а если вообще никакие не учитывать, то все расчёты будут мгновенными

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 13:07 
Ну GC там и вправду мало жрущий. К тому же легко отключается. Хоть полностью, хоть по частям.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

31. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 19:22 
>> позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора
> а если ещё какие-нибудь не учитывать, то даже быстрее получится

Хочешь - не учитывай, никто не мешает:
https://nim-lang.org/docs/manual.html
> Nim distinguishes between traced and untraced references. Untraced references are also called
> pointers. Traced references point to objects of a garbage collected heap, untraced references
> point to manually allocated objects or to objects somewhere else in memory.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

45. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 05-Мрт-18, 13:45 
>> позволяет добиться производительности близкой к Си, если не учитывать затраты на выполнение сборщика мусора
>а если ещё какие-нибудь не учитывать, то даже быстрее получится

Ну так в случае с Java так и получается :)

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

13. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Anonymoustus (ok) on 04-Мрт-18, 06:35 
> Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript. В дальнейшем полученный C/C++ код компилируется в исполняемый файл при помощи любого доступного компилятора

Что за блажь такая — всё усложнять дважды делать одну работу? В чём фишка?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от juniper рулит on 04-Мрт-18, 07:45 
обычное дело в эти дни, вы видимо имеете очень смутное представление об устройстве современных компиляторов
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

16. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 11:25 
Почему только современных? И C++ изначально в C транслировался.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

46. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Crazy Alex (ok) on 05-Мрт-18, 14:27 
А потом как смогли - стали делать нормальные компиляторы. И по сей день продолжают.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

17. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Anonymoustus (ok) on 04-Мрт-18, 12:22 
> обычное дело в эти дни, вы видимо имеете очень смутное представление об
> устройстве современных компиляторов

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

Ещё раз вопрос к залу: зачем писать на каком-то третьем языке, чтобы затем это несколько раз последовательно транслировать в нижележащие уровни? У современных кодеров совсем уже нет мозгов писать сразу на каком-то одном языке, что надо придумывать по несколько надстроек друг над другом?

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

18. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 13:04 
> Анонимы опеннета, видимо, патологически неспособны понять написанное, а отсутствующее понимание компенсируют многозначительным гулом голосов из своей головы.
> Ещё раз вопрос к залу: зачем писать на каком-то языке, чтобы затем это несколько раз последовательно транслировать в нижележащие уровни? У современных кодеров совсем уже нет мозгов писать сразу в машинных кодах, что надо придумывать по несколько надстроек друг над другом?

Fixed*

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

20. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 13:53 
Просто у Nim дико маленокое комьюнити и написать полноценный фасад к какому-нибудь LLVM они не осилили
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

23. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 15:45 
> Просто у Nim дико маленокое комьюнити и написать полноценный фасад к какому-нибудь
> LLVM они не осилили

Один чувак осилил, но Araq (создатель языка) сказал, что он добавит LLVM в главный репозиторий только если LLVM бекенд предоставит какие-то преимущества над C/C++.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

28. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним84701 (ok) on 04-Мрт-18, 19:09 
> Один чувак осилил, но Araq (создатель языка) сказал, что он добавит LLVM
> в главный репозиторий только если LLVM бекенд предоставит какие-то преимущества над  C/C++.

В чем-то он прав – обратная совместимость в LLVM довольно регулярно ломается, в отличие от.
И поэтому просто портировать мало, нужно  еще и поддерживать.
Так что понятно, что (максимум "полтора", если мне не сильно изменяет память) разработчика/автора дополнительный "чемодан без ручки" скорее всего не особо вдохновляет.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

25. "Новая версия языка программирования Nim 0.18.0"  –1 +/
Сообщение от DerRoteBaron on 04-Мрт-18, 18:12 
Аналогично, зачем писать на любом сколько-нибудь высокоуровневом языке, если все можно написать в машинных кодах? Или в байткоде llvm если нужна переносимость.
Зачем транслировать язык X в язык Y? Например, затем, что реализация Y есть под платформу P и она популярна, при этом язык X предоставляет удобные абстрации для предметной области A и/или задачи T, которую надо решать.
Если задачу T можно решить на языке Y, это еще не значит, что ее удобно решать на этом языке, а при решении не придется написать существенное количество велосипедов.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

35. "Новая версия языка программирования Nim 0.18.0"  –2 +/
Сообщение от Аноним (??) on 04-Мрт-18, 20:30 
Не стоит метать бисер перед Anonymoustus. Он объявился в новостях недавно, а уже успел себя зарекомендовать.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

26. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Василий Теркин on 04-Мрт-18, 19:03 
Компиляторы с/cpp есть практически под все известные платформы. Поэтому авторы ограничили свои усилия работой над самим ЯП и транслятором для него. Вполне разумно.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

34. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 20:27 
Ага, и препроцессоры на C не нужны. Ъ-кодеры обходятся без них.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

41. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от анонимус (??) on 05-Мрт-18, 07:59 
>>Исходный код на языке Nim компилируется в представление на C, C++ или JavaScript. В дальнейшем
>Что за блажь такая — всё усложнять дважды делать одну работу? В чём фишка?

Так Си и есть высокоуровневый ассемблер.


Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

22. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 15:29 
Есть же Crystal. Прекрасный руби-подобный синтаксис, быстрый....


    Have a syntax similar to Ruby (but compatibility with it is not a goal)
    Statically type-checked but without having to specify the type of variables or method arguments.
    Be able to call C code by writing bindings to it in Crystal.
    Have compile-time evaluation and generation of code, to avoid boilerplate code.
    Compile to efficient native code.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 04-Мрт-18, 16:12 
Наркомания какая-то ваш кристал, лучше уж D
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

29. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от Аноним (??) on 04-Мрт-18, 19:12 
А может проще сразу писать на C/C++
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

30. "Новая версия языка программирования Nim 0.18.0"  +3 +/
Сообщение от Аноним (??) on 04-Мрт-18, 19:16 
> А может проще сразу писать на C/C++

Так они тоже транслируются.
Поэтому для любителей истинной простоты есть hex-редакторы.
В них и машкод и микрокод под задачу написать можно.

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

51. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от XYZ on 05-Мрт-18, 15:05 
Так hex-код тоже транслируется в нули и единицы. А вообще проще всего взять батарейку, две иголки и сраду подавать нужное напряжение в нужных участках материнской платы.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

43. "Новая версия языка программирования Nim 0.18.0"  +1 +/
Сообщение от adolfus (ok) on 05-Мрт-18, 13:31 
"язык системного программирования" и "сборщик мусора" -- взаимноисключающие параграфы
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Crazy Alex (ok) on 05-Мрт-18, 14:29 
Давно нет. Разве что вы под "системным" понимаете исключительно ядро и драйверы. Впрочем, язык всё равно пришибленный.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

50. "Новая версия языка программирования Nim 0.18.0"  +2 +/
Сообщение от Аноним (??) on 05-Мрт-18, 14:52 
> "язык системного программирования" и "сборщик мусора" -- взаимноисключающие параграфы

Т.е. ЯП, в которых есть подключаемый сборщик мусора -- не системные?
http://www.hboehm.info/gc/
A garbage collector for C and C++


Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

53. "Новая версия языка программирования Nim 0.18.0"  –3 +/
Сообщение от Анонс on 06-Мрт-18, 07:51 
Чукча не видит разницу между покдлючаемым гц и по умолчанию.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

56. "Новая версия языка программирования Nim 0.18.0"  +2 +/
Сообщение от Аноним (??) on 06-Мрт-18, 14:38 
> Чукча не видит разницу между покдлючаемым гц и по умолчанию.

Чего - "по умолчанию", о великий знаток?
Или ты пользуешься обычными указателями и дергаешь alloc/dealloc ручками или используешь указатель на GC-объект.

https://nim-lang.org/docs/manual.html
> Nim distinguishes between traced and untraced references.
> Traced references point to objects of a garbage collected heap, untraced references
> point to manually allocated objects or to objects somewhere else in memory.
> Traced references are declared with the ref keyword, untraced references are declared with the ptr keyword. In general, a ptr T is implicitly convertible to the pointer type.

Интересно, какие принципы и обеты не позволяют экспертам перед комментированием даже поверхностно ознакомиться с темой?

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

54. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Аноним (??) on 06-Мрт-18, 09:35 
> взаимноисключающие

Как ни загляну в комменты — обязательно узнаю новое слово. Что означает?

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

55. "Новая версия языка программирования Nim 0.18.0"  +/
Сообщение от Ын on 06-Мрт-18, 10:34 
только BASIC из zx spectrum 48 самый понятный и запоминающийся
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

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