The OpenNET Project / Index page

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



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

"Доступен язык программирования GNU Guile 3.0.10 "  +/
Сообщение от opennews (??), 24-Июн-24, 10:09 
Опубликован релиз GNU Guile 3.0.10, свободной реализации функционального языка программирования Scheme, поддерживающей возможность встраивания кода в приложения на других языках программирования. Guile может быть использован как язык для разработки расширений для приложений, определения конфигурации или разработки компонентов для связи различных примитивов, предоставляемых приложением. Guile является официальным языком разработки расширений для операционной системы GNU...

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

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

Оглавление

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

1. Сообщение от Аноним (1), 24-Июн-24, 10:09   +5 +/
Пока что единственный нормальный гнутый язык.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #21, #72

2. Сообщение от Аноним (2), 24-Июн-24, 10:10   –2 +/
> по границе 500 символов, а не 80

Интересный коэффицент. Если язык не менялся, а перестало хватать 80, то менялись использования.

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

3. Сообщение от Аноним (1), 24-Июн-24, 10:13   +5 +/
Мониторы внезапно перестали быть текстовыми. Это как на пути нашего радиоканала внезапно построили дом.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #19

4. Сообщение от Аноним (4), 24-Июн-24, 10:18   +2 +/
> Добавлена поддержка упрощённого синтаксиса wisp, позволяющего писать более читаемый код

Во, уже даже сами лисперы признают, что (((с(ко))б(((к)))и) -- это нечитаемо.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #15, #69, #122, #157

8. Сообщение от Bottle (?), 24-Июн-24, 11:20   +1 +/
Глядишь, когда-нибудь и обратную польскую нотацию признают нечитаемой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #9, #26

9. Сообщение от Аноним (4), 24-Июн-24, 11:30   +9 +/
(насчет (с соглашусь (твоей позицией)) (польской нотации))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #32

10. Сообщение от Аноним (10), 24-Июн-24, 11:30   +/
> Реализован экспериментальный интерфейс для использования сторонних бэкендов.

Ждём натив и VOP.

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

11. Сообщение от Bottle (?), 24-Июн-24, 11:36   –3 +/
Так и не понял в чём смысл лиспов, если по скорости они отстают от других языков. Даже джава быстрее.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18, #33, #46, #58, #74, #162

12. Сообщение от Аноним (12), 24-Июн-24, 11:39   –3 +/
как? есть же питон
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #14, #34

14. Сообщение от Аноним (1), 24-Июн-24, 11:57   +2 +/
Питон не гнутый, он PSFL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #16, #49, #61

15. Сообщение от Аноним (1), 24-Июн-24, 11:58   –3 +/
Питоновская нотация ещё более не читаемая.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #84

16. Сообщение от Аноним (12), 24-Июн-24, 11:59   +1 +/
это что за зверь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #17

17. Сообщение от Аноним (1), 24-Июн-24, 12:12   –5 +/
Это пример как бздненужно. Подробно на секретном сайте https://ru.m.wikipedia.org/wiki/Python_Software_Foundation_L...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #29

18. Сообщение от Аноним (1), 24-Июн-24, 12:13   +3 +/
Во первых это красиво.  
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #23, #42

19. Сообщение от 12yoexpert (ok), 24-Июн-24, 12:29   +1 +/
исходники должны влазить в два вертикальных сплит редактора IDE, 80 символов для этого в самый раз, остальное неважно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #20, #35, #156

20. Сообщение от Аноним (1), 24-Июн-24, 12:34   +3 +/
Выкинь уже свой 15 дюймовый квадратный монитор уже. Прошу тебя.  .
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #36

21. Сообщение от Витюшка (?), 24-Июн-24, 12:34   –1 +/
Если бы он был нормальным его бы сам GNU из своих проектов не выпиливал.

В gdb он признан устаревшим

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

22. Сообщение от Аноним (1), 24-Июн-24, 12:38   –1 +/
Каждому овощю свой фрукт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

23. Сообщение от Аноним (23), 24-Июн-24, 12:42   +3 +/
Зависит от шрифта. В некоторых скобочки смотрятся убого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

26. Сообщение от Андрей (??), 24-Июн-24, 13:24   +2 +/
Так у них же не обратная польская(1 3 +), а префиксная запись(+ 1 3)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

28. Сообщение от Аноним (-), 24-Июн-24, 13:46    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

29. Сообщение от zshfan (ok), 24-Июн-24, 13:51   +5 +/
Анонимоненужно, а БСД нормальная лицензия, со своими минусами и плюсами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #31, #82

31. Сообщение от Аноним (12), 24-Июн-24, 14:08   +2 +/
мне тоже больше по душе BSD по сравнению с GPL, а ещё больше нравитца MIT
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #59

32. Сообщение от Аноним (12), 24-Июн-24, 14:10   –3 +/
мне больше по душе О-нотация
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

33. Сообщение от Вы забыли заполнить поле Name (?), 24-Июн-24, 14:12   +2 +/
Смысл лиспов в макросах, что позволяют просто создавать dsl: для примера в guix пакеты описываются тоже на схеме. Также это позволяет имея небольшой набор базовых сущностей все сводить к ним или легко добавлять нужный тебе синтаксис. Например, добавить unless в питон без модификации компилятора ты не сможешь, а в лисп пожалуйста.

По скорости он, конечно, сильно быстрее питона, но с примерно той же скоростью разработки (в отличие от джавы).

Ещё один немаловажный фактор - это простота языка. Спецификация r6rs занимает всего 90 страниц. Что позволяет просто реализовать язык самому. Пусть он и не будет таким же быстрым как существующие реализации, но будет корректным. Благодаря этому схема выбрана проектом GNU Mes для бутстрапинга компилятора gcc.

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

34. Сообщение от Илья (??), 24-Июн-24, 14:16   +/
Когда мне в голову приходит мысль, что мне придётся пересаживаться с крутых технологий на пейфон, я впадаю в уныние.

Пейфон модный, это факт. Но там ни одного преимущества не вижу. Даже перед водой, не говоря уже про дотнет

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

35. Сообщение от Илья (??), 24-Июн-24, 14:17   +1 +/
В 2024 году и 120 влазит
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

36. Сообщение от Vindex (?), 24-Июн-24, 14:23   +1 +/
Больший монитор - возможность поместить больше текстовых областей. Отказ от 80 символов сводит это преимущество на нет. Хотя на C++ действительно сложно уложиться в 80, а в Java/C# так совсем. На Python, Bash, D - вообще спокойно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #43

37. Сообщение от Аноним (43), 24-Июн-24, 14:46   –1 +/
> для разработки расширений для приложений

Ребят, объясните мне как проф. программисту, С КАКОГО ПЕР-ЕП-ОЯ скриптота внезапно стала нужной для "расширений"? Концепция "динамических библиотек" (которые можно загружать в рантайме и которые и есть РАСШИРЕНИЯ) существует несколько десятков лет, это те же *.so или *.dll (а может и ещё раньше - см. Smalltalk).
Спрашивается - нафига мне тормозная, нетипизированная, убогая скриптота, когда у меня есть ровно ТАКОЙ ЖЕ язык главного приложения (Си, C#, D, etc) на котором я ТОЖЕ могу делать расширения, только при этом зная ОДИН язык и не жертвуя ни на процент скоростью!??!

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #44, #45, #50, #53, #54, #60, #63, #67, #75, #76, #116

38. Сообщение от Аноним (49), 24-Июн-24, 14:47   +/
>Кроме языка Scheme, для которого реализована поддержка спецификаций R5RS, R6RS и R7RS, в рамках проекта Guile разработаны компиляторы и для других языков, таких как ECMAScript, Emacs Lisp и Lua

А насколько разнятся Scheme и Emacs Lisp?

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

39. Сообщение от BeLord (ok), 24-Июн-24, 14:49   –1 +/
Т.е. вы хотите сказать, что можно взять и относительно быстро написать на Lisp транслятор в С++, потом скормить этом транслятору код приложения на LISP и получить корректный код на С++, потом все это скормить компилятору С++ и получить работающее приложение, тем самым сократив время разработки?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #55

40. Сообщение от Аноним (43), 24-Июн-24, 14:49   +/
Есть одна маленькая проблемка: DSL в лиспе тоже являются лиспом! Если я правильно понимаю, ты можешь наопределять функций, но они всё равно должны подчиняться синтаксису лиспа - те же скобочки, "цитаты" и т.п. Нафига оно тогда мне?? Сравни с Nemerle - там ты можешь ЛЮБОЙ синтасис задвинуть, хоть вообще из одних знаков препинания! :) Это и есть настоящий DSL - когда нет никаких ограничений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #56, #57, #115

41. Сообщение от Аноним (49), 24-Июн-24, 14:50   +/
А крутые технологии это которые?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #104

42. Сообщение от Аноним (43), 24-Июн-24, 14:51   +1 +/
Собственно, на этом и всё :) Причём это красиво КОНЦЕПТУАЛЬНО, а не синтаксически. Лисп потому и остался в академической ***опе, что не вывезет нормальные серьёзные приложения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

43. Сообщение от Аноним (43), 24-Июн-24, 14:54   –1 +/
Писать в пределах 80 колонок можно, просто выглядеть это будет ужасно (эстетически). Особенно это касается XAML с его нивротбольшими названиями атрибутов и байндингами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #73

44. Сообщение от Аноним (44), 24-Июн-24, 14:59   –1 +/
Распространение расширений, которые не зависят от бинарного представления на конкретной платформе. Не всегда стоит доверять скомпилированным кем-то программам/расширениям. Не всегда важна производительность ЯП, когда описывается какой-то сценарий.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #90

45. Сообщение от Аноним (12), 24-Июн-24, 15:17   +3 +/
> мне как проф. программисту

та странная портянка, что ты накатал, делит на ноль тебя как профессионала

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

46. Сообщение от Аноним (47), 24-Июн-24, 15:40   +2 +/
разновидностей лиспов есть много.
и не сказал бы что какой-то SBCL отстаёт от явы по скорости. Скорее наоборот совсем
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

47. Сообщение от Аноним (47), 24-Июн-24, 15:45   –1 +/
о да. расскажите про крутые технологие которые Вы упямянули
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #108

48. Сообщение от Аноним (49), 24-Июн-24, 15:46   +/
А чего же его в Guix выбрали для описания сборки пакетов, для самого пакетного менеджера?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #125, #164

49. Сообщение от Аноним (49), 24-Июн-24, 15:48   +/
Он тягучий.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #83

50. Сообщение от Bottle (?), 24-Июн-24, 15:54   +/
Потому что в этом мире далеко не все являются профессиональными программистами. Поэтому и Visual Basic и Python встроены в Excel, а не чистый Си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #92

52. Сообщение от Аноним (-), 24-Июн-24, 16:07    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

53. Сообщение от Аноним (-), 24-Июн-24, 16:13   –1 +/
> я ТОЖЕ могу делать расширения, только при этом зная ОДИН язык и не жертвуя ни на процент скоростью

Делай. Тебе никто не запрещает писать расширения к emacs'у на C. Или расширения к firefox'у на C++. Да, будут определённые неудобства, типа необходимости перекомпиляции сорцов, после каждого изменения расширения, но я не думаю, что это какая-то серьёзная проблема.

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

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

54. Сообщение от n00by (ok), 24-Июн-24, 16:20   +/
> Ребят, объясните мне как проф. программисту, С КАКОГО ПЕР-ЕП-ОЯ

Орать не надо, «программист».

> Спрашивается - нафига мне тормозная, нетипизированная, убогая скриптота, когда у меня есть
> ровно ТАКОЙ ЖЕ язык главного приложения (Си, C#, D, etc)

«Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.»

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

55. Сообщение от Вы забыли заполнить поле Name (?), 24-Июн-24, 16:27   +/
> Т.е. вы хотите сказать, что можно взять и относительно быстро написать на
> Lisp транслятор в С++, потом скормить этом транслятору код приложения на
> LISP и получить корректный код на С++, потом все это скормить
> компилятору С++ и получить работающее приложение, тем самым сократив время разработки?

Нечто подобное в Naughty Dog для данных (https://www.youtube.com/watch?v=oSmqbnhHp1c), только использовали racket.  

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

56. Сообщение от Вы забыли заполнить поле Name (?), 24-Июн-24, 16:30   +/
> но они всё равно должны подчиняться синтаксису лиспа

Не обязательно, например, в Racket можно кастомизировать reader https://beautifulracket.com/explainer/lang-line.html

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

57. Сообщение от Вы забыли заполнить поле Name (?), 24-Июн-24, 16:33   +/
> Есть одна маленькая проблемка: DSL в лиспе тоже являются лиспом!

Преобразуй свой синтаксис в лисп подобный (s-expr) и потом работай с ним привычными средствами.

>  Нафига оно тогда мне??

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

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

58. Сообщение от Аноним (58), 24-Июн-24, 16:46   +/
Считается, что функциональные языки более надёжны, в них можно динамически конструировать (и модифицировать) процедуры, отсутствие жёсткой структуры у данных и алгоритмов облегчает сопровождение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #65, #154

59. Сообщение от Аноним (59), 24-Июн-24, 16:48   –2 +/
Ровно до тех пор, пока ты не прекратишь мечтать и не начнешь писать код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #81

60. Сообщение от Аноним (60), 24-Июн-24, 16:57   –1 +/
Смотря какие расширения. Если расширения - скрипты, то скриптовый язык лучше. Скрипты это несложные программы которые по назначению надо постоянно менять. Представь программу-качалку с разных сайтов или программу-переводчик использующую какие-то сайты как сервисы или их апи. Сайты постоянно ломаются, соответственно расширения на скриптах намного удобнее, чем писать и компилить нормальный код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #64, #95

61. Сообщение от Аноним (61), 24-Июн-24, 17:01   +/
> Питон не гнутый, он PSFL.

Professional Spring Football League?

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

62. Сообщение от Аноним (61), 24-Июн-24, 17:03    Скрыто ботом-модератором+1 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

63. Сообщение от Аноним (59), 24-Июн-24, 17:08   +/
"Скриптоту" можно модифицировать налету (live coding), в простых случаях - без использования среды разработки. А скорость работы сценариев может быть неважна, когда они редко выполняются (например, только раз во время старта приложения), или когда значительное время занимает не сама обработка данных, а, скажем, системные вызовы (I/O). Кроме того язык скриптов может более намного проще и удобнее для разработки логики внутри приложени, за счет лучшей абстракции, большей независимости от платформы (ОС и железа).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #96

64. Сообщение от Аноним (23), 24-Июн-24, 17:14   +/
какие сайты, какие апи? сходи накопай картошки и скрипт не нужен
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

65. Сообщение от Аноним324 (ok), 24-Июн-24, 17:55   +/
А ещё можно менять программу прям в проде, и ничего не сломается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

66. Сообщение от Аноним (69), 24-Июн-24, 17:58   +1 +/
> Добавлена поддержка упрощённого синтаксиса wisp, позволяющего писать более читаемый код

Если это более читаемый код, то я тогда мать Тереза.

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

67. Сообщение от Аноним324 (ok), 24-Июн-24, 17:58   +/
Потому что ты пишешь программу для оператора, а оператор не проф. программист(как и ты, судя по твоим умозаключениям), он не может, и не должен знать плюсы, для того чтобы прикрутить к своей программе что либо. Оператору нужен язык который может понять человек, а не программист. Именно по этой причине существует, питон, луа, автолисп, 1С, матлаб и прочее. Чтобы человек, которому нужно больше функциональности, мог дописать эту функциональность, не имея 6 лет кампутер саенс вышки за плечами. И страдать жручи С++, шарпы или джаву он тоже не должен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

68. Сообщение от Аноним324 (ok), 24-Июн-24, 17:59   –2 +/
Полностью, начнём с того что схема не лисп вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #70

69. Сообщение от Аноним (69), 24-Июн-24, 18:03   +3 +/
Есть два типа программистов: те, кто понял Лисп, и те, кто так и не научился программировать. По реакции)))))) на скобочки можно очень легко отделить первых от вторых.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #79, #123

70. Сообщение от Аноним (49), 24-Июн-24, 18:07   +/
Но скобочки?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #78

71. Сообщение от Аноним (49), 24-Июн-24, 18:55   +1 +/
Ты бесконечно вырастил его в собственных глазах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #80

72. Сообщение от MaleDog (?), 24-Июн-24, 18:58   +/
Как по мне так дофига многословный. На таком только копилоту писать удобно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

73. Сообщение от Аноним (2), 24-Июн-24, 19:02   +1 +/
Писать краткий код, легко читаемый код, на хорошем языке - это спутники таланта.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

74. Сообщение от Аноним (2), 24-Июн-24, 19:04   +/
> Так и не понял в чём смысл лиспов, если по скорости они отстают от других языков. Даже джава быстрее.

В краткости решения задач на этом языке, для которых язык предназначен?

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

75. Сообщение от Аноним (2), 24-Июн-24, 19:08   +/
> скриптота внезапно стала нужной для "расширений"?

Попытка отдать пользователю описание логики работы, нужной пользователю.

Для простых вещей неплохо. Взлетело ж? Значит, хорошо подходит.

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

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

76. Сообщение от Омоним (?), 24-Июн-24, 19:09   +1 +/
На их сайте всё написано:

Using any of the supported scripting languages, users can customize and extend applications while they are running and see the changes take place live!

Users can easily trade and share features by uploading and downloading the scripts, instead of trading complex patches and recompiling their applications

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

77. Сообщение от Аноним (2), 24-Июн-24, 19:11   +/
Избыток скобочек засоряет взор индейца. Без скобок вариант читаемый легче (быстрее - с меньшей тратой внимания).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #85

78. Сообщение от Омоним (?), 24-Июн-24, 19:18   +/
Emacs lisp - расширение Лиспа, а Scheme - не лисп, но похож.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

79. Сообщение от n00by (ok), 24-Июн-24, 20:21   +1 +/
Турчин не понял Лисп и потому сделал в Рефал три вида скобочек? Я серьёзно спрашиваю. Если превосходно читаемый код приходится особым образом форматировать, это первый звоночек. Не про Лисп, а вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #138

80. Сообщение от n00by (ok), 24-Июн-24, 20:30   +/
При делении на 0 генерируется исключение, а не бесконечность.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #89

81. Сообщение от Аноним (81), 24-Июн-24, 20:50   +1 +/
Большая часть кода, которая вываливается на гитхабчик, и так лицензирована всякими пермиссивными лицензиями. От этого весь этот код не становится нужнее.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

82. Сообщение от Аноним (81), 24-Июн-24, 20:52   +1 +/
Думаю, он всё-таки иронизировал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

83. Сообщение от Аноним (81), 24-Июн-24, 20:52    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

84. Сообщение от Аноним (81), 24-Июн-24, 21:01   +1 +/
Давно ты конфиг емакса не открывал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

85. Сообщение от Аноним (47), 24-Июн-24, 21:39   +1 +/
со скобками быстрее прочитать получилось
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

86. Сообщение от Bottle (?), 24-Июн-24, 22:52   –2 +/
Преимущество в том, что это реально язык, который поймёт любой школьник, а не только ученик физматшкол, входящих в топ-100 России. Это идеальный язык для обучения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #88, #105

87. Сообщение от Аноним (-), 25-Июн-24, 00:10   +2 +/
Довольно серьёзно. Схема -- это вылизанный лисп, из которого выкинут весь этот исторический треш, типа символов, которые имеют имя, значение, функциональное значение и список свойств. Практически никто этим не пользуется, достаточно имени и значения, но elisp, и всякие там common lisp'ы продолжают насиловать стюардессу. Уже из этого одного отличия вытекает пачка синтаксических различий, типа вместо семейства defun/defvar/defparameter и тп в схеме есть только define.

Но есть ещё одно отличие, схема вся на лексических биндах, оригинальный же лисп и его упёртые последователи никак не могут отделаться от динамических биндов. elisp особенно: у Столлмана был бзик по этому поводу; насколько я знаю, он не лечился, и думаю до сих пор страдает от него. Динамические бинды тормозные (их разрешать приходится в динамике, а не на этапе компиляции), они могут приводить к интересным проблемам, которые решаются через naming conventions, и глобалы имеют имена типа *глобальная-переменная*, или если константа то +глобальная-константа+. Такие соглашения, я думаю, решают все проблемы, типа того, что у тебя имя аргумента функции совпало с именем глобального символа (который может быть создан после того, как твоя функция скомпилировалась, он может быть создан в рантайме), и после этого твой код творит какую-то пургу и чтобы разобраться в этом надо реально быть бородатым лиспером. Но даже если эти проблемы уходят, всё ж неприятно иметь такую граблю под ногами. Ты в REPL решил что-то посчитать по-бырому, создал символ через defvar или даже через setq, и библиотечному коду сорвало крышу. В Common Lisp'е для этого есть неймспейсы, но elisp ущербен в этом отношении, глобальное пространство имён глобально.

Короче, они очень разнятся. Основные идеи одинаковы, но всё что не схема содержит в себе горы ненужного legacy из середины XX века, которое тогда казалось хорошей идеей, а со временем оказались отстоем. Зачем его сегодня лисперы держат мне не понятно, может чтобы чувствовать идейную связь с допотопными поколениями программистов? Только про Столлмана можно понять, зачем ему это, у него аутизм усугублённый синдромом вахтёра, поэтому он будет держаться того как было до последнего.

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

88. Сообщение от Прохожий (??), 25-Июн-24, 00:41   +/
Почти идеальный для обучения, всё же - это Pascal. Python очень далёк от идеала в этом плане.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86 Ответы: #103, #124

89. Сообщение от Аноним (89), 25-Июн-24, 00:52   +/
В матане нет исключений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #101, #119

90. Сообщение от Аноним (43), 25-Июн-24, 01:29   –2 +/
Если программа УЖЕ скомпилена для Линукса, то какая на%рен разница, чё там с представлением? Просто поставляешь so-шку и программа её загружает! Для венды канпеляешь DLL. Всё. Тут нет никакой "зависимости", бинарный шмот основной программы будет такой же, как и расширения.

Про доверие бинарям - извини, это уже к параноикам. Ты ставишь линукс, где скомпилены ТЫСЯЧИ программ. Не тобой. Как ты им доверяешь?? :))

Производительность ещё как важна! Ты же пишешь расширение - откуда тебе знать, как глубоко оно влезет? А если оно по каждому нажатию клавиши проверяет всю таблицу юникода? Скорость ВСЕГДА важна.

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

92. Сообщение от Аноним (43), 25-Июн-24, 01:31   –1 +/
Извини, но ты напишешь полное г***но хоть на пестоне, хоть на Си - разницы нет. Для работы с пестоном, прикинь, тоже нужна квалификация! В нём нет НИЧЕГО, чтобы домохозяйка со знанием Икселя могла на нём писать. Это тебе не "язык черепашки"!
Так что аргумент мимо. Ещё есть?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #148

93. Сообщение от Аноним (43), 25-Июн-24, 01:33   +/
Фигню не говори! Не нужно ничего ПЕРЕкомпилировать, ты видимо давно не писал программ - освежись. Аддоны прекрасно загружаются, даже если ты сменил сто версий основной программы. Просто в этом и суть внешних библиотек (вернее, модулей) - они не зависят от основного кода, так и было задумано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #111

95. Сообщение от Аноним (43), 25-Июн-24, 01:38   +1 +/
> Если расширения - скрипты...

Боже, что ты несёшь?? :)))

Расширения - это функциональность, причём тут скрипты? Пишешь внешний модуль, даёшь программе - она работает.
И нет, расширения НЕ простые программки! (иначе они нахрен не нужны) Там целая связь с API основной программы + свои функции. И нет, их не надо постоянно менять - с чего ты это взял???
Иногда - да, нужен апдейт. Просто перезаписал старый модуль - всё, расширение новое! Сорсы для этого не нужны.
Если сайты постоянно ломаются, это вообще не проблема расширений, они по-прежнему могут быть написаны на Си. А такие сайты идут на *****.

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

96. Сообщение от Аноним (43), 25-Июн-24, 01:54   +/
О! Оптимистов подвезли :) Скажи, ТЫ ЛИЧНО много модифицировал расширений? :) Даже элементарный адблок (который на JS) - там чёрт ногу сломит, ты неделю будешь разбираться, кто там и что вызывает. Доступ к сорсам тебе НИЧЕМ не поможет, для начала ты должен чётко понимать всю логику аддона и только потом модифицировать. Что примерно сродни написанию этого аддона. :) Готов к таким вызовам?
Никто расширения не модифицирует, просто прими это. Принято жаловаться автору, тот фиксит (намного быстрее тебя, потому что знает его весь) и выкладывает апдейт. Всё.

Без среды разработки? Хм... а зачем вообще лезть в программинг БЕЗ СРЕДЫ? :) Кто ты, воин?

Скорость важна. Просто спроси любого юзера Тундербёрда. :) Это для перделок неважно, сколько они работают. Важные и полезные расширения - они нетривиальны и могут вызываться по сотне раз за секунду - что ты им предложишь? Снова переписать всё с JS на Си? :)
Я не про то, что давайте совсем откажемся от скриптов, я про то, что расширения можно И НУЖНО писать на нормальных языках и скрипты тут ВООБЩЕ НЕ НУЖНЫ (не требование).

Язык скриптов не может быть проще - хотя бы потому, что расширению нужен API главной программы + это должен быть ЯОН, позволяющий выразить ЛЮБОЙ алгоритм. Соотв. ты по-любому съедешь обратно к тому, что тебе нужен Си (к примеру). Чем тупее и высокоуровневее язык, тем МЕНЬШЕ ты можешь на нём выразить, так что зачем он для расширений??

Вот тебе пример: Бейсик (в самой его тривиальной реализации а-ля БК-0010 или GWBASIC). Много ты на нём напишешь? Ты даже "словарь" не сможешь использовать - его там попросту нет. :) Ну и смысл в этой простоте и "независимости от платформы"?? Нет зависимости - значит НЕТ ВОЗМОЖНОСТИ использовать нативные средства. Скажем, "моргнуть иконкой в трее" или создать задачу по расписанию. Получается, все твои выразительные средства - посчитать факториал, да месыдж бокс показать. Кому нужен такой "скриптонит"??

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

98. Сообщение от Аноним (43), 25-Июн-24, 02:09   +/
А чем плоха логика, написанная на Си? :) Даёшь юзеру скелет, он его наполнил, сканпелял - вот тебе быстрый, компактный аддон. В чём тут ТРЕБОВАНИЕ именно скриптоты?? Она кстати ничуть не легче тех же Си или C#. Просто ЯОН в принципе не может быть "простой" - все конструкции того же Си обязаны присутствовать, иначе ты просто не сможешь выражать все алгоритмы.

Взлетели скрипты?? Хм... куда и какие именно? :) Не, ну то, что куча программ стала тормознее в тысячу раз - да, это я заметил. Тот же Тундербёрд на JS - это вообще пи_____ц. Но "взлетело" - я б так не говорил. Нет на сегодня успешных проектов, где "скриптота" - основа расширений. То, что куча леммингов ест какой-то кактус - это вовсе не "взлетело", это называется "на безрыбье и рак - карась".

Моя мысль в чём: если есть какая-то серьёзная программа с ядром, вовсе не нужно тащить в неё скрипты - они только загадят экосистему (вместе с дилетантами-скриптописаками). Можно и нужно давать API для того же языка, на котором написана прога. И такие аддоны будут идеальным решением, т.к. будут почти как "родные". Скрипты не будут родными никогда, да и не нужны они: аддоны - это тоже серьёзная работа, её не должны делать те, кто вчера написал на жабоскрипте хелловорлд.

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

99. Сообщение от Аноним (43), 25-Июн-24, 02:14   +/
Не убедил. Зачем мне live?? Как разработчик, у меня и так есть IDE со всеми плюшками. Запустил, отладил, опубликовал. Конечному юзеру ТЕМ БОЛЕЕ не нужно - он просто положил аддон рядом и он работает.

Скрипт - это просто файл. Скачать файл и записать его в /addons/ - не бóльшая трудозатрата, чем скачать ТАКОЙ ЖЕ ФАЙЛ в виде .so и положить туда же. Какие ещё "complex patches and recompiling"??? Авторы явно не в курсе, что динамические либы для того и придумали, что не нужны никакие recompiling. Скриптовое дилетантство - вот что мешает разрабам трезво взглянуть на ненужность и ущербность скриптов как "языка расширений".

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

101. Сообщение от анон (?), 25-Июн-24, 03:59   +/
В матане нет и деления на ноль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #131

103. Сообщение от Аноним (103), 25-Июн-24, 07:18   +1 +/
Паскаль хорош для обучения, потому что для обучения ему ничего не надо менять. Вот преподаватели-пенсионеры, они уже есть, они могут преподавать паскаль условно до смерти.

Ему ещё подыгрывает оторванность образования от реальности. Нет нацеленности на подготовку реальных работников - можно учить любым языкам. Обучающийся всё стерпит, его время бесплатно, а потом он внезапно может даже защищать такое обучение (землянам приятнее считать, что они делали что-то полезное и осмысленное, это полезно для их психики).

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

104. Сообщение от Илья (??), 25-Июн-24, 07:35   +/
> А крутые технологии это которые?

Смотря для каких целей. Для бека - дотнет. Для мобилок - нативное, для веб-фронтенда js.

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

105. Сообщение от Илья (??), 25-Июн-24, 07:38   +/
> Преимущество в том, что это реально язык, который поймёт любой школьник

вставьте сюда ЛЮБОЙ современный язык.

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

106. Сообщение от Прохожий (??), 25-Июн-24, 08:03   +/
Pascal хорош для обучения, потому что:
1. Простой синтаксис.
2. Строгая типизация.
3. Компилируемый.
4. Работает с указателями.
5. Отсутствует (или там очень мало) UB.
6. Модули.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103 Ответы: #109, #152, #163

107. Сообщение от Прохожий (??), 25-Июн-24, 08:08   +/
Haskell, C++, Rust. Мало кто из школьников с нуля, не зная азов, сможет их освоить. Что уж там говорить, далеко не все профессионалы могут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

108. Сообщение от Илья (??), 25-Июн-24, 08:52   +/
> о да. расскажите про крутые технологии которые Вы упомянули

Любые, у которых есть осязаемые техническое преимущества:

Например:
- строгая типизация и как следствие
- расширенные оптимизации производительности
- статический анализ исходя из типов
- ошибки времени компиляции а не рантайма
- скорость. экономия оперативки и цпу
- отсутствие GC
- многопоточка
- расширенный ООП или ФП,
- нативная АОТ компиляция
- нормальный синтаксис "примерно как у всех"

Например, голанг, дотнет, c++, js. Да что угодно кроме пейфона на мой взгляд можно брать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #126, #128, #129

109. Сообщение от Аноним (103), 25-Июн-24, 09:01   +/
Ну это несерьёзно. Вот примерим эти пункты на ALGOL 68-R, Pascal и C#. Одинаково хорошо ложатся. Но выставить вперёд надо Pascal. Почему? Потому что на самом деле важны другие пункты: система из преподавателей-старичков, из написанных и принятых учебных программ и учебников, из такой родной и привычной негибкости системы образования. Всё это приправляется некоторым принятием в обществе - "я сам же ж так учился", "я сам же ж потом на Delphi писал", а общество это со своими тёплыми чувствами может ещё пунктов помимо этих шести накидать для рационализации.

На практике из диалектов могут преподавать PascalABC.NET, то есть монстра с доступом ко всему дотнету, который прикостыляли к паскалю.

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

110. Сообщение от жявамэн (ok), 25-Июн-24, 09:33   +/
>зыком разработки расширений для операционной системы GNU.

что это за ОС такая?

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

111. Сообщение от Аноним (-), 25-Июн-24, 09:41   +/
> Аддоны прекрасно загружаются, даже если ты сменил сто версий основной программы.

Ну-ка покажи мне пример, как ты подгружаешь аддон писанный на C к emacs'у без перекомпиляции emacs'а.

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

113. Сообщение от funny.falcon (?), 25-Июн-24, 10:04   +1 +/
Quake работал на железках в 100 раз медленнее нынешних.

Тем не менее, вся логика, а также многое из отрисовки, была написана на интерпретируемом языке QuakeC.

Казалось бы, зачем? Зачем терять скорость выполнения на и так уже не быстрых компьютерах? Зачем нужна была ещё одна прослойка от фантазии разработчика до процессора?

Подумай над этим.

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

114. Сообщение от Аноним (114), 25-Июн-24, 10:06   +/
GNU is an operating system that is free software—that is, it respects users' freedom. The GNU operating system consists of GNU packages (programs specifically released by the GNU Project) as well as free software released by third parties. The development of GNU made it possible to use a computer without software that would trample your freedom.

...

GNU is a Unix-like operating system. That means it is a collection of many programs: applications, libraries, developer tools, even games. The development of GNU, started in January 1984, is known as the GNU Project. Many of the programs in GNU are released under the auspices of the GNU Project; those we call GNU packages.

GNU's own kernel, the GNU Hurd, was started in 1990 (before Linux was started). Volunteers continue developing the Hurd because it is an interesting technical project.

https://www.gnu.org/home.html

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

115. Сообщение от fuggy (ok), 25-Июн-24, 10:19   +/
Код это данные, данные это код. Это очень мощный подход для метапрограммирования. И новый синтаксис это ломает. Это как json формат, но json это только данные. По поводу скобочек до сих пор не могу понять претензий разве в JavaScript их меньше, с той лишь разницей что скобочки пишутся после вызова имени функции, а не до.
Сравни (defun foo (a b) (boo a b)) и function foo(a, b) { return boo(a, b); } скобочек ровно столько же. Более того в js встречаются конструкции колбеков с их громадой скобочек }) }) }).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #118

116. Сообщение от fuggy (ok), 25-Июн-24, 10:30   +/
Неужели ты не отличаешь динамическую типизацию от динамических библиотек.
Смотря для каких целей. Для каждого инструмента своя цель. Для прототипирования или если нужно накидать быстро скрипт на один раз. Пока ты ещё будешь с указателями разбираться, они уже будут кофе попивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #120

117. Сообщение от жявамэн (ok), 25-Июн-24, 10:39   –1 +/
где скачать исошку?
на реальном железе работает?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #139, #150

118. Сообщение от n00by (ok), 25-Июн-24, 10:58   +/
В JavaScript скобочки разные.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #127, #136

119. Сообщение от n00by (ok), 25-Июн-24, 11:00   +/
Далёк матан от программирования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

120. Сообщение от n00by (ok), 25-Июн-24, 11:07   +/
> Неужели ты не отличаешь динамическую типизацию от динамических библиотек.

Он и 10-е правило Гринспена назвал "мем с тырнета". ;)

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

121. Сообщение от n00by (ok), 25-Июн-24, 11:10   +/
> Просто ЯОН в принципе не может быть "простой"
> - все конструкции того же Си обязаны присутствовать, иначе ты просто
> не сможешь выражать все алгоритмы.

Не проецируй на других свои знания и способности. Лучше почитай "мем с тырнета" под названием "тезис Чёрча-Тьюринга".

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

122. Сообщение от Аноним (123), 25-Июн-24, 11:21   –1 +/
да все равно, чтобы нормально поставить все эти точки и двоеточия, надо понимать, где у тебя скобочки
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

123. Сообщение от Аноним (123), 25-Июн-24, 11:24   +/
Да чего там понимать. Лисп - это язык по сути без синтаксиса, с программированием в AST напрямую (прямолинейный маппинг s-expr на AST синтаксисом назвать сложно). Понятно-то оно понятно, но программировать напрямую в AST - это удовольствие на любителя. Ну кому-то нравится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

124. Сообщение от Аноним (124), 25-Июн-24, 11:34   +/
Golang для обучения лучше, только при обучении надо выкинуть (или замести под ковер) все кейсы с interface{}. Статически типизированный (с учётом поправки выше), простой синтаксис с минимумом вариативности, явная обработка ошибок, форсированный стиль кода. И С понять потом будет легко - поняв слайсы, легко поймёшь указатели
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

125. Сообщение от Аноним (124), 25-Июн-24, 11:35   +/
Лисп-подобные языки удобны для DSL.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

126. Сообщение от fuggy (ok), 25-Июн-24, 11:49   +/
Что из этого есть у golang: отсутствие GC, расширенный ООП, нативная АОТ компиляция?
Что из этого есть у js: начиная со строгая типизация; отсутствие GC, ошибки времени компиляции а не рантайма, многопоточка, статический анализ исходя из типов?
Если нужно удовлетворить часть пунктов, то в Common Lisp есть расширенный ООП, расширенный  ФП само собой, он компилируемый, есть нативная АОТ компиляция, сильная (динамическая) типизация. То есть кроме привычного синтаксиса он целиком удовлетворяет требованиям?
Между прочим именно в Lisp первым изобрели GC, который есть в перечисленных тобой и мейнстримных языках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108

127. Сообщение от fuggy (ok), 25-Июн-24, 12:07   +/
Какая разница. В Clojure вот скобочки разные например, но почему )))) - это "ой боюсь, страшно", а }) }) }) - это нормальный синтаксис? Одинаковые скобочки может IDE легко закрывать по хоткею например. Да и в js одинаковые подряд тоже бывают foobar(foo(bar())).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #143

128. Сообщение от freehck (ok), 25-Июн-24, 12:35   +1 +/
> - отсутствие GC

На самом деле само по себе наличие GC -- это не минус. Всё зависит от реализации. Сделать хороший многопоточный GC -- это задача на докторскую, как минимум, да. На данный момент существуют две таковые: в JVM и в OCaml.

> - расширенный ООП

ООП кстати штука не обязательная. Он прекрасно заменяется теорией категорий. За примерами можете обратиться к Haskell и OCaml.

> - скорость. экономия оперативки и цпу
> - нативная АОТ компиляция

Если писать 12-factor-приложения, без этого можно обойтись, но если оно есть, это конечно хорошо.

По остальным пунктам -- просто да, без уточнений.

PS:

> Например, голанг, дотнет, c++, js.

Примеры сомнительные. Вашим критериям скорее удовлетворяют некоторые языки семейств Lisp и ML. Ну кроме "синтаксис как у всех". Обратите внимание, например, на Racket Scheme и OCaml. Особенно на последний. А так, приведённые вами критерии говорят о том, что вы движетесь в верном направлении.

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

129. Сообщение от Аноним (129), 25-Июн-24, 12:50   +/
JS: строгая типизация, расширенные оптимизации производительности, скорость. экономия оперативки и цпу, нативная АОТ компиляция :))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #141

131. Сообщение от Аноним (129), 25-Июн-24, 13:00   +/
В матане есть пределы, в которых когда приходят к константным значениям при раскрытии, таки подставляют значения 0 или лежачую восьмёрку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #147

132. Сообщение от anonymous (??), 25-Июн-24, 13:01   +/
а мне понравилось, запомнить: 1) строки, которые начинаются с точки, оборачивать в скобки не надо, 2) двоеточие, наоборот - заключить в скобки, 3) новая строка и отступы - и так понятно
зато как итог, никакой тебе кучи смайликов

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

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

133. Сообщение от freehck (ok), 25-Июн-24, 13:05   +1 +/
>>Кроме языка Scheme, для которого реализована поддержка спецификаций R5RS, R6RS и R7RS, в рамках проекта Guile разработаны компиляторы и для других языков, таких как ECMAScript, Emacs Lisp и Lua
> А насколько разнятся Scheme и Emacs Lisp?

Очень и очень сильно.

Emacs Lisp сильно тяготеет к Common Lisp. У него все переменные имеют динамическую область видимости. Лексическую в него добавили году эдак в 2018м, если мне память не изменяет. В Scheme -- всё изначально на лексической: если тебе вдруг нужна динамическая, надо указывать это явно. Это сильно улучшает безопасность кода, а также позволяет применять множество оптимизаций на этапе компиляции. И это ещё не затрагивая тему читаемости кода и "ушек" у символов.

Плюс к тому, схемы имеют систему модулей. Начиная с R6RS -- описанную в стандарте. Emacs Lisp же ничего подобного не имеет, что вкупе с динамической областью видимости отягощает разработчиков писать весьма длинные имена переменных: каждую с префиксом по имени модуля. Впрочем, это не большой косяк, многие языки этим страдают. Например, у Ansible -- всё точно так же, и никого это не смущает. Во всяком случае я в свои регламенты к написанию ролей для Ansible утянул этот подход именно из Emacs Lisp.

У Scheme общее пространство имён для всех символов, у Lisp-ов -- функции живут в отдельном пространстве. Это упрощает жизнь.

Впрочем, есть и ухудшения. Основная сила лиспов -- в макросах. Они позволяют менять синтаксис языка на лету. Схемы разработали свою систему "гигиенических макросов". Если ими пользоваться, то ты гарантировано получаешь корректный синтаксис. Однако читать их определения -- без поллитра не разберёшься. В CL и EL же -- классический топорный defmacro. Он позволяет разработчику выстрелить себе в ногу, но зато он понятный и удобный. Впрочем, многие схемы "не рекомендуют", но имеют defmacro тоже.

Словом, различия есть, и их много. Если вы выбираете себе лисп для изучения -- я рекомендую смотреть сначала на Racket Scheme, как на наиболее живого представителя схем. Emacs Lisp -- это если захотите глубоко работать с Emacs. На диалекты Common Lisp смотреть не рекомендую, разве что в целях расширения кругозора. CL в итоге стал пристанищем для социофобов (и на сии мысли меня навёл их код и их экосистема, ибо я честно написал магистерскую на SBCL), лучше бы их не беспокоить.

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

135. Сообщение от Аноним (129), 25-Июн-24, 13:58   +/
>Основные идеи одинаковы, но всё что не схема содержит в себе горы ненужного legacy из середины XX века, которое тогда казалось хорошей идеей, а со временем оказались отстоем.

Я правильно понял, имелось ввиду "Elisp содержит в себе горы ненужного legacy из середины XX века", а не Scheme?

Оставьте Столмана, он передал бразды правление Емаксом ещё с какой-то 24 версии. И теперь за новым сопровождающим решения по необходимости модернизации Elisp, если сочтёт нужным.

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

136. Сообщение от Вы забыли заполнить поле Name (?), 25-Июн-24, 14:07   +/
Стандарт схемы позволяет использовать разные виды скобок, так например в racket и chezscheme много используются квадратные скобки для читабельности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #144

137. Сообщение от Аноним (129), 25-Июн-24, 14:10   +/
>У Scheme общее пространство имён для всех символов, у Lisp-ов -- функции живут в отдельном пространстве. Это упрощает жизнь.

Так что упрощает: общее для всех или отдельное для функций?

>Если вы выбираете себе лисп для изучения -- я рекомендую смотреть сначала на Racket Scheme, как на наиболее живого представителя схем.

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

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

138. Сообщение от Аноним (-), 25-Июн-24, 16:13   +1 +/
> Если превосходно читаемый код приходится особым образом форматировать, это первый звоночек.

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

> Турчин не понял Лисп и потому сделал в Рефал три вида скобочек?

Что за турчин, и что за рефал? Какая-то никому не нужная маргинальщина? Раз маргинальщина, значит не понял.

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

139. Сообщение от Аноним (129), 25-Июн-24, 16:31   +/
Скорее всего, придётся всё самому собирать from scratch.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

140. Сообщение от Аноним (-), 25-Июн-24, 16:42   +/
> И теперь за новым сопровождающим решения по необходимости модернизации Elisp, если сочтёт нужным.

Уже давно анрил. Вся конфигурация emacs'а делается через динамические бинды. Ты можешь открыть любой аддон к emacs'у и увидеть там сразу вначале грядку defconst и defvar.

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

141. Сообщение от Илья (??), 25-Июн-24, 17:56   +/
В JS свои приколы, которые его делают конкурентным. Например, единый язык на фронте и беке.

Для любителей типов есть TS, а по производительности он значительнее шустрее пейфона

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

143. Сообщение от n00by (ok), 25-Июн-24, 18:05   +/
Потому что люди разные и восприятие различается. Одному удобнее одинаковые )), поскольку не надо думать, где какую поставить. Другому }), поскольку видно, какая что закрывает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127

144. Сообщение от n00by (ok), 25-Июн-24, 18:08   +/
Так и претензия к одинаковым скобочкам. Не удивлюсь, что во время зарождения LISP других скобочек и не было. Сделали же в Си триграфы ??( для [ и ??< для {.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

145. Сообщение от n00by (ok), 25-Июн-24, 18:22   +/
>> Турчин не понял Лисп и потому сделал в Рефал три вида скобочек?
> Что за турчин, и что за рефал? Какая-то никому не нужная маргинальщина?
> Раз маргинальщина, значит не понял.

Зачем же ты влез с своим сверхценным мнением, если не понял? Тем более, что о тебе тем более никто ничего не слышал.

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

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

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

147. Сообщение от Аноним (-), 25-Июн-24, 18:26   +1 +/
Но это не деление на ноль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131

148. Сообщение от Аноним (-), 25-Июн-24, 18:29   +1 +/
>Так что аргумент мимо. Ещё есть?

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

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

149. Сообщение от Аноним (149), 25-Июн-24, 18:31   +/
>> - отсутствие GC
> На самом деле само по себе наличие GC -- это не минус.
> Всё зависит от реализации. Сделать хороший многопоточный GC -- это задача
> на докторскую, как минимум, да. На данный момент существуют две таковые:
> в JVM и в OCaml.

Вариант GC для OCaml лежит у меня на гитхапе, вместо родного консервативного, уплотняющий. Не помню в оригинале "хорошей моногпоточности".

Проще говоря: потрудись подтвердить ссылкой на исходники.

Кстати, сообщения от Анонима тебе не запретили удалять? ;)

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

150. Сообщение от Аноним (-), 25-Июн-24, 18:39   +/
>где скачать исошку?

На сайте GNU.

>на реальном железе работает?

Да, но оно 32-х битное, не 64 битное.

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

151. Сообщение от freehck (ok), 25-Июн-24, 19:20   +/
>> У Scheme общее пространство имён для всех символов, у Lisp-ов -- функции живут в отдельном пространстве. Это упрощает жизнь.
> Так что упрощает: общее для всех или отдельное для функций?

Общее для всех. Проще говоря, внутри схемы просто одна большая таблица, которая связывает символы со значениями, а в CL -- их две. И таким образом вместо defvar и defun -- только define, а вместо #' и ' -- только '. Вот вроде бы мелочь, но хорошо, когда она не отвлекает.

>> Если вы выбираете себе лисп для изучения -- я рекомендую смотреть сначала на Racket Scheme, как на наиболее живого представителя схем.
> Я выбираю пакетный менеджер Guix, поэтому выбор очевиден :) Ну поглядываю в его сторону пока.

Ваше право. Но осмелюсь заметить, что на Racket или Clojure вы работу найти сможете, а на Guile -- ну проблематично. Поэтому я Guile не могу рекомендовать.

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

152. Сообщение от Аноним (-), 26-Июн-24, 07:36   +/
>Но для обучения принципов программирования - очень даже хороший язык. После него уже можно переходить к другим, более современным языкам.

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

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

154. Сообщение от Аноним (123), 26-Июн-24, 16:14   +/
вы путаете lisp-подобные языки с функциональными, то, что lisp отчасти (но не полноценно) функциональный - это просто следствие его дизайна, а вот слабость типов - это сам дизайн

haskell функциональный, причем полноценно (в отличие от lisp), но статически типизирован.

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

155. Сообщение от кто здесь (?), 27-Июн-24, 03:08   +/
> я рекомендую смотреть сначала на Racket Scheme, как на наиболее живого представителя схем

Нет такого языка -- Racket Scheme.
Есть просто Racket.
Который вырос из PLT Scheme.
И был переименован в Racket именно потому,
что в какой-то момент перестал быть схемой.

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

156. Сообщение от фф (?), 27-Июн-24, 09:55   +/
для 3-way diff и мерджа хорошо бы даже 3 колонки сразу видеть
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

157. Сообщение от фф (?), 27-Июн-24, 09:58   +/
не знаю, я вот с лиспом не знаком, но вариант со скобочками понял что делает, а висп вариант - нет (пока скобочки не подглядел).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

158. Сообщение от freehck (ok), 27-Июн-24, 11:15   +/
>> я рекомендую смотреть сначала на Racket Scheme, как на наиболее живого представителя схем
> Нет такого языка -- Racket Scheme.
> Есть просто Racket.
> Который вырос из PLT Scheme.
> И был переименован в Racket именно потому,
> что в какой-то момент перестал быть схемой.

Да, Racket это не чистая Scheme. Но разница не сильно велика. Перейти с Racket на чистую Scheme в случае необходимости не составит большого труда.

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

159. Сообщение от Прохожий (??), 30-Июн-24, 09:17   +/
>Видимо прохожему плевать на время других людей.

Всё ровно наоборот. Когда мы говорим о Паскале, речь идёт об обучении студентов или даже школьников. Человеку для начала важно понять основные принципы программирования, а потом уж переходить к деталям. Так вот для изучения этих самых принципов Паскаль очень даже хорош. До сих пор, как бы странно это ни было.

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

160. Сообщение от Прохожий (??), 30-Июн-24, 09:19   +/
>Вот примерим эти пункты на ALGOL 68-R, Pascal и C#. Одинаково хорошо ложатся.

Пошли попытки натянуть сову на глобус. Нет, не одинаково хорошо. Особенно, если мы говорим про пункт 1.

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

161. Сообщение от Прохожий (??), 30-Июн-24, 09:37   +/
>Их и домохозяйка освоит, при сильном желании конечно же.

Не освоит. Потому что такое желание у неё никогда не возникнет. Даже несмотря на то, что языки простые, сам процесс программирования таковым не является. Сужу исходя из жизненного опыта. Когда-то давным-давно работал в весьма крупной корпорации с многомилиардными долларовыми оборотами. Там был огромный штат экономистов и бухгалтеров. Все поголовно использовали Excel. При этом никто не умел программировать на доступном тогда и как бы простом Visual Basic. И даже мысли научиться не возникало. Хотя у всех было высшее образование. Так что не надо фантазировать на тему кто что гипотетически может.

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

162. Сообщение от Q7sc (?), 17-Июл-24, 18:30   +/
вполне можно получать близкую к Си производительность

https://github.com/digego/extempore
https://gist.github.com/marcoheisig/a17ece641cbdd39de5cf1ea2...

работая при этом с запущенной программой: например, можно писать игрушку, пока она запущена

https://youtu.be/6pMyhrDcMzw

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

https://groups.csail.mit.edu/mac/users/gjs/6946/refman.txt

для работы с классической физикой я не видел. где ещё можно писать лагранжианы и сразу получать модели движения?

ниша lisp-ов: когда нужно делать нечто логически сложное, не жертвуя особо производительностью.

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

163. Сообщение от Аноним324 (ok), 03-Авг-24, 11:16   +/
> Pascal хорош для обучения, потому что:
> 1. Простой синтаксис.
> 2. Строгая типизация.
> 3. Компилируемый.
> 4. Работает с указателями.
> 5. Отсутствует (или там очень мало) UB.
> 6. Модули.
> Да, он сейчас мало где применяется, это правда. Но для обучения принципов
> программирования - очень даже хороший язык. После него уже можно переходить
> к другим, более современным языкам.

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

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

164. Сообщение от Аноним324 (ok), 03-Авг-24, 11:17   +/
> А чего же его в Guix выбрали для описания сборки пакетов, для
> самого пакетного менеджера?

А гуикс это что-то популярное и повсеместно используемое? Насколько я помню это поделка маргинальных васянов которая никому не нужна.

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


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

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




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

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