История изменений
Исправление Nervous, (текущая версия) :
Clojure это не Lisp.
Если что-то плавает, как утка, и крякает, как утка — вероятно, это таки да утка %)
Весь код программы Lisp находится в памяти.
А у кложи где — в астрале?
Гранулярность компиляции одна функция
Одна форма, да. В кложе, насколько мне известно, так и есть.
весь образ программы в памяти сохраняется на диск
Вот тут да, похоже на заметное отличие. Даже АОТ-скомпилированная в байткод кложа вряд ли сможет продолжить выполнение с той же точки, где оно закончилось в прошлый раз. В некоторых случаях может быть полезно, но вообще это палка о двух концах — воспроизводимости можно не ждать с таким подходом. Что я там наэвалил в прошлый раз? Кто знает. Если перекомпилирую полностью с исходников — заработает? Б-г ведает.
Для Lisp нет дебаггеров. Сам Lisp это дебаггер.
Ну, собственно, CIDER использует запущенный процесс кложи в хвост и в гриву — для навигации по коду, для поиска документации, для дебага. Без репла это всё не работает.
предлагая варианты перезапуска с этой точки
Да, conditions/restarts в кложе нет — то ли ограничения платформы, то ли нежелание Рича заморачиваться, когда уже есть исключения, которые лучше, чем ничего. (Continuations туда же. И tail call elimination вручную.)
все символы в Lisp доступны всегда в рантайме
Таки да.
В общем и целом похоже на то, что кложа скорее лисп, чем не лисп — гомоиконность, макросы, всё как мы любим. Плюс эффективные неизменяемые структуры данных, человеческое concurrency, беспроблемный интероп с популярной платформой (несколькими платформами) с охреневающим охватом и огромными пользовательскими/девелоперскими сообществами.
Не просто лисп, а лисп с человеческим лицом %)
Исправление Nervous, :
Clojure это не Lisp.
Если что-то плавает, как утка, и крякает, как утка — вероятно, это таки да утка %)
Весь код программы Lisp находится в памяти.
А у кложи где — в астрале?
Гранулярность компиляции одна функция
Одна форма, да. В кложе, насколько мне известно, так и есть.
весь образ программы в памяти сохраняется на диск
Вот тут да, похоже на заметное отличие. Даже АОТ-скомпилированная в байткод кложа вряд ли сможет продолжить выполнение с той же точки, где оно закончилось в прошлый раз. В некоторых случаях может быть полезно, но вообще это палка о двух концах — воспроизводимости можно не ждать с таким подходом. Что я там наэвалил в прошлый раз? Кто знает. Если перекомпилирую полностью с исходников — заработает? Б-г ведает.
Для Lisp нет дебаггеров. Сам Lisp это дебаггер.
Ну, собственно, CIDER использует запущенный процесс кложи в хвост и в гриву — для навигации по коду, для поиска документации, для дебага. Без репла это всё не работает.
предлагая варианты перезапуска с этой точки
Да, conditions/restarts в кложе нет — то ли ограничения платформы, то ли нежелание Рича заморачиваться, когда уже есть исключения, которые лучше, чем ничего.
все символы в Lisp доступны всегда в рантайме
Таки да.
В общем и целом похоже на то, что кложа скорее лисп, чем не лисп — гомоиконность, макросы, всё как мы любим. Плюс эффективные неизменяемые структуры данных, человеческое concurrency, беспроблемный интероп с популярной платформой (несколькими платформами) с охреневающим охватом и огромными пользовательскими/девелоперскими сообществами.
Не просто лисп, а лисп с человеческим лицом %)
Исходная версия Nervous, :
Clojure это не Lisp.
Если что-то плавает, как утка, и крякает, как утка — вероятно, это таки да утка %)
Весь код программы Lisp находится в памяти.
А у кложи где — в астрале?
Гранулярность компиляции одна функция
Одна форма, да. В кложе, насколько мне известно, так и есть.
весь образ программы в памяти сохраняется на диск
Вот тут да, похоже на заметное отличие. Даже АОТ-скомпилированная в байткод кложа вряд ли сможет продолжить выполнение с той же точки, где оно закончилось в прошлый раз. В некоторых случаях может быть полезно, но вообще это палка о двух концах — воспроизводимости можно не ждать с таким подходом. Что я там наэвалил в прошлый раз? Кто знает. Если перекомпилирую полностью с исходников — заработает? Б-г ведает.
Для Lisp нет дебаггеров. Сам Lisp это дебаггер.
Ну, собственно, CIDER использует запущенный процесс кложи в хвост и в гриву — для навигации по коду, для поиска документации, для дебага. Без репла это всё не работает.
предлагая варианты перезапуска с этой точки
Да, conditions/restarts в кложе нет — то ли ограничения платформы, то ли нежелание Рича заморачиваться, когда уже есть исключения, которые лучше, чем ничего.
все символы в Lisp доступны всегда в рантайме
Таки да.
В общем и целом похоже на то, что кложа скорее лисп, чем не лисп — гомоиконность, макросы, всё как мы любим. Плюс неизменяемые структуры данных, человеческое concurrency, беспроблемный интероп с популярной платформой (несколькими платформами) с охреневающим охватом и огромными пользовательскими/девелоперскими сообществами.
Не просто лисп, а лисп с человеческим лицом %)