The OpenNET Project / Index page

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



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

"Выпуск языка программирования Nim 2.2.6"  +/
Сообщение от opennews (??), 03-Ноя-25, 22:51 
Представлен релиз языка системного программирования Nim 2.2.6.  Обновление вышло спустя шесть месяцев после релиза версии 2.2.4 и включает 141 коммит с исправлениями ошибок и улучшениями производительности. Nim – статически типизированный компилируемый язык программирования с синтаксисом, вдохновлённым Python, и возможностями метапрограммирования на уровне Lisp. Язык компилируется в C, C++ и JavaScript, обеспечивая производительность на уровне C при выразительности высокоуровневых языков.  Код проекта поставляется под лицензией MIT...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=64173

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

Оглавление

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

1. Сообщение от Аноним (1), 03-Ноя-25, 22:51   +8 +/
> и возможностями метапрограммирования на уровне Lisp
> Язык компилируется в C, C++ и JavaScript,

Нужно перестать стесняться и сказать вслух очевидное: нужен Common Lisp, компилируемый в представление на любом мейнстримном языке.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #19, #29, #31, #34

2. Сообщение от Аноним (2), 03-Ноя-25, 23:00   –3 +/
Будучи программистом с опытом более 15 лет и комфортной зарплатой, я ничего не понял из описания. Слишком сложно, а значит, не выстрелит.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #5, #7

3. Сообщение от bdrbt (ok), 03-Ноя-25, 23:16   +7 +/
Вот если бы ты не программы там всякие 15 лет писал, а каждый раз придумывал почему убогий с/с++/c#/жаба/<ещёчегонибудь> не подходит под высокий полёт твоей мысли, вот тогда бы ты всё понял.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #12, #92

5. Сообщение от Аноним (5), 03-Ноя-25, 23:38   +1 +/
Это ок.

Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже их ошибки на уровне ЦПУ хотят решать, а им невдомек.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #13, #23, #25

7. Сообщение от 12yoexpert (ok), 03-Ноя-25, 23:41   +/
это новость про патч-релиз. вопросы по изложению к автору новости
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

10. Сообщение от ZloySergant (ok), 03-Ноя-25, 23:51   +/
>...Common Lisp, компилируемый в представление на любом мейнстримном языке.

Был такой. ECL, но после самоотвода jjgarcia скатился в унылое.
До этого gcl, ccl и др.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #89

12. Сообщение от Аноним (-), 04-Ноя-25, 00:05   +1 +/
> Вот если бы ты не программы там всякие 15 лет писал, а каждый раз придумывал
> почему убогий с/с++/c#/жаба/<ещёчегонибудь> не подходит под высокий полёт
> твоей мысли, вот тогда бы ты всё понял.

Да еще синтаксис - очень разный может быть. И в этом смысле никогда не знаешь что получишь на вход. Это конечно по своему забавно - но только не в случае если код поддерживать придется.

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

13. Сообщение от Аноним (-), 04-Ноя-25, 00:07   +1 +/
> Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже их
> ошибки на уровне ЦПУ хотят решать, а им невдомек.

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

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

16. Сообщение от Уникум (?), 04-Ноя-25, 00:18   +3 +/
Язык на пробелах не нужен
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24, #44

19. Сообщение от Кошкажена (?), 04-Ноя-25, 01:14   +/
> нужен Common Lisp,

У него заморожен стандарт. Как же без обновлений? На что выделять деньхи?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #21

20. Сообщение от cheburnator9000 (ok), 04-Ноя-25, 01:29   +/
> теперь компилятор корректно применяет перемещение

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #38, #43, #63, #66

21. Сообщение от Аноним (21), 04-Ноя-25, 01:35   +2 +/
А что, если создавать новые библиотеки? ... Да ну на! Лучше синтаксис каждые 3 недели ломать!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #74

23. Сообщение от Аноним (23), 04-Ноя-25, 02:04   +1 +/
Выбор корпораций решать си-ошибки на уровне ЦПУ является признанием того, что раст не нужен. Иначе зачем бы им решать си-ошибки на уровне ЦПУ, вместо изучения раста их сотрудниками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #32

24. Сообщение от Кошкажена (?), 04-Ноя-25, 02:44   +1 +/
Правильно. Нужно писать без пробелов, в одну строку желательно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

25. Сообщение от Аноним (-), 04-Ноя-25, 02:46   +3 +/
> Тут люди с опытом по 30 лет на С, не могут понять, зачем нужен раст. Уже
> их ошибки на уровне ЦПУ хотят решать, а им невдомек.

Не беспокойтесь, мы с удовольствием предложим адептам Rust выбросить их старый хлам, точно так же как это делают сейчас они. Ибо долг платежом красен :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #33

29. Сообщение от Аноним (29), 04-Ноя-25, 04:09   –5 +/
Common Lisp слишком переусложнен и переполнен всяческой абракатаброй.

Но вот Scheme - это то, что надо. Простой, понятный, элегантный, продуманный, интуитивно понятный. Первоклашки в схему въезжают буквально за 15 минут, а коммон лисп осиливают долго, да еще и постоянно потом путаются.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #30, #36

30. Сообщение от Аноним (30), 04-Ноя-25, 06:06   +13 +/
Спасибо не надо, ваши не осилившие паскаль первоклашки потом вкатываются в ойти через пейтон и уже вовсю пишут калькуляторы на 30ГБ ОЗУ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #47

31. Сообщение от morphe (?), 04-Ноя-25, 06:07   +2 +/
> нужен Common Lisp

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #68

32. Сообщение от Аноним (5), 04-Ноя-25, 06:27   +2 +/
> Выбор корпораций решать си-ошибки на уровне ЦПУ является признанием того, что раст не нужен.

Решать в рантайме то, что должно решаться на этапе компиляции?

> Иначе зачем бы им решать си-ошибки на уровне ЦПУ, вместо изучения раста их сотрудниками

Потому, что очень много написано на С, и, в ближайшем будущем, от этого не избавится.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #78

33. Сообщение от Аноним (33), 04-Ноя-25, 07:42   +/
А что, разве питон может компилироваться в js или wasm? Или может в Си код, сопоставимый с нативным? Работать на микроконтроллерах без такого сжирания ресурсов, тоже близком к Си?
Нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #51

34. Сообщение от Аноним (34), 04-Ноя-25, 07:56   +1 +/
Julia?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

36. Сообщение от Аноним (-), 04-Ноя-25, 08:18   +4 +/
>Но вот Scheme - это то, что надо.

Scheme - это стандарт на бумаге, его не заюзаешь. Юзайте реализацию Guile.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #67, #84

38. Сообщение от Аноним (-), 04-Ноя-25, 08:22   –2 +/
>У них была и до сих пор есть возможность перейти на LLVM для полной поддержки сборки и дебага, вместо костылей.

Что за бред ты несёшь?

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

43. Сообщение от Аноним (44), 04-Ноя-25, 11:06   +1 +/
В профессиональной литературе и документации сам Nim называют именно компилятором, а не транспилятором.

Причина в том, что конечный результат — исполняемый бинарный код. Наличие промежуточного языка (C) лишь часть внутреннего процесса компиляции и архитектурно Nim ближе к традиционным компиляторам, чем к чистым транспиляторам вроде TypeScript→JS.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #46

44. Сообщение от Аноним (44), 04-Ноя-25, 11:41   –1 +/
Для человека структурирование через отступы — естественный приём. Так пишут списки, планы, вложенные элементы.

Конечно, можно так:
if (x > 0) {
    printf("Positive\n");
} else {
    printf("Non-positive\n");
}

Но я человек, и мне удобнее так:
if x > 0:
  echo "Positive"
else:
  echo "Non-positive"

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #45, #49, #53, #88

45. Сообщение от Аноним (45), 04-Ноя-25, 12:26   +5 +/
При вставке кода могут появиться трудно уловимые ошибки, которые будут проходить синтаксическую проверку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #56, #60

46. Сообщение от Аноним (45), 04-Ноя-25, 12:28   +/
так а в чём разница? Компилятор - из исходного кода в машинный код, транслятор - из исходного на одном языке в исходный на другом. А транспилятор - из исходного кода в?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #54, #61, #65, #93, #95

47. Сообщение от Аноним (74), 04-Ноя-25, 12:37   –2 +/
>ваши не осилившие паскаль первоклашки

Паскаль не надо осиливать, паскаль надо закапывать. Если уж и брать компилируемые языки, то хотя-бы современные SML, Go, Ocaml, другие подставить по вкусу.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #62

49. Сообщение от Аноним (74), 04-Ноя-25, 12:54   +1 +/
>Конечно, можно так:

Не можно, а нужно. Вместо скобочек можно end использовать, но это дело вкуса.
>Но я человек, и мне удобнее так:

Если вы не заметили, то отступы уже давным давно проставляются автоматически. Вот вам в качестве примера: https://try.ocamlpro.com/ вводим какой-то код, например

let a = [

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

let a = [
  [ (* < добавили новую скобку *)
  1
]

То он автоматически приведётся к нужному виду

let a = [
  [
    1
  ]

>Языки с отступами формируют повышенную дисциплина кодирования.

Языки с отступами свидетельствуют о узости кругозора, и незнании о такой простейшей вещи, как автоформатирование.
>Программист не может "сломать стиль" случайными пробелами

Ну так положите файл с настройками в репозиторий. Зато, при управлении проблемами программист будет регулярно отхватывать проблем, от того, что лишние пробелы к коду приклеились. Программировать без IDE будет мучением, а копирование кода в случайные места приведёт к потере пробелов и полной поломки кода.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #87

51. Сообщение от минона (?), 04-Ноя-25, 12:56   +/
> А что, разве питон может компилироваться в js или wasm? Или может
> в Си код, сопоставимый с нативным? Работать на микроконтроллерах без такого
> сжирания ресурсов, тоже близком к Си?
> Нет.

Ну, есть транспайлер py2many, но заставить его работать на скрипте, большем чем hello_world.py, мне не удалось.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

52. Сообщение от Аноним (74), 04-Ноя-25, 13:03   +/
>детерминированное управление памятью с поддержкой нескольких стратегий (ARC/ORC, refc, маркировка-и-подметание)

И получение граблей на ровном месте
>Оптимизация move-семантики для полей объектов

Но всё же, у них там ещё и сборщик мусора зачем-то нужен
>Устранена фундаментальная проблема в сборщике мусора при обработке циклических структур данных

Видимо слишком простым язык получился, перед крестами стыдно.
>Исправлена утечка сокетов в asyncnet при ошибках согласования TLS-соединения:

Ошибка в сетевых соединениях исправлена в языке, не в библиотеке, а в языке. Особенно приятно будет во всяких дебианах, ждать ещё года два.
>Устранён эффект «утечки» отключения предупреждений за пределы pragma-блоков:

Похоже, они действительно решили догнать кресты по сложности.

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

53. Сообщение от anonymousemail (??), 04-Ноя-25, 13:44   +2 +/
>  Конечно, можно так:
>  if (x > 0) {
>      printf("Positive\n");
>  } else {
>      printf("Non-positive\n");
>  }

это для детей, вообще то надо так:

   printf( x>0 ? "Positive\n" : "Non-positive\n");

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #57

54. Сообщение от Аноним (56), 04-Ноя-25, 13:53   +2 +/
...в самодостаточный читабельный текст программы на другом ЯП, очевидно же.

Цель компилятора Nim таки давать на выходе бинарник.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #75, #80

56. Сообщение от Аноним (56), 04-Ноя-25, 13:57   +/
Ну, если вставлять в MS Word, то, пожаоуй, да 🙂‍↕️
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

57. Сообщение от _kp (ok), 04-Ноя-25, 14:33   +/
Более того, вместо x может  быть и "функция" объявленная здесь же, в массив, и мало ли что.
А выше предлагают ВМЕСТО сокращения портянок исходников, те же портянки разукрасить пробелами, что бы хотя бы издали было красиво. :)

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

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

60. Сообщение от Аноним (-), 04-Ноя-25, 15:36   +/
В Nim с его чувствительным компилятором это вряд ли возможно. Для написания программ на языке Nim нужна высокая культура кодинга и чутьё при применении типов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

61. Сообщение от АнонимичныйАноним (?), 04-Ноя-25, 16:02   +/
По вашей логике clang - это компилятор, или же транслятор? Поскольку сборка, изначально, происходит в другой язык - IR LLVM.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #76

62. Сообщение от Аноним (62), 04-Ноя-25, 16:20   +4 +/
паскаль нужен не для программирования, а для освоения концепций. см. столярова.
а в одном рядоу go с ocaml, конечно, странно выглядят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #77

63. Сообщение от Шизгорин (-), 04-Ноя-25, 16:42   +/
Ты просто прицепился к словам. Сами они называют это компилятором, а использование промежуточного Си преподносят как фичу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

65. Сообщение от Медведь (ok), 04-Ноя-25, 17:54   +/
> так а в чём разница? Компилятор - из исходного кода в машинный код, транслятор - из исходного на одном языке в исходный на другом. А транспилятор - из исходного кода в?

И компилятор, и транспилятор -- трансляторы. Компилятор: исходный код -> машкод/байткод; транспилятор: исходный код на языке A -> исходный код на языке B.

По моему мнению, Nim таки ближе к транспилятору, хотя назовите как хотите, на суть происходящего не влияет. ;)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #69

66. Сообщение от Анонимemail (66), 04-Ноя-25, 18:43   +/
clang, получается, тоже транслятор?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #103

67. Сообщение от Аноним (67), 04-Ноя-25, 19:10   +/
> Scheme - это стандарт на бумаге, его не заюзаешь. Юзайте реализацию Guile.

Guile это GUI Light Environment?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #81

68. Сообщение от Аноним (74), 04-Ноя-25, 19:48   +/
Вот как раз сборщик мусора большинству программ не помешает, так как реглярно всплывают проблемы, что в очередной программе намудрили с ручным управлением памятью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

69. Сообщение от Аноним (69), 04-Ноя-25, 19:52   +/
Не. 97% программистов не интересуются, что там посередине. Есть код на Nim - получаем исполняемый файл.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #71

70. Сообщение от Аноним (70), 04-Ноя-25, 20:46   –1 +/
очень уж много критических ошибок в новости. Значит ещё не готов.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #106

71. Сообщение от Медведь (ok), 04-Ноя-25, 21:34   +/
> Есть код на Nim - получаем исполняемый файл.

А в случае трансляции в javascript?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

72. Сообщение от BrainFucker (ok), 04-Ноя-25, 21:55   +1 +/
Ну идея-то хорошая, только непонятно зачем было изобретать новый язык. Раз всё равно идею отступов без скобок заимствовали из питона, просто использовали бы питонячий синтаксис как есть, добавив какой-то синтаксический сахар по необходимости.
Но в целом выглядит лучше Rust.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #73, #85

73. Сообщение от 12yoexpert (ok), 04-Ноя-25, 22:15   +/
чисто технически в nim ты может делать с синтаксисом что угодно, хоть через begin/end всё писать, хоть в плюсы его переделать

а так - он отличается от питона

гугли доки про их AST

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #82

74. Сообщение от Аноним (74), 04-Ноя-25, 22:33   +/
>А что, если создавать новые библиотеки?

Не всё можно решить библиотеками, иногда придётся править ядро языка

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #90

75. Сообщение от Ан6оним (?), 04-Ноя-25, 22:43   +/
>в самодостаточный читабельный текст программы на другом ЯП

Это транслятор делает.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

76. Сообщение от Ан6оним (?), 04-Ноя-25, 22:45   +1 +/
Ну, уж промежуточные представления в расчёт брать не стоит, а то так каждый компилятор строящий АСТ станет транслятором.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

77. Сообщение от Аноним (74), 04-Ноя-25, 23:14   –4 +/
>а для освоения концепций

Устаревших ещё в 80-ых. Поскольку уже в 80-ых были изобретены языки гораздо лучше, тот же SML. Всё, процедурное программирование больше не в почёте.
>паскаль нужен не для программирования

А для просиживания штанов. Чтобы потом, когда школьники изучавшие паскаль придут учится дальше, а им скажут: забудьте всё, чему вас учили, теперь мы будем вас учить правильно
>см. столярова.

Идеи Столярова ещё по меркам 1990-ых годов - уже неадекватны, а по меркам 2020-ых - тем более.
>а в одном рядоу go с ocaml, конечно, странно выглядят.

Очень жаль, что я не могу вас обратить в школьника, и стереть вам память, чтобы вы годами учили никому не нужный паскаль, а потом, выпустившись из школы, с удивлением обнаружили, сей факт. Уж если школьников чему-то и учить, так это тому, что будет им, школьникам, хоть как-то полезно. Golang - пойдёт для ремесленников, которым чуждо искусство, но которые могут сделать практичный результат. Ocaml или SML - прекасный язык, содержащий в себе кучу концепций, которые слабо представленны в других языках.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #83

78. Сообщение от Аноним (74), 04-Ноя-25, 23:19   –1 +/
>Решать в рантайме то, что должно решаться на этапе компиляции?

Программисты на си извращенцы не по причине того, что портят память, а по причине того, что хотят портить память. И если с порчей памяти вопрос как-то решается, пускаий и спустя более чем пол века, то с желанием - вопрос остаётся.

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

79. Сообщение от Vorobej (?), 05-Ноя-25, 00:19   –2 +/
Для ЯВУ сложные макросы, язык в языке - это провал
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #100

80. Сообщение от User097 (ok), 05-Ноя-25, 07:37    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #98

81. Сообщение от Аноним (-), 05-Ноя-25, 09:53   +1 +/
>Guile это GUI Light Environment?

Нет. GNU Guile - GNU Ubiquitous Intelligent Language for Extensions.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

82. Сообщение от Аноним (74), 05-Ноя-25, 10:20   +/
>чисто технически в nim ты может делать с синтаксисом что угодно

Ага, особенно чужой код.
>хоть через begin/end всё писать, хоть в плюсы его переделать

Это недостаток, а не достоинство.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

83. Сообщение от Аноним (74), 05-Ноя-25, 10:25   –1 +/
Удивительно, что не смотря на острое желание поставить минус, у адептов паскаля нет никаких аргументов. Ну вот не используется в современном IT паскаль, ну вот совсем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #96

84. Сообщение от Аноним (84), 05-Ноя-25, 10:54   +/
Racket же. Правда там во все поля шизоиды с небинарностью головного мозга.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

85. Сообщение от Facemakeremail (?), 05-Ноя-25, 11:35   +/
Угу, в обсуждении Nim обязательно надо вспомнить Rust. Ну естественно, кто вспомнит про этот Nim в обсуждении Rust? ☺
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #86

86. Сообщение от BrainFucker (ok), 05-Ноя-25, 11:37   +/
Да Rust везде поминают, не только Nim и не только в темах о языках.

> кто вспомнит про этот Nim в обсуждении Rust?

Я где-то вспоминал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

87. Сообщение от Чтото знающий (?), 05-Ноя-25, 12:05   –1 +/
>Не можно, а нужно.

Удачи искать ошибки в сложном коде без IDE. Кроме того, вот эти скобки совсем не упрощают восприятие кода. Вы там чуть ниже про мучения говорите, да?

>Если вы не заметили, то отступы уже давным давно проставляются автоматически.

...
>Программировать без IDE будет мучением, а копирование кода в случайные места приведёт к потере пробелов и полной поломки кода.

То вы про автоформатирование чуть ранее говорите, а то уже без IDE собрались программировать.

Если вы попытаетесь вставить код с неправильным количеством пробелов в IDE, тут же получите сигнал об этом в виде подчёркивания некорректного кода.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

88. Сообщение от Аноним (88), 05-Ноя-25, 13:06   +/
Python в этом смысле не пример для подражания, ведь можно так:

if x > 0: print "Positive"
else: print "Non-positive"

и даже так

print "Positive" if x > 0 else "Non-positive"

Двоеточия убрать, формы вида "мастер Йода" убрать, и оставить единственный вариант

if x > 0
  print "Positive"
else
  print "Non-positive"

и будет отлично

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

89. Сообщение от Аноним (89), 05-Ноя-25, 14:19   +/
>ECL, но после самоотвода jjgarcia скатился в унылое.

Ну-ка, поясни, куда он там скатился? Я пока вижу, что проект активно (по меркам не очень многочисленного сообщества) развивается. Вон, wasm-бекенд запилили

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

90. Сообщение от Аноним (89), 05-Ноя-25, 14:23   +1 +/
>иногда придётся править ядро языка

Приведи пример

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

92. Сообщение от Аноним (92), 05-Ноя-25, 17:03   +/
А вот если бы тебе пришлось читать программы, которые он писал 15 лет, ты бы всё понял и сам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

93. Сообщение от Аноним (92), 05-Ноя-25, 17:39   +/
Компилятор - изначально, из исходного кода языка высокого уровня в исходный код языка низкого уровня (gcc -S main.c -o main.asm).

Транспайлер - из исходного кода одного языка в исходный код другого языка (того же уровня). Частный случай компилятора. (Nim -> C)

Ассемблер - из исходного кода низкого уровня в машинный код. (Современный компилятор включает ассемблер.)

Интерпретатор - разбирает и выполняет программу построчно, минуя компиляцию в машинный код. (Bash, Python, QBasic).

Транслятор - общее понятие, включающее и компилятор (в т.ч. транспайлер), и интерпретатор, и ассемблер. Грубо говоря, переводчик кода.

( Транслятор > Компилятор > Транспайлер )

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #102

95. Сообщение от Аноним (89), 05-Ноя-25, 17:45   +1 +/
>А транспилятор - из исходного кода в?

А "транспилятор" пошло из жс-сообщества. Синоним слову "транслятор". Просто авторам очередного транслируемого в жс язычка очень захотелось всем заявить, что они не какой-то там ещё один синтаксический сахарок, а полноценный язык.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

96. Сообщение от _ (??), 05-Ноя-25, 21:59   +2 +/
Ну дык SML и Ocaml - тоже не используется, но вас чего-то это не смущает? :-\
Паскаль нужен для того чтобы сильно не учить ассемблер или Си, но понимать как компьютер на самом деле работает ... свойство полностью отсутствующее у к примеру питоняш :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #99

98. Сообщение от Ан6оним (?), 05-Ноя-25, 23:54   +1 +/
Если я открою какую-нибудь книжку написанную до 2000-го года (или даже до 10-го), смогу ли я увидеть там определение транспайлера?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80

99. Сообщение от Аноним (74), 06-Ноя-25, 01:05   –2 +/
>Ну дык SML и Ocaml - тоже не используется

Ocaml - весьма активно используется для разработки компиляторов и всего что с ними связано, llvm предоставляет биндиги для него, в частности rust как раз начался с кода на Ocaml. У языка есть активная поддержка, в частности он может в многоядерность. Кроме того,  окамл активно пре подают, в частности CS 3110.

SML используется гораздо реже, но зато он менее продвинутый и как следствие его можно с лёгкостью освоить целиком даже школьнику.
>Паскаль нужен для того чтобы сильно не учить ассемблер или Си

Паскаль это такой же гнилой язык как и си. Поскольку в нём есть указатели, со всеми вытекающими последствиями, вроде порчи памяти. Система типов паскаля куда слабее чем у окамла, и будет скорее мешать, чем помогать. Увидят дети питон и забудут про типизацию, как про страшный сон.
>но понимать как компьютер на самом деле работает

Ага, школьники будут понимать и прерывания, и системные вызова, ядро ОС и так далее. Паскаль даже нормально типизации не сможет научить, уж больно она у него примитивна. Прописывать где string, а где int надоедает очень быстро, а вывода типов в паскале нет. Про GADT, кортежи и прочее даже вспоминать не стоит.
>свойство полностью отсутствующее у к примеру питоняш

Которые внезапно могут писать программы пригодные для реального мира. На условном голанге, питоне, окамле, можно сходить в веб, создать сайт, написать игру, и так далее. На паскале у вас со всем этим будут проблемы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #107

100. Сообщение от Аноним (100), 06-Ноя-25, 02:37   +/
> сложные макросы, язык в языке - это провал

Нет, это то, чего часто не хватает.

Кодеры на публику говорят, что "я не такой, я всегда против макросов", а потом в ядре линукса страшные гигантские портянки на препроцессоре - кто их написал? Если из C убрать макросы, разве станет лучше? Язык станет слабее, софта меньше, совместимость между компиляторами ухудшится (закажут расширение компилятора там, где сейчас обходятся стандартными макросами).
Станет лучше, потому что сишники пойдут в другие языки? Нет, шаблоны из плюсов по той же логике будут убраны.
Станет лучше из-за перехода на кодогенерацию скриптами? Нет, это движение назад, а не вперёд (внешний кодогенератор => препроцессор C => макросы, интегрированные в язык).
Станет лучше, потому что некрасивые задачи перестанут решать? Это лицемерие. Мол, эта задача некрасиво ложится на статические языки, значит надо принять оверхед динамических. Эту оптимизацию не выразить без макросов? И не надо. В общем, пиши промышленный boilerplate и не желай себе большего, чем даёт Go.

В языках всегда ценилась возможность выражать идеи библиотеками, без зависимости от языковых конструкций. Позволяет выразить - значит выразительный - значит хороший. А как доходит до макросов, начинается лицемерие, что мощные полифиллы в JS - это хорошо, а в статических языках на макросах такое уже будет плохо. Декораторы в питоне - хорошо, а аналогичные возможности в статических языках - уже плохо. Язык-в-языке типа inline асма (у каждого компилятора свой) - хорошо, а единый на макросах - уже плохо. printf("%" PRId64 "\n", x) - это хорошо, а если бы этот хороший запашок 70-х удалось обернуть в макросы - уже плохо.

Почему сишные макросы страшные? Потому что они слабые, надо сильнее.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

102. Сообщение от Аноним (102), 06-Ноя-25, 10:59   +/
>Транслятор - общее понятие, включающее и компилятор (в т.ч. транспайлер), и интерпретатор, и ассемблер. Грубо говоря, переводчик кода.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #105

103. Сообщение от cheburnator9000 (ok), 06-Ноя-25, 23:16   +/
clang компилирует си/си++ в машинный код напрямую или можно в LLVM IR, а уже дальше через llc.

nim ничего не компилирует, он транслирует nim код в си/си++ либо JS. Из-за этого откладка nim кода очень геморойная.

вся разница в том что LLVM IR удобно дебажить, там представление твоего кода в пользовательском отладчике, так работает Rust.

есть вот такая вещь https://github.com/arnetheduck/nlvm но оно не полностью поддерживает nim, там не работает так любимый авторами nim 'interop/FFI'.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

105. Сообщение от Аноним (105), 07-Ноя-25, 12:31   +/
> И если бы ты использовал русскоязычный термин "сборка", то понял бы, что

..ничего не понял. "Сборкой" называют буквально всё!

Сборкой программы (make/build), например, называют работу или результат работы сборочного сценария (Makefile/CMake/meson). Если собирают пакет, то уточняют, что это "сборка пакета" (makepkg -p PKGBUILD).

В широком смысле (sensu lato), "сборка" или "компиляция", т.е. "работа компилятора" (gcc compiler) включает:
1) Препроцессинг (макроподстановку). (gcc -E main.с -o main.c)
2) Собственно компиляцию (compile), в узком смысле (sensu stricto), т.е. трансляцию исходного кода в язык ассемблера. (gcc -S main.с -o main.s). Эту фазу никогда сборкой не называли.
3) Ассемблирование (assembly) - *сборку* объектного файла. (gcc -c main.с -o main.o). Изначально просто "сборка", но ныне устарело, т.к. никто не пишет на ассемблере.
4) Компоновку - *сборку* исполняемого файла из объектных файлов и библиотек.

$ man gcc
gcc - GNU project C and C++ compiler
...
When you invoke GCC, it normally does preprocessing, compilation, assembly and linking.  The "overall options" allow you to stop this process at an intermediate stage.
...
-E  Preprocess only; do not compile, assemble or link.
-S  Compile only; do not assemble or link.
-c  Compile and assemble, but do not link.
-o <file>  Place the output into <file>.
...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102

106. Сообщение от Аноним (106), 07-Ноя-25, 21:40   +/
Это просто хороший тон: исправляют и объявляют об исправлении. Лишний повод доверять.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

107. Сообщение от Bottle (?), 08-Ноя-25, 21:18   +/
Ну, слушай, это здорово, что на Окамле хоть какой-нибудь софт есть, но он всё ещё не мейнстрим.
Следуя твоей логике, Дельфин/Поцкаль живы потому что на них пишут супернишевый софт вроде этого:
https://github.com/s-oram/Grace
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99


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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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