Спасибо, теперь поехало! В принципе, хотелось бы в таком же духе и по другим животрепещущим вопросам. Ну да ладно, попробую пока так поковыряться. Глядишь, и освоюсь...
Ну можешь тогда еще на clg взглянуть. Сам я не пробовал. Мне пока морды нужны во вторую очередь. lambda-gtk -- это фактически 1:1 биндинг к GTK. А вот clg умеет xml файлы Glade жрать. А это означает, что ты можешь морды накидать в Glade, потом сохранить в xml. и Lisp их сожрет. :) То есть в теории решение более продвинутое для интерфейсов на GTK.
> А это означает, что ты можешь морды накидать в Glade, потом сохранить в xml. и Lisp их сожрет. :) То есть в теории решение более продвинутое для интерфейсов на GTK.
А мне всегда казалось, что XML - это костыль для недоязыков типа жабы. :) А родные S-выражения тогда на что?
Потом также распаковываешь в ~/sbcl, делаешь линк на ltk.asd в ~/.sbcl/systems и запускаешь (require 'ltk). Все в миг скомпилится (весь биндинг -- один файл). И запускаешь примерчики (ltk::ltk-eyes) и (ltk::ltktest). Второй понавароченнее. Там колесо крутится. :))
Причем LTK можешь и в CLISP попробовать. Работает изумительно. (если только от LTK не тошнит. Меня -- нет :)
>Если грамотно завернуть, то код стройнее получается. По крайней мере, компоненты легче видны.
Точно. Грамотный лиспер-энтузиаст пишет свой DSL для описания интерфейсов. Высокоуровневый. А еще в этом DSL можно использовать всю мощь LISP, потому что этот DSL тоже будет LISPом. И никаких там, понимаешь, Глэйдов. Чего там нам Глэйд даст? статиченскую картинку с названиями и свойствами объектов? А тут тебе и описание морды (можно спереть у Глэйд формат, но только в виде s-выражений сделать нормальных, и как, и что происходит при нажатии, клацании мыкой, клавиатурой. И тебе тут и макры, и функции. Это и называется -- грамотно завернуть :) Чтобы потом красиво разворачиволось непосредственно в GTK. :)
> Насчет статической типизации - аминь, а Ocaml - он еще маргинальнее Лиспа.
Tailgunner, никак не могу понять как ты можешь совмещать в себе любовь к статической типизации и Питону одновременно? Для меня это загадка посильнее будет чем лисперы :-)
Если тебе _так_ нужна статичемкая типизация и ты прёшься от Питона, то тебе сюда: http://boo.codehaus.org/
Хелло ворлд на Boo:
print 'Hello, world!'
На нём можно написать достаточно большую программу и на первый взгляд может показаться что это Питон, но на самом деле это язык с сильной статической типизацией для .NET. Пашет на Mono, в портаже есть.
> как ты можешь совмещать в себе любовь к статической типизации и Питону одновременно?
Я люблю Питон не за его динамизм (который иногда очень полезен), а за мощные, но при этом удобные средства работы с данными - списки, итерацию. Вообще, Питон - это уникальная комбинация мощности и простоты использования. Но, ИМХО, динамическая типизация здесь большой роли не играет.
Вот вопрос: как ты проведешь рефакторинг большой проги на Питоне? Переименованы классы, добавлены/удалены поля, измемены сигнатуры методов. На Си/Си++ делается рекомпиляция, и компилятор сам показывает, где несовпадения. На Питоне придется искать самому, и не факт, что всё найдешь. Остается полагаться на тесты, но 100% test coverage не бывает.
Кстати, здесь проскакивали интересные ссылки на работу по type inference для Питона: Starkiller и Aggressive Type Inference.
Я бы не сказал, что я прусь. Некоторые вещи в нем меня сильно раздражают - например, отсуствие try-except-finally (наконец-то добавили в 2.5, знаю), отсуствие многострочной лямюды, или то, что неотделим от огромной библиотеки ("поставляется с батарейками" - а они не всегда нужны). Но по совокупности возможностей Питон - лучшее в своем классе.
Ты уже гооврил :) Я зашел по ссылке - совершенно не впечатлился. Это на Питон похоже только отдаленно, пользует .NET, и, похоже, оффтопик-ориентироано. А мне нужно "real thing", под линух, и легкая интеграция с native-кодом (да, и заверните мне Numeric Python и Matplotlib). Boo - игрушка для энтузиастов (так же, как Лиспы ;)). Если я захочу поиграть в такие игры, буду играть с PyPy, или Haskell/Ocaml.
> Насчет статической типизации - аминь, а Ocaml - он еще маргинальнее Лиспа.
Фигасе. Язык, позволяющий быструю и эффективную разработку и результат сравнимый по скорости исполнения с хорошо написанным руками С, называется маргинальным?
А если речь о распространенности, что гроша выеденного не стоит шкала "маргинальный" -- "немаргинальный".
> гроша выеденного не стоит шкала "маргинальный" -- "немаргинальный".
Распространенность => это широкий выбор инструментов и их хорошая отлаженность. И можно сколько угодно говорить о "быстрой и эффективной разработке", "результат сравнимы с написанным руками Си", но закон Райзера никто не отменял. Не говоря уже о том, что в случае проблем - спросить не у кого (потому что почти все - хоббисты), нет литературы/документации в Сети... это всё и есть маргинальность. Для _тебя_ это может не стоить и гроша, а для меня это важно.
> Вот вопрос: как ты проведешь рефакторинг большой проги на Питоне? Переименованы классы, добавлены/удалены поля, измемены сигнатуры методов. Остается полагаться на тесты, но 100% test coverage не бывает.
Ты прав, это проблема. Это надо делать аккуратнее чем на языке со статической типизацией. Но это вообще проблема не только динамической типизации но и позднего связывания, даже в зяыках со статической типизацией.
Ещё pychecker / pylint могут помочь. И стремиться к 100% test coverage
> Но это вообще проблема не только динамической типизации но и позднего связывания, даже в зяыках со статической типизацией.
Там она стоит отнюдь не так остро - поэтому я бы убил ради статически типизированного Питона :)
> Ещё pychecker / pylint могут помочь.
pylint - вещь, ИМХО, бесполезная. pychecker - да, помогает, но мало.
> Dylan
В отличие от Boo, Dylan мне активно не понравился. Вообще, такое впечатление, что значительная часть language designer'ов просто недовыпендривались в детстве, и компенсируют это в разрабатываемых языках.
>> Если я захочу поиграть в такие игры, буду играть с PyPy, или Haskell/Ocaml.
> Да Haskell это круто, а он динамически библиотеки загружать научился?
Ты как будто писать на нем собрался ;) Если "на поиграть" - то пох динамические библиотеки :)
> Язык, позволяющий быструю и эффективную разработку и результат сравнимый по скорости исполнения с хорошо написанным руками С, называется маргинальным?
а только такой и называецо. Понятие "маргинальный язык" вообще появилось одновременно с недоацтоем вроде делфей и висуалвасика, потому что это понятие срочно понадобилось для пересадки разработчиков на недоацтои, а размных аргументов никаки не нашлось.
> в случае проблем - спросить не у кого (потому что почти все - хоббисты), нет литературы/документации в Сети...
В случае с лиспом всево этово ну просто завались. Во всяком случае больше чем с например тем же питоном. Да и самостоятельно разобраться проще, ибо всё не такое извращённое.
>Понятие "маргинальный язык" вообще появилось одновременно с недоацтоем вроде делфей и висуалвасика
Ты определись - с Делфями и Визивасиком? Они в разное время появились. Впрочем, ты этого не помнишь.
> для пересадки разработчиков на недоацтои, а размных аргументов никаки не нашлось.
"Пересадки", я плакал. Марш историю учить! 1) И Дельфи, и Визивасик были существенным шагом вперед по сравнению с предшественниками - TurboPascal и QuickBasic 2) лисперы и прочие знатоки "неацтойных" языков были в дефиците, и высокомерно плевали на рынок PC.
Delphi - достойная и удачная система. То, что ее использовали стада быдлокодеров - это не ее вина.
Это закон такой. Программисты знают, а остальным не нужно.
>> в случае проблем - спросить не у кого (потому что почти все - хоббисты), нет литературы/документации в Сети...
> В случае с лиспом всево этово ну просто завались.
Чего "этого"? Литературы - да, за 50 лет накопилось. Спросить? Ни фига, все либо хоббисты, либо с таким самомнением, что лучше бы и не отвечали. Мои слова о распространенности ты просто проигнорировал - а ведь из этого почти всё остальное и вытекает.
> Да и самостоятельно разобраться проще, ибо всё не такое извращённое.
Если спросить 10 случайно выбранных программистов, не знакомых ни с Лиспом, ни с Питоном, что им понятнее - текст на Лиспе или на Питоне, все 10 скажут - на Питоне. Но ты-то знаешь, что они все извращенцы...
> Delphi - достойная и удачная система. То, что ее использовали стада быдлокодеров - это не ее вина.
Быдлокодер пишуший на delphi останется быдлокодером. В отличие от. Уже за это создателей делфи должно судить в Нюрнберге за преступления против человечества.
> Быдлокодер пишуший на delphi останется быдлокодером. В отличие от. Уже за это создателей делфи должно
За то, что он не делает из быдлокодера - суперкодера? За это же нужно судить создателей Си, Паскаля, SQL и т.д. Да и создателей Лиспа - тоже. В общем, "всех убью - один останусь".
Или быдлкодер, вынужденный писать на Лисп, волшебным образом совершенствуется? "Не верю" (C) Станиславский.
> Ты определись - с Делфями и Визивасиком? Они в разное время появились. Впрочем, ты этого не помнишь.
Да примерно в одинаковое, в конце 9х дето. Действительно худо помню, не особо мя этот вопрос волнует.
> "Пересадки", я плакал. Марш историю учить! 1) И Дельфи, и Визивасик были существенным шагом вперед по сравнению с предшественниками - TurboPascal и QuickBasic 2) лисперы и прочие знатоки "неацтойных" языков были в дефиците, и высокомерно плевали на рынок PC.
вобщето тогда можно было свободно на сях работат, чё я и делал. По сравнению с сями эти во всех отношениях, как в быдлопесне поёцо "Стоша Говнозад тихо на пальцах...". А для лиспа и прочих аппаратура писихек слабовата была и тормоза немеряные, отчево и плювали, всёодно бесполезно.
> Delphi - достойная и удачная система. То, что ее использовали стада быдлокодеров - это не ее вина.
> Это закон такой. Программисты знают, а остальным не нужно.
чё тада умоминаеш если те всёодно ненужный?
> Спросить? Ни фига, все либо хоббисты, либо с таким самомнением, что лучше бы и не отвечали
давай ссылу в студию, де ты спрашивал а там лучебы не отвечяли
> распространенности
пох распространёнось. Пять годов тому про дотнениненадо никто и не знал, а щяс если не распространёный, то по крайней мере многие знают чё такое бывает хотябы. Хотя он во всех отношениях хуже не то што лиспа но даже висуалвасика.
> Если спросить 10 случайно выбранных программистов, не знакомых ни с Лиспом, ни с Питоном, что им понятнее - текст на Лиспе или на Питоне, все 10 скажут - на Питоне. Но ты-то знаешь, что они все извращенцы...
А если просить 10 случяйно выбратых бомжей, не знакомых ни с лиспом ни с питоном, все 10 скажут - нам пох. Ичё?
> Что, каждый лиспер - свой DSL? Какое разбазаривание умственной энергии.
Скорее не "каждый лиспер - свой DSL" а "каждый лиспер в каждой задаче - свой DSL (если он там к месту)" :) "Лучше день потерять, потом за час долететь". Ну ты же пишешь кучу функций в любом проекте на других языках. Это практически тоже самое, только пользоваться проще :)
> В отличие от Boo, Dylan мне активно не понравился. Вообще, такое впечатление, что значительная часть language designer'ов просто недовыпендривались в детстве, и компенсируют это в разрабатываемых языках.
У Грэма об этом хорошо сказано. Смысл в том что учёным надо писать статьи, а ситема типов языка программирования, это благодатная область.
Соответственно про язык с динамической типизацией, столько статей не напишешь, вот и плодятся всякие академические языки со статической типизацией, вместо того чтобы доделать один до юзабельного состояния или заниматься JIT в динамических языках.
Что для тебя важно? Программист 1С может поднимать неплохие деньги. Сравнимые, видимо, с получаемыми мной. Но это не делает 1С пристойным занятием с моей точки зрения.
Один раз попробовал - не получилось. Чтобы попробовать второй раз, мне нужны веские причины. Я работаю над их сбором (в том числе - в этом треде), но пока не густо...
> вот и плодятся всякие академические языки со статической типизацией
Пусть плодятся. Это же исследования - они не обязаны приносить немедленную практическую пользу. Вдруг додумаются, как доказывать правильность хоть умеренно сложных фрагментов программ - уже большое подспорье.
> вместо того чтобы доделать один до юзабельного состояния
Это не задача исследователей
> или заниматься JIT в динамических языках.
Тоже не их задача. И вообще - JIT в принципе менее мощен, чем статическая компиляция. Не зря разработчик Psyco сейчас в команде PyPy.
А JIT'ы плодят как раз корпорации и вольные прогеры - Java (несколько вариантов), .NET (и Mono), Psyco, Parrot.
> Один раз попробовал - не получилось. Чтобы попробовать второй раз, мне нужны веские причины. Я работаю над их сбором (в том числе - в этом треде), но пока не густо...
Зыть: вспомнил дурацкое определние рекурсии: "чтобы понять рекурсию нужно понять рекурсию" :) Так вот, чтобы понять, зачем тебе изучать лисп, нужно понять, что это такое. Для этого надо изучить лисп :)
> Тоже не их задача. И вообще - JIT в принципе менее мощен, чем статическая компиляция. Не зря разработчик Psyco сейчас в команде PyPy.
А нифига, JIT может давать больше ускорения чем статическая компиляция, т.к. во время рантайма есть больше информации о программе чем во время компиляции. И в доке к psyco примерно такая телега и прогоняется.
Это конечно, не снимает проблемы со статической проверкой типов, но тоже юмор.
>> Ты определись - с Делфями и Визивасиком? Они в разное время появились. Впрочем, ты этого не помнишь.
>Да примерно в одинаковое, в конце 9х дето.
Ага, 31-го декабря 1999 года 8/ Для справки: VB 1.0 - 1991, VB 2.0 - 1992, Delphi - 1994.
> вобщето тогда можно было свободно на сях работат, чё я и делал.
Естественным путем миграции с TurboPascal был Delphi, с QuickBasic и dBASE-клонов - VB. Кроме того, ни в одном из Си не было такого мощного и удобного в использовании инструментария работы с компонентами, как в Delphi и VB.
> По сравнению с сями эти во всех отношениях, как в быдлопесне поёцо
Быдлопесен не слушаю, поэтому твою мысль не понял
> А для лиспа и прочих аппаратура писихек слабовата была и тормоза немеряные, отчево и плювали, всёодно бесполезно.
Какая чушь. 486-е, появившиеся в 1989, и Пентиумы, появившиеся в 1992, были всяко мощнее процессоров VAX и 680[023]0 рабочих станций, на которых разрабатывался Common Lisp. Так что - не надо о слабости аппаратуры. Рынок _просрали_. Конечно, не рядовые лисперы в этом виноваты, но это не меняет факта.
>> Delphi - достойная и удачная система. То, что ее использовали стада быдлокодеров - это не ее вина.
> бугога. Чё же в ей удачново?
Мощный и простой в использовании конструктор интерфейсов. Неплохой язык программирования.
>> Спросить? Ни фига, все либо хоббисты, либо с таким самомнением, что лучше бы и не отвечали
>давай ссылу в студию, де ты спрашивал а там лучебы не отвечяли
Ты хоббист ;) (не хотел тебя задеть, извини). Но "всё-таки нужно но сложно переучивацо с алгоритмического стиля мышления на более абстрактный" звучит высокомерно, нет?
>> распространенности
> пох распространёнось. Пять годов тому про дотнениненадо никто и не знал, а щяс если не распространёный, то по крайней мере многие знают чё такое бывает хотябы. Хотя он во всех отношениях хуже не то што лиспа но даже висуалвасика.
И что? Для него уже до чертиков инструментов. Кроме того, я имел в виду системы с открытыми исходниками.
Кстати, какой именно из уймы языков .NET хуже Визивасика? F# ? 8)
> А если просить 10 случяйно выбратых бомжей, не знакомых ни с лиспом ни с питоном, все 10 скажут - нам пох.
Что-то тебя в сторону уносит - Whitespace, бомжи...
Ну фих их знаит, я имел в виду более-менее извесны стали к концу 90х.
> Естественным путем миграции с TurboPascal был Delphi
ну хтож вас туды загнал, в трупопаскаль-то? Я на 286х на ём работал потомушто компилер намного более производительный был. Ифсио. На 386х уже смысла не было с им связывацо, там и ся были и ся++.
> Какая чушь. 486-е, появившиеся в 1989, и Пентиумы, появившиеся в 1992, были всяко мощнее процессоров VAX и 680[023]0 рабочих станций, на которых разрабатывался Common Lisp.
вот только вах тянул кучю юзверей, а 286 макимум как печятная машинка годилась. При появлении 486х и пентиумов туда резво перескочили недоподелия с доса, а полноценных систем и средств, соотвецтвующих моще просто не успели сготовить - место ужо занято. И это тянецо ещё до сих пор: хотя виндовсь ниасиливает всех возможностей сёдняшнего железа, выгонять ево ещё долго будут.
> Рынок _просрали_
аха :( Вот только не из-за конкурентоспособного, а как раз методами давления на моск, как я и говорил о появлении типо понятия "маргинальный"
> Мощный и простой в использовании конструктор интерфейсов.
чем лучше того же борландовского owl?
> Неплохой язык программирования.
Чем лучше тех же сей с плюсами?
>>> Спросить? Ни фига, все либо хоббисты, либо с таким самомнением, что лучше бы и не отвечали
>> давай ссылу в студию, де ты спрашивал а там лучебы не отвечяли
> Ты хоббист ;) (не хотел тебя задеть, извини). Но "всё-таки нужно но сложно переучивацо с алгоритмического стиля мышления на более абстрактный" звучит высокомерно, нет?
ИМХО нет. Это - факт. Я сам много труда на это затратил. Мои первые проги на лиспе были длинны, карявы и весьма уродливы ибо составлялись более алгоритмически. По мере обучения я их переписывал, отчего они вконце стали вдвое-втрое короче первоначяльных и вдесятеро более понятными. Также "обычного" чела достаточно трудно обучить алгоритмическому.
> И что? Для него уже до чертиков инструментов. Кроме того, я имел в виду системы с открытыми исходниками.
ивот. Несмотря на множественные недостатки.
> Кстати, какой именно из уймы языков .NET хуже Визивасика? F# ? 8)
сама концепция хуже. а уж про с# и слов нету.
>> А если просить 10 случяйно выбратых бомжей, не знакомых ни с лиспом ни с питоном, все 10 скажут - нам пох.
> Что-то тебя в сторону уносит - Whitespace, бомжи...
ну меня твоя фраза о том, что десятеро программистов на схеме единодушно сочтут питоний код более понятным чем лисповый, тоже здорово рассмешила.
Значит неправильно пробовал. Для начала возьми sicp и прорешай его. Потом попробуй решить на лиспе какую-нибудь большую задачу. Например напиши систему, способную упрощать логические выражения.
> нo пoкa нe гycтo...
Думаю, дело в том преимущества лиспа проявляются во всей красе на больших задачах. А задачки уровня "найти в массиве самый большой и самый маленький элемент и поменять их местами" просто решаются и на лиспе, и на питоне, и на турбо-бэйсике.
>Ну фих их знаит, я имел в виду более-менее извесны стали к концу 90х.
Тоже нет. VB мгновенно стал хитом, Delphi тоже быстро набрал популярность.
>> Естественным путем миграции с TurboPascal был Delphi
> ну хтож вас туды загнал, в трупопаскаль-то?
Нас - никто, я юзал {Turbo,Borland} C++. Но TurboPascal был популярен, и с пришествием Windows народу надо было на что-то мигрировать.
> вот только вах тянул кучю юзверей
аха, MicroVAX в рабочей станции 8)
> а 286 макимум как печятная машинка годилась.
аха, но я-то говорил о 486+. Кстати, времена 386-х были, пожалуй, даже лучше для вторжения "взрослых" технологий.
> полноценных систем и средств, соотвецтвующих моще просто не успели сготовить - место ужо занято.
>> Рынок _просрали_
>аха :( Вот только не из-за конкурентоспособного, а как раз методами давления на моск, как я и говорил о появлении типо понятия "маргинальный"
Вот - ключевой момент. Если Лисп настолько лучше, чем всё остальное, пригоден для использования быдлокодерами и даже (по мнению некоторых) превращает быдлокодеров в суперкодеров - почему мощный десант CommonLisp'ов не смел все быдлоподелия? Мир стал бы куда лучше.
>> Мощный и простой в использовании конструктор интерфейсов.
>чем лучше того же борландовского owl?
OWL - это библиотека, а не конструктор интерфейсов.
>> Неплохой язык программирования.
>Чем лучше тех же сей с плюсами?
Не лучше, но гораздо проще. Мало кому нужна вся моща Си++
>> Кстати, какой именно из уймы языков .NET хуже Визивасика? F# ? 8)
>сама концепция хуже
Хуже чем что? Чем хуже? Мне вообще-то нравится концепция .NET - многоязыковая среда, позволяющая легкую интероперабельность между языками, managed code с возможностью прямого преобразования в "родной".
> а уж про с# и слов нету.
Не очень язычок, конечно. И развивается в какого-то монстра.
> ну меня твоя фраза о том, что десятеро программистов на схеме
На какой схеме? Где ты там это увидел? =8-0 Я сказал - "не знающих ни Питона, ни Лиспа"
Не уверен, что понял тебя правильно, но - меня волнует, чтобы программы, за которые я отвечаю, работали. Поэтому я опробую новые технологии с осторожностью - сначала на относительно небольших подзадачах. Поэтому "написание больших программ на Лисп" откладывется, пока он не зарекомендует себя на маленьких и средних.
> Тоже нет. VB мгновенно стал хитом, Delphi тоже быстро набрал популярность.
Я говорю чё сам видел. До виндовся 95 юзали lattice c, watcom, борландовский с/с++, ещё какуюто хрень. мсявый компилер был вроде анегдода, все над им смяялись и никто не юзал. До года примерно 98 тырфейсы под виндовсь делалисть восновном на борландовом с++ с овл, кроме прямово винапи, м которым было хоть сложнее, но проще. Потом эта нечисть попёрла, делфи и прочее, причём по снгам токо. В буржуинстве делфи досих пор сравнительно раритет.
> TurboPascal был популярен
восновном скубенты на ём лабы кропали. Эх, знать бы чем всё кончицо, луче бы поотчисляли всехнахъ.
> мощный десант CommonLisp'ов
Как ты се это представляеш? лисперы работают, а мси с борландом пеаряцо, это их заработок. Благо в компах мало кто шарил, им массовый дурятник и лохотрон сходил с рук. До сих пор сходит, но щяс ситуяйца уже выправляцо начяло.
> OWL - это библиотека, а не конструктор интерфейсов.
какая на йух разницо, если ей прользовацо проще а результат луче?
> Не лучше, но гораздо проще. Мало кому нужна вся моща Си++
Чем же оно проще? {} на begin end заменеты и... всё вроде? Откуда кстати в с++ моща?
> Хуже чем что? Чем хуже? Мне вообще-то нравится концепция .NET - многоязыковая среда, позволяющая легкую интероперабельность между языками, managed code с возможностью прямого преобразования в "родной".
Там, где можно просто скомпилить - выросла вм на пустом месте. В жабе есть хоть какая-то причина для вм, может быть даже не совсем оправданная, а тут... Всё предоставляемое дотнетиненадом намного лучше и проще решается традиционными средствами. Вобщем, достаточно посмотреть как оно работает.
>> ну меня твоя фраза о том, что десятеро программистов на схеме
> На какой схеме? Где ты там это увидел? =8-0 Я сказал - "не знающих ни Питона, ни Лиспа"
Почему программер на схеме не может попадать под это определение?
> Не уверен, что понял тебя правильно, но - меня волнует, чтобы программы, за которые я отвечаю, работали. Поэтому я опробую новые технологии с осторожностью - сначала на относительно небольших подзадачах. Поэтому "написание больших программ на Лисп" откладывется, пока он не зарекомендует себя на маленьких и средних.
Тогда тебя скорее волнует конкретная реализация CL, а не технология инкрементальной компиляции, которой "сто лет в обед" и которая сама по себе скорее всего не принесёт тебе никаких неудобств :)