Сравнение Common LISP с Gambit Wrt их библиотечного доступа и систем объектов

StackOverflow https://stackoverflow.com/questions/4587918

Вопрос

Я довольно заинтригован схемой Gambit, в частности, его широким спектром поддерживаемых платформ и ее способностью размещать C -код прямо в источник вашей схемы, когда это необходимо. Тем не менее, это схема, в которой меньше «батареи включены» по сравнению с Common LISP. Некоторым людям нравится кодировать много вещей с нуля (он же энергичный бритья яковых), но не я!

Это подводит меня к двум моим вопросам, ориентированным на людей, которые использовали как гамбит, так и какой -то вкус Common Lisp:

1) Что эффективно имеет лучший доступ к библиотекам? Схема имеет меньше библиотек, чем обычный LISP. Тем не менее, схема Gambit имеет более плавный доступ к коду и библиотекам C/C ++, что намного превосходит библиотеки Common Lisp. По вашему мнению, перевешивает ли плавность FFI Gambit его отсутствие местных библиотек?

2) Как объектные системы схемы (например, Tiniclos, Meroon) сравниваются с Common Lisp? Если вы обнаружили, что им не хватает, какие функции вы больше всего пропустили? Наконец, насколько важна объектная система в LISP/схеме в первую очередь? Я слышал о целых компаниях, основанных на LISP (например, программном обеспечении ITA), которые вообще не обращаются. Действительно ли объекты не являются обязательными по LISP/Scheme? Я боюсь, что если у Гамбита нет хорошей объектной системы, я могу их скучать (мой фон программирования является чисто объектно-ориентированным).

Спасибо за помощь в начале преобразования из C ++/Python,

- Мэтт

PS: Кто -то с более чем 1500 Rep, не могли бы вы создать тег «Гамбит»? :) Спасибо, Джонас!

Это было полезно?

Решение

1) Я не использовал схему Gambit, поэтому я не могу сказать, насколько плавна интеграция C/C ++. Но все общие лиспы, которые я использовал, имеют полностью функциональный c ffi: s. Таким образом, доступность библиотек C такая же. Для интеграции требуется некоторая работа, но я предполагаю, что это так и со схемой Gambit. В конце концов, LISP и C - разные языки ..? Но, возможно, у вас другой опыт, я хотел бы узнать больше в этом случае.

Вас может быть заинтересован в QuickLisp, действительно хороший новый проект Common LISP - он очень легко устанавливает много качественных библиотек.

2) C ++ и Python предназначены для использования ООП и классов в качестве типичных средств инкапсуляции и структурирования данных. Клизке вообще не имеет этой амбиции. Вместо этого он предоставляет общие функции, которые могут быть специализированы для определенных типов аргументов - не обязательно классов. По сути, это позволяет ООП, но в общем виде ООП - это удобная особенность, а не что -то фундаментальное для достижения цели.

Я думаю, что Clos гораздо более хорошо разработан и гибкий, чем объектная модель C ++ - Tiniclos не должен отличаться в этом аспекте.

Другие советы

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

Гамбит, например, использует Снег Пакетная система, которая даст вам доступ к нескольким библиотекам поддержки.

Другие схемы проходят еще лучше, имея доступ к большей (или лучшей) поддержке библиотек. Оба ракетка (с Планета) и курица (с яйца) немедленно приходите на ум.

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

Что касается систем объектов схемы, я лично склонен предпочитаю куриную схему и взял на себя благоприятную пользу ура. Анкет Тем не менее, в Tiniclos нет абсолютно ничего плохого. Либо хорошо служили и не найдете ничего, чего не хватает. Хотя это последнее утверждение может быть больше связано с тем фактом, что я не склонен полагаться на множество объектных, ориентированных на схему. Обе системы в моем опыте, как правило, появляются, когда я хочу написать «протоколы», а затем иметь способ специализироваться на протоколе, если это имеет смысл.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top