LINUX.ORG.RU

haskell или lisp?


0

0

У меня появилось свободное время, которое я хочу плодотворно потратить на написание оконного менеджера. Хочу реализовать в нем многопоточность всего, что параллелится, возможность изменения самого себя в рантайме. 6е чувство в месте с 7й полуастральной чакрой подсказывает, что мне придется писать какой-то хитрый DSL, а может и не один. Глас с небес указал на 2 инструмента — Haskell и Lisp. От правильности выбора между ними будет зависеть попаду я в рай или в АдЪ. Сам я предпочитаю послушать преимущества и того, и другого пристанища от тех, кто уже побывал за гранью Дзена.

Поле для дискуссии — наиболее кошерные реализации Common Lisp и (template)Haskell для решения поставленной задачи, которая предполагает что super-druper-WM обладает такими свойствами:

  • Многопоточна и распараллелена вдоль и поперек
  • Написана на проблемно-ориентированном DSL
  • Плагинная структура, возможность изменения функциональности, подключение плагинов прямо в рантайме
  • Скорость _без_ уродования кода, как в текстах программ на shootout.alioth.debian.org
  • Хочется ООП!!! Можно в виде CLOS или подобного

Отдельная просьба. Объясните на пальцах, что такое лисповские рестарты. И подходит ли template Haskell для метапрограммирования (в понимании создания бесконечно забористых DSL)?

Не является ли это снобизмом — писать гуй на статически-типизированном языке? На сколько зрелы и полноценны биндинги Qt к этим языкам? (вопрос для тех, кто юзал)

PS: Просьба не агитировать за другие языки. Даже за OCaml

Ответ на: комментарий от zahardzhan

P.S. Я не могу увидеть ни одного отличия Smalltalk'а от Clojure. Может вы мне их покажите?

zahardzhan
()
Ответ на: комментарий от cvb

> Да, WM, требующий JRE - это наше ффсио.

Таких еще вроде как не было? Ну так путь будет первым.

zahardzhan
()

Для справки:

топикстартер обычный тролль, который решил зарегистрировать новый ник и поржать в Development.

unrealix - вот истинное его лицо. ну и периодически он постил из под анонимуса.

думаем.

mono ★★★★★
()
Ответ на: комментарий от naryl

Поставь awesome,


Ой, я такой ленивый, боюсь что щас я это просто не асилю. Стоит гном, всем устраивает... Рыпаться не хочу никуда. До гнома использовал афтерстеп.

anonizmus
()
Ответ на: комментарий от anonizmus

> а WM вообще нужны ли ? Обычному смертному ? На какой нить производственный станок - я понимаю. Но не домой же !!

а ты кеды/гном/что-ты-там-юзаешь юзаешь без оконного манагера? интересно...

или ты имеешь в виду нахер иксы, консоль — наше фсьо?

korvin_ ★★★★★
()
Ответ на: комментарий от mono

«SaaS - это эквивалент полноценного шпионского ПО и широко открытого бэкдора. Оператор сервера получает необоснованный контроль над пользователем. Это мы не можем принять.» — RMS

Ричард Столлман предлагает бойкотировать LOR!

anonymous
()
Ответ на: комментарий от mono

топикстартер обычный тролль, который решил зарегистрировать новый ник и поржать в Development


К.О. нам рассказывает то что и так понятно

Karapuz ★★★★★
()
Ответ на: комментарий от Sphinx

> Серьёзно? Какие там баги?

Stumpwm научился нормально работать вместе с композитингом (xcompmgr)? После ресайза остаются пунктирные линии. Не работает fullscreen в vlc. Неправильно работает move-window и move-focus в :sloppy режиме. Столько хватит?

anonymous
()
Ответ на: комментарий от zahardzhan

> Угу. И бинарник stumpwm весом 40 метров.

Угу, а когда clojure научилась компилироваться в нейтив? И это, faslы весят не так уж и много.

anonymous
()
Ответ на: комментарий от cvb

> Это совсем не те скратчпады, которые реализованы в ion.

Очень похоже на ион3 можно сделать за 10 строчек в конфиге.

anonymous
()
Ответ на: комментарий от anonymous

>Очень похоже на ион3 можно сделать за 10 строчек в конфиге.

Как например? Особо я этим не интересовался, но сходу посмотрев документацию xmonad и xmonad-contrib решения не придумал.

cvb
()
Ответ на: комментарий от zahardzhan

> Поддержу Alex Ott'а - пиши на Clojure

Здесь уже сказали о JVM. Не хочу с ней связываться, а так посмотрел видео Евгения Холодкова http://vimeo.com/11413473. Классно, наверное, для тех кто утомлен суровым ынтерпрайзом. Но присутствующие [квадратные скобки] наверняка вылезут боком при МП.

dens-dens-dens
() автор топика
Ответ на: комментарий от anonymous

>> Не стоит их сравнивать

xmonad-то все-таки динамический, а stumpwm- статический


Что означает статический/динамический применительно к оконному менеджеру в данном контексте?

dens-dens-dens
() автор топика
Ответ на: комментарий от dens-dens-dens

> Но присутствующие [квадратные скобки] наверняка вылезут боком при МП.

Мда, думаю на ЛОРе слов о МП было сказано на порядки больше, чем написано реального кода с использование оного.

archimag ★★★
()
Ответ на: комментарий от anonizmus

> Жениться тебе пора

У нас в стране запрещено многоженство

Или хотя бы телочку заведи


Они и так много времени отжирают из личной жизни, ну их нафиг

Если совсем невмоготу то лучше бы помогал разрабам пилить гном


Мне не нравится Гном и его песпективы

Ну что там можно распараллеливать в DM?


Отрисовка окон, сложных визуальных эффектов. Распределение ресурсов между людьми, удаленно подключенных к одному xserver-у и работающих за одним WM. Да много чего еще

Это до какой степени он должен быть тормозом?


Зависит от сложности решаемых им задач

Понимаю там рендер написать


Ну вот сам сказал про рендер

Нет, ну а зачем ? Напиши причины !


Удобный, простой функциональный интерфейс, выполняющий нетривиальные задачи потребует ресурсов. Почему бы не распараллелить все, что возможно?

dens-dens-dens
() автор топика
Ответ на: комментарий от xetf

>> скратчпадов нет

Есть.


Что вы такое разное понимаете под скратчпадами?

dens-dens-dens
() автор топика
Ответ на: комментарий от mono

Не знаю, кто такой unrealix, да мне вобщем-то и пофиг.

топикстартер обычный тролль


У меня нет на это времени

dens-dens-dens
() автор топика
Ответ на: комментарий от korvin_

> вообще, для начала посмотри Acme — это пример весьма хорошего фреймового WM

Фреймовость должна быть опциональной, а не прибитым гвоздями единственно возможным UI.

dens-dens-dens
() автор топика
Ответ на: комментарий от archimag

> Мда, думаю на ЛОРе слов о МП было сказано на порядки больше, чем написано реального кода с использование оного.

Странно слышать такие слова от человека профессионально программирующего на Лиспе

dens-dens-dens
() автор топика
Ответ на: комментарий от dens-dens-dens

> то означает статический/динамический применительно к оконному менеджеру в данном контексте?

Динамическим WM называется wm, умеющий расставлять окна сам, но и позволяющий пользователю таскать их как в вендах. Под статическим, видимо, понимается WM, не расставляющий окна сам, как, например, kwin или metacity.

naryl ★★★★★
()
Ответ на: комментарий от dens-dens-dens

> Фреймовость должна быть опциональной, а не прибитым гвоздями единственно возможным UI.

Если это фреймовость как в kwin или compizовских плагинах, то она такая убогая чесслово не очень нужна.

anonymous
()
Ответ на: комментарий от dens-dens-dens

> > Мда, думаю на ЛОРе слов о МП было сказано на порядки больше, чем написано реального кода с использование оного.

Странно слышать такие слова от человека профессионально программирующего на Лиспе

Мощь МП - это миф.

anonymous
()
Ответ на: комментарий от dens-dens-dens

> Что означает статический/динамический применительно к оконному менеджеру в данном контексте?

Статический/динамический применяется в отношении к фреймовым вм. Статические - это там, где ты сам «в ручную» создаешь каждый layout. Динамические - это там, где уже есть стандартные layouts и тебе делать ничего не нужно, кроме того в динамических используются тэги, а не десктопы. Сказано это к тому, что workflow в них настолько разный, что сравнивать их бесполезно, также как и metacity c ion3, например.

anonymous
()
Ответ на: комментарий от dens-dens-dens

> Отрисовка окон, сложных визуальных эффектов.

Отрисовка окон - это Xы, сложные визуальные эффекты - решил написать второй компиз?

Распределение ресурсов между людьми, удаленно подключенных к одному xserver-у и работающих за одним WM. Да много чего еще

Xserver отвечает за отрисовку на конечной машине, т.е. нельзя быть подключенным *удаленно* к X-servery, точнее можно, но результатов ты не увидишь. Можно приложения запускать на удаленной машине, а они будут отражаться на твоей машине - но тогда у каждого будет свой WM. Вообщем, иди читай документацию по X'ам, а то даже азов не знаешь, а уже собираешься что-то писать.

anonymous
()
Ответ на: комментарий от anonymous

> Вообщем, иди читай документацию по X'ам, а то даже азов не знаешь, а уже собираешься что-то писать

ТАк написал же, что задача учебная. Смысл учебной задачи - обучение. А читать документацию, если нет задачи - это глупо и скучно

dens-dens-dens
() автор топика
Ответ на: комментарий от archimag

>Не стоит их сравнивать, xmonad то безусловно лучше, но это говорит только о том, что xmonad лучше.

Ну что за лучше-хуже? Xmonad функциональнее, но вот мне было критично отсутствие перезапуска и в особенности перекомпиляции при изменениях.

anonymous
()
Ответ на: комментарий от volh

> Прошла суббота. Ты бы уже сделал первый вариант и на хаскелле, и на лиспе.

Да не сможет он ничего сделать.

anonymous
()
Ответ на: комментарий от vertexua

> Здесь уже сказали о JVM. Не хочу с ней связываться, а так посмотрел видео Евгения Холодкова http://vimeo.com/11413473. Классно, наверное, для тех кто утомлен суровым ынтерпрайзом. Но присутствующие [квадратные скобки] наверняка вылезут боком при МП.

Лучше вот эти слайды посмотри http://wiki.jvmlangsummit.com/images/a/ab/HickeyJVMSummit2009.pdf

Все скобки что там есть - они все к месту. А вообще, кложа - няшка, пока не попробуешь - не поймешь, и JVM тут побоку.

Хорошо ли писать оконные менеджеры на базе JVM? Многих ли смущает, что пол-гнома написано на питоне и сишарпе?

zahardzhan
()
Ответ на: комментарий от zahardzhan

> А вообще, кложа - няшка, пока не попробуешь - не поймешь, и JVM тут побоку.

Clojure все также еще не переписана на Clojure?

anonymous
()
Ответ на: комментарий от zahardzhan

> Хорошо ли писать оконные менеджеры на базе JVM? Многих ли смущает, что пол-гнома написано на питоне и сишарпе?

Меня смущает. Поэтому wmii.

naryl ★★★★★
()
Ответ на: комментарий от naryl

> Меня смущает. Поэтому wmii.

Это не совсем правильный ответ, нужно еще рассказать про urxvt, mutt, screen, mcabber, w3m, vim, xpdf, mplayer и тд, и как все мгновенно запускается на core i7 и 4гб оперативы.

anonymous
()
Ответ на: комментарий от anonymous

Это само собой, но речь про менеджеры окон.

P.S.
s/mcabber/weechat/ ибо джаббер нужен меньше чем ирк.

naryl ★★★★★
()
Ответ на: комментарий от zahardzhan

Устал от всяких умничающих о сишарпе. У меня установлен ВЕСЬ ГНОМ без Моно. Идите на FAQ Гнома и читайте, что в составе Гнома ТОЛЬКО Tomboy написан на Mono и он легко заменяется на GNote

vertexua ★★★★★
()
Ответ на: комментарий от tailgunner

У JRE такая особенность, ее библиотеки классов хватает почти под любые задачи. Поэтому понадобится ТОЛЬКО JRE скорее всего

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Спасибо за ссылки, буду смотреть.

Может не по теме, но как вам Scala?


Если бы я хоть как-то был связан с Java-платформой, то программировал бы именно на этом языке.

dens-dens-dens
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.