Как стать автором
Обновить
33
0
vseloved @vseloved

Пользователь

Отправить сообщение
HTML и Java очень просто сравнить. Точнее, можно сравнить XML и Java. В XML закодированна логика работы Java-программы Ant, которую он интерпретирует. Таким образом XML — это декларативный язык предметной области, а Java может оказаться его интерпретатором. Так же само и SQL — это декларативный язык предметной области. Если мы напишем на Common Lisp реляционную СУБД, то Lisp будет для SQL играть ту же роль, что и Java для XML.

Common Lisp — это не ФЯП, не ООЯП, не императивный ЯП и т.д. Common Lisp — это мультипарадигменный динамический программируемый язык программирования с особым синтаксисом (префиксная нотация).
Хорошего кода на Lisp не бывает — это типа как «На английском красивых стихов не пишут». А какие у вас, кстати, критерии «хорошести» кода? ;)
Да нет никакой нереальной сложности — наоброт, гораздо проще держатьв голове правила разбора, потому что их на порядок меньше, чем у Algol-семейства языков. Дело привычки просто.

Что до Lisp'а как языка запросов, то Вы, возможно, спутали его тут с Prolog'ом. Lisp никогда для таких целей особо не использовался (хотя некоторые люди, возможно это делают).
Пару скриншотов то есть для примера. Если зайдете на сайты соотв. библиотек то увидите тестовые приложения. Как правило, они вас ничем не удивят — обычные скриншоты приложений на GTK или Cocoa :)

Вот еще для примера скриншотик LTK GUI, которое я «держал» в руках:
LTK screenshot
(в центре экрана)
Работать с ним было довольно просто.

Понятно, что это не навороченный вариант, а самый простенький. Но для разных целей нужны разные подходы. Для очень многих программ наиболее ценна возможность быстро и сразу посмотреть что-то на экране и интерактивно этим управлять.
Наверно, действительно не понял — это все от того, что в голове каша.
учитывая развитый FFI, обертки для C-библиотек делаются относительно просто. Кстати, для OpenGL есть еще и другие варианты: www.cliki.net/OpenGL%20Bindings
Спасибо, конечно. Впрочем, мы тут просто беседуем и искать, что бы такое новое сделать, вроде как, не собираемся: вполне хватает существующих вариантов. ;)
Верно, как и названный выше newLisp. А еще вы Wasp Lisp, Emacs Lisp и Visual Lisp ;)
Но это все довольно специализированные языки, созданные для целей скриптования. (И вряд ли их можно назвать современными, разве что, в некоторых случаях, экспериментальными). Такую же нишу, как я вижу, собирается занять и HomeLisp.
Т.е. Вы таки никогда не слышали про лексический диапазон (lexical scope) и про замыкания. Ну что ж, Вам виднее, конечно. Скажу лишь, что у всех современных Lisp'ов, к которым я отношу Common Lisp, Scheme и Clojure, лексическая область видимости является основной. Если Вас ненароком заинтересовало, почему это так, можете попробовать прочесть книгу Let over Lambda (в частности глава 2 letoverlambda.com/textmode.cl/guest/chap2.html, раздел Environments and extents). (Есть только в английском варианте. Впрочем, современных книг о Lisp'е на русском нет в природе. Разве что PCL перевели усилиями сообщества: lisper.ru/pcl/)
Да, у меня кстати HomeLisp вызвал ассоциации именно с newLisp. И, конечно, аналога не существует, я не спорю. Просто, в изначальном сообщении на этом аспекте как-то не акцентировалось внимание. Теперь понятнее. Не могу, впрочем, согласиться, что подобную среду нужно давать студентам. Им все-таки лучше бы что-то более стандартное: тот же Scheme, Smalltalk, Python или же Common Lisp, в конце концов. Чтобы они учились не только программки с ГУИ клепать, а и принципам code reuse, видели, что представляет из себя зрелая платформа. Не говоря уже о том, что студентов нужно учить заглядывать «под капот», что HomeLisp пока сделать не позволяет. В общем, это в какой-то степени квинтессенция WIndows-платформы. Но, поскольку автор не видит в ней никаких недостатков, понятно, что он не увидит их и в своем продукте.
> Невнимательно вы читали документацию: макросы в HomeLisp есть. А что вы понимаете под «лексическим диапазоном»?
Честно говоря, снова прошелся по документации и макросов не нашел. Конечно, внимательно я ее не читал, поскольку вопрос интерфейса с COM-объектами ВИнлоус меня сейчас мало интересует.
А про лексический диапазон почитайте тут: lisper.ru/articles/cl-vars

> О претензиях
Дискуссия идет в публичном сообществе: мои замечания направлены ко всем, а не Вам лично. К Вам у меня был один вопрос (раз уж Вы решились написать сюда что-то, будьте готовы услышать разные вопросы), ответ на него я более-менее получил.
Да, согласен теперь понятнее и в смысле ответа на мой вопрос: вы хотели создать Lisp для скриптования Windows платформы. Возможно, это действительно кому-то будет нужно, не спорю.
Так ведь весь мир программирования построен из отдельных библиотек. Это же реализация принципа модульности. Не может одна программа уметь все (как и один человек сам управлять целой страной ;) Естественно, что в LispWorks PE нет очень много чего. Тем не менее, поскольку компилятор реализует стандарт Common Lisp, то можно задействовать одну из многих библиотек для Common Lisp. Для работы с графикой:
* CL-QT4, CL-GTK2, LTK, Celltk, McCLIM (не говоря о том, что в профессиональной версии есть собственный релактор графики CAPI)
* для двоичного доступа к файлам используются элементы стандартной библиотеки: www.lispworks.com/documentation/HyperSpec/Body/c_stream.htm
* что до COM, не знаю, есть ли библиотека работы с этим в Lisp-мире. Впрочем, в том то и преимущество библиотек, что не нужно писать целую среду, чтобы реализовать эту кокретную задачу: пишите библиотеку
* для работы с БД: CLSQL, Postmodern, CL-MSSQL,…
* и так со всем

Вы сделали относительно легкими создание оконных приложений под Windows или доступ к реестру. А как на счет других задач, которые могут оказаться не менее актуальными для кого-то: например, синхронизация многопоточных приложений, или работа с архивами BZIP2, или же интерфейса с СУБД Oracle? Как это можно сделать в рамках HomeLisp?
Про IDE уже ниже написали. Что меня удивляет, так это то, что Вы как предподаватель программирования не понимаете (или не разделяете) базовой концепции «платформа-приложение». Вы говорите об интегрированной среде, но это актуально для конечных пользователей. А для программистов нужна платформа, на которой они будут сторить свои приложения. А платформы всегда многоуровневые: Ваш HomeLisp — это платформа, под которой другая платформа — Windows, под которой другая платформа — x86. Так же само и Tcl/Tk — это платформа. В данном случае важно то, что это платформа широко распространенная и зрелая. Если вместо Tcl/Tk был бы какой-то маргинальный язык/библиотека — еще можно было бы понять претензии, а так…

Ну а что до критики про «зачем это написано?». В ее основании то, что вы реализовываете не один из считающихся в той или иной степени адекватными сегодняшним реалиям стандартов Lisp (как то Common Lisp, Scheme R5RS, R6RS), а то, что было 30-40 лет назад. А за это время было сделано много интересных открытий и улучшений. Начать хотя бы с лексического диапазона. Пробежавшись по документации, я так понял, что у вас его нет. А ведь это основа-основ того, что делает Lisp важным сейчас. Макросы… (В общем, перечислять придется долго)

Проблема тут в том, что вы хотите этому учить своих студентов. И это будет, к сожалению, мисрепрезентация Lisp'а для них: они обоснованно согласятся с мнением, что Lisp — это устаревший язык, интересный только фанатикам (когда сравнят с современными динамическими языками, типа Python/Ruby).

Если Вам не хватало интеграции Lisp с Windows, вы вполне могли бы расширить какую-то из уже имеющихся open-source реализаций или же написать свою реализацию того или иного современного стандарта. Никто бы Вам не предъявлял тогда претензий, а наборот только хвалил бы.
сам не могу сказать, поскольку давно не имел дело, но подозреваю, что этот человек вам бы сказал по-другому: love5an.livejournal.com/335920.html
если сообщение запощено в сообщество, где люди в первую очередь общаются, то, наверно, стоит ожидать критики. Работают в других местах. Свою мотивацию я, кстати, изложил в предыдущем сообщении. Ответа, кстати, так и не получил… )
SBCL портирован под Windows
да, это, конечно, серьезный недостаток :)
Вы первую ссылку смотрели? там исходный код некоторых библиотек, написанных на Common Lisp.
Ну а так, разрабатываю приложения. В основном, на Common Lisp.
кстати говоря, вот еще одно, очень простое (доступное даже первокурснику :), кросс-платформенное Lisp IDE: common-lisp.net/project/able/

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность