4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
1 | |
Оконные приложения для Лисп20.07.2016, 21:17. Показов 4590. Ответов 83
Всем доброго времени суток!
Увлекаюсь Лиспом, пишу на стареньком LisBox. Сам язык программирования просто божественный, но отсутствие как такового графического интерфейса вроде WindowForm сильно огорчает (варианты с LispWorks и AllegroCL отпали из-за дороговизны первого и убогости второго). Отчаянно пытался подключить GTK3, но так и не получилось, нормального описания для Tcl не нашёл, да и он то же криво работает. Может кто-нибудь помочь и пошагово описать, как надо установить GTK или Tcl, чтобы всё работало! Если для этого надо перейти на другую версию Лиспа, то не вопрос - давно смотрю в сторону SBCL. Да и хоть какой-нибудь адекватный мануал так же будет не лишним. У самого у меня есть идея как связать WindowForm с Лисповым кодом, но не смог найти функции в Лиспе, которая по аналогии с С++ указывала бы на адрес ячейки памяти, в которой хранится значение переменной. Может кто знает? За помощь буду безгранично признателен!
0
|
20.07.2016, 21:17 | |
Ответы с готовыми решениями:
83
uLisp: лисп для микроконтроллеров Циклы в лисп для построения геометрии Создание Exe файла для Лисп Для тех кто делает оконные приложения в Builder C++ Borland |
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
31.07.2016, 20:19 | 21 |
@budden, давай ты все таки будешь думать над тем кому, на что и что отвечаешь Я же не просто так говорю про CFFI. FFI когда передает указатель в C-шную функцию прикрепляет к нему трамплин способный найти "плавающий" лисповый объект.
1
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
31.07.2016, 20:48 | 22 |
Если ты столь крут, писал бы свои регалии в профиле Я подумал, что ты ошибся, но обидеть тебя цели не было.
1
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
31.07.2016, 22:25 [ТС] | 23 |
На счёт tcl/Tk очень многие высказывают недоумение: делал толковый человек, а получилось г... И просвета в нём не видно! Мне судить особо не с чего - у меня он заработал на sbcl, но это больше на случайность похоже, а после прочтения кода для "hello world" желание само отскочило. Так что эта пьеса окончена. А вот HomeLisp, который мне посоветовал Уважаемый Catstail, очень даже хорош. Есть, к сожалению, и в нём косяки (хотя, может ещё не до конца разобрался!), но он явно лучше tcl/Tk с CFFI и AllegroCL вместе взятых (о последнем как вспомню, аж мозг сводит, бррр...). Так что буду работать в направлении HomeLisp, а там видно будет
1
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
31.07.2016, 22:45 | 24 |
Те ли эти многие, которых стит слушать? Это я как человек использовавший Tk на практике говорю. Но кому что.
0
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
31.07.2016, 23:06 [ТС] | 25 |
Спорить не буду - сам не использовал, лишь видел! Если у Вас есть время, пройдитесь по ссылке на HomeLisp от Catstail и сравните с tcl/Tk, если последний таки будет лучше, то не откажусь и с ним поработать! И буду благодарен за посильную помощь
0
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
31.07.2016, 23:24 | 26 |
Corman прямой аналог и сильно более продвинутый. Если хочется чего-то такого win-ориентированого. Tk я брал за переносимость. HomeLisp не поностью CL и в таком виде мне совсем не пойдет. Если хочется совсем лучшего то CommonQt упомянутый выше. Shinmera много сделал для его вездешней работы и громко ругается когда вместо того что бы сообщить ему о насущных проблемах начинают говорить о них на "левых" форумах
0
|
4527 / 3521 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
31.07.2016, 23:47 | 27 |
В этой теме нельзя не упомянуть McCLIM. Упомянул.
0
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
31.07.2016, 23:54 | 28 |
Из него в процессе осовременивания выкинули win32-подсистему. А clx ТС не переживет наверное.
0
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
01.08.2016, 22:59 [ТС] | 29 |
Corman Лисп я уже пробовал - на мой взгляд, тот же Alegro, только исполнение другое. После LispBox, хоть он и старенький, такие проги только разочаровывают - заместо создания кучи нового лучше бы доработали хорошее старое! А вот HomeLisp всё больше и больше нравится, да и мануал по нему адекватный. Ещё раз большое спасибо Catstail
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
01.08.2016, 23:09 | 30 |
Можно и без ссылок. ПЛатформа - у HomeLisp Это только Windows, у tcl/tk это Windows, Linux, Mac, Android как минимум.
Лицензия - у HomeLisp Приложения - на tcl/tk их гораздо больше. Из профессиональных - например, ANSYS использует tcl/tk (или раньше использовал). Т.е. тут нечего сравнивать. А для привязки Lisp к tcl Нужно просто выучить Tcl и пользоваться технологией client-server. Так проще всего, поверьте, хотя это так не кажется. Потому что "обёртки" и "обвязки" - это лишние сущности. Они как бы изолируют вас от необходимости знания Tcl/tk, но ровно до первой проблемы. Кроме того обёртки и обвязки всегда покрывают только часть обвязываемого языка, т.е. вы теряете в возможностях. Добавлено через 1 минуту С CommonQt я бы тоже не стал радоваться раньше времени. Qt нестабилен (меняется и как только вы приладитесь к каокй-то версии, её объявят устаревшей), и его лицензия имеет серьёзные ограничения.
0
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
01.08.2016, 23:16 [ТС] | 31 |
Я бы и рад "выучить", да вот книги вроде PCL по Tcl/tk нету и не предвидится... Может это и странно, но после Лиспа я стал учить Visual C++, причём трижды садился за это дело...и все три раза убился - С++, лично для меня, убожество, мой мозг его не переваривает! Без, даже не хорошего, а отличного мануала, вроде PCL и ANSI CL, или гуру-наставника в Tcl/tk я не полезу - только время тратить! Если Вы можете мне помочь, на пальцах объяснить Tcl/tk, то я возьмусь, а так - HomeLisp для меня лучшее решение!
0
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
02.08.2016, 00:58 | 32 |
Qt может и можно по каким-то причинам обвинить в нестабильности. Но CommonQt и идущие к нему комплектом qt-libs имени Shinmera намертво привязаны к последней замороженной версии qt4. Там как-раз все заморожено до монументального состояния. Он в этом смысле удобнее Tk. QuickLisp сам скачает и разложит все потребное для работы . А вот Tk надо cтавить отдельно. У новичков могут быть вопросы.
Добавлено через 4 минуты Например? Обычный lgpl. Adobе например использовала gtk под той же лицензией, для своего Acrobat'pdf'а gjl линуксом. Обычного человека такая лицензия и вовсе не должна ничем стеснять.
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
02.08.2016, 11:12 | 33 |
Да, я не совсем прав. Там где-то GPL, а где-то LGPL, см. сюда. Есть мнение, что в случае лиспа LGPL из любой библиотеки заражает образ, который собирается с помощью save-image и это может иметь последствия для исходников, которые включены в этот образ. Поэтому я не включаю никакой *GPL в свою среду.
Далее. Абсолютно всё, что можно делать в tcl/tk, можно делать и в моём приложении. Насколько полно CommonQt покрывает возможности Qt? Далее, "To enable the reader macro, use (named-readtables:in-readtable :qt) at the top of your file." Для начинающего это нелегко, поскольку SLIME (если мои сведения не устарели) до сих пор не умеет нормально работать с именованными таблицами чтения, нужно шаманить. Я год назад пытался туда отправить патч, но дело заглохло - это никому не нужно. Поэтому я сделал форк SLIME и включил его в свою среду. У меня с таблицами чтения порядок теперь. Далее, насчёт того, что Quicklisp сам всё скачает - это не более, чем красивая легенда. Вот список требований под Windows: Моё приложение устанавливается так: скачал архив, распаковал и можно запускать. tcl/tk отдельно устанавливать _не_надо_. Для Linux я пока не могу похвастаться простой процедурой установки, но в принципе для этого есть Snap и Appimage. Может быть, из них сделаем когда-нибудь, а пока готовим LiveCd с линуксом, где всё уже установлено и настроено. Добавлено через 2 минуты "Практическое программирование на Tcl и Tk" и есть ещё одна книжка на Русском языке (название забыл).
0
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
02.08.2016, 13:32 | 34 |
@budden, меня можно назвать злым и неполиткорректным. Но я вот пишу страницу текста не для того что бы кому-то помочь, а для того поправить твои домыслы от незнания матчасти. По которой ты даешь советы. По Qt, которую ты не будешь использовать по принципиальным соображеням. И меня это печалит.
. Если читать по ссылке и далее, то там сказано что под GPL отдельные модули и с++ -ная среда разработки QtCreator. Вот это все - это то что не нужно СommonQt и лиспу для работы и не будет даже скачено. А все что нужно под LGPL. Добавлено через 9 минут Я там выше говорил еще и про qt-libs. Это бибилиотека в QuickLisp-е которая делает "3 пункта" в автоматическом режиме. А то что ты цитируешь это для желающих проделать это вручную. Добавлено через 6 минут CommonQt в отличае от Tk не сможет подгружать внешние бибилиотеки отличные от базовых. Хотя это мало кого должно волновать. Добавлено через 4 минуты Мой Slimv и его swank их умеют. Раз уж пошла такая тема посмотрю и slime для премет работоспосбности, на днях. Добавлено через 10 минут Я когда говорил о необходимости установки, имел ввиду обычные библиотеки вроде LTK.
1
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
02.08.2016, 14:49 | 35 |
Charts под GPL, например. Графики не нужны лисперам? И я не знаю, что такое "обычный человек".
Да, тут я был неправ. Невнимательно прочитал. Про лицензию я не смотрел. Заражение возможно, только если под LGPL лисповый код. Год назад в SWANK/SLIME нужно было сделать запись в *readtable-alist*, но он мог заполниться и сам. Логика там кривая и работает только в случае, если для каждого пакета ты всегда используешь одну и ту же таблицу чтения. Чтобы увидеть, какая таблица чтения привязана к твоему пакету, нужно прочитать переменную. На экране это не написано. В моём приложении ничего не надо устанавливать. Скачал, распаковал, работай. Тем не менее, у меня были проблемы и мне пришлось менять код своего приложения, чтобы понизить требования к версии tcl/tk и избежать переустановки линукса, то ли у меня, то ли у кого-то, кто решился попробовать мою среду. Т.е. я должен был терять своё время непонятно на что. И ты не сможешь мне доказать, что я потратил его не зря. Линукс по своей архитектуре затрудняет наличие нескольких версий одного и того же. Это выбор, который всем навязывается. У него есть плюсы, но это лишь выбор, а не что-то однозначное. AppImage и Snap позволяют в конкретных случаях сделать другой выбор. Ты имеешь право считать их ненужными, но это не означает незнание мной матчасти Нет, вопрос не в этом. Вопрос в том: если я что-то в Qt могу написать на C++, могу ли я то же самое написать на лиспе с помощью CommonQt? Добавлено через 8 минут Установка у меня затруднена по причине наличия модифицированных версий многих библиотек.
0
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
|
02.08.2016, 15:31 | 36 |
Реальный продакщен, лет 5 назад. Сохраненый, исполняемый образ sbcl - 1 штука. Качстомный tclkit с несистемным Tk упакованый вместе с сопутствующими библиотеками в один файл - 1 штука. Итого по 2 файла на win/linux-all в одном каталоге. мне надо себе и тебе что-то доказывать?
Добавлено через 9 минут Правильно установленые PATH и LD_LIBRARY_PATH позволяют правильно использовать ахитектуру линукса без вреда для здоровья Добавлено через 3 минуты Да. Добавлено через 6 минут Многие узнали о существовании этого модуля исключительно из новости. А до этого о нужности им лично графиков не задумывалсь. Это вот мера нужности. Конкретно лисперам об этом можно сразу и забыть, посколку в СommonQt его подключение без напильника не предусмотрено. Это вот те небазовые библиотеки которые в отличае от Tk пока нельзя Добавлено через 7 минут Вот как ты себе представляешь заражение именно LGPL? Особенно в CL. Для меня это как оксюморон. Даже если отдельные функции в свои пакеты перекладывать, то все равно LGPL будет соблюдатся покуда в них не запутался
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
02.08.2016, 16:24 | 37 |
Я один раз в жизни работал профессионально (т.е. за деньги) с Qt и графики там были как раз нужны. Но не помню, использовались ли там графики из Qt или самописные (это было довольно двано). Сейчас у них самописные.
tclkit я рассматривал. Он хуже, поскольку это частное решение (только для tcltk). Это не моё мнение, это кто-то на лиспере написал в ответ на мой вопрос. Происходит в момент создания образа, когда программа как бы линкуется. Дальше я не вникал. Возможно. Вопрос в количестве пунктов в процедуре установки. Но мы ещё не все вопросы рассмотрели. Допустим, у меня есть пример на С++ для Qt. Чтобы перевести его на COmmon Qt, я должен именно его взять и перевести (либо часть программы у меня будет на С++, что не всякий одобрит). Если у меня есть пример на tcl/tk и я иду по технологии клиент/сервер, то мне надо только скопипастить пример. Далее, что происходит, если я написал свой код на Common Qt с ошибкой? Исключены ли полностью все те ужасы, которые всегда сопровождают программирование на C/C++? Если я упал в дебаггер в обработчике события (как оно там, в обработчике сигнала), написанном на лиспе, я увижу ли стек?
0
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
03.08.2016, 23:11 [ТС] | 38 |
Без обиняков, Вы тут так много написали, а внятного решения или помощи нет! Вот я , умею программировать на лисп, но ничего не смыслю в Common Qt и tcl/tk - помогите мне, новичку в этом деле, хотя бы правильно установить программу, чтобы она элементарно работала. Помощь нужна с нуля, а не "догадайся сам" (иначе бы и тему не создавал...)
0
|
199 / 102 / 4
Регистрация: 16.08.2015
Сообщений: 209
|
|
04.08.2016, 11:20 | 39 |
Хочешь учить tcl/tk? Да/Нет
0
|
4 / 4 / 0
Регистрация: 20.07.2016
Сообщений: 59
|
|
05.08.2016, 20:48 [ТС] | 40 |
Да, если будешь учить!
Добавлено через 22 часа 22 минуты И где все учителя?!
0
|
05.08.2016, 20:48 | |
05.08.2016, 20:48 | |
Помогаю со студенческими работами здесь
40
Для тех кто делает оконные приложения в Builder C++ Borland Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше? Оконные приложения Оконные приложения на C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |