LINUX.ORG.RU
ФорумTalks

Тулкитострадания

 ,


0

3

Знаете, все-таки какой-то песец с тулкитами этими графическими, хоть бери да свой пиши. Меня, сразу оговорюсь, интересует интеграция с питоном. И в этом смысле песец не просто полный, а всеобъемлющий.

Tk/TkInter: из коробки, API нормальный, но все рассыпается о угребищный вид в Linux и отсутствие табличного виджета.

Gtk/PyGTK: API словно создан для разумных грибов из другой галактики, на венде выглядит чужеродно, на OS X выглядит чужеродно и херячит работу с клавиатурой, требует костылей, дикий привкус C при программировании на питоне, кастомные виджеты с помощью какой-то матери.

Ну и еще GPL-only, что подходит не всем не всегда. (Upd: LGPL, ну, легче самую малость)

Qt/PyQt: жуткий привкус C++ при программировании на питоне, неродной вид на Mac OS X (много компромиссов в сторону «чтоб было одинаково везде», а не «чтоб идеально вписывалось в среду», grid ужасен).

WxWidgets/WxPython: проблемы где-то те же, что в Qt, вкус C++ даже еще больше ощутим, под Linux выглядит, словно говно (Audacity, например вот), документацию писали разумные грибы из другой галактики.

PyObjC: некроссплатформенный, тормозной, API создан для разумных вымерших сколопендр, проигравших войну с разумными грибами (doSomething_withSomething_withSomethingElse_andYetSomething_()).

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

★★★★★

Последнее исправление: shimon (всего исправлений: 1)

хоть бери да свой пиши

Вся суть линукса.

emissar ★★
()

Можешь показать, как у тебя в макакоси выглядят qt-приложения? УМВР вроде, не замечал.

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

А, LGPL. Я какого-то говнюка прочитал и повторил, прошу прощения.

LGPL тоже не всем и не всегда, увы.

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

Можешь показать, как у тебя в макакоси выглядят qt-приложения?

В макоси они выглядят получше GTK, конечно, но видно, что оно на Qt.

Кроме того, в нескольких приложениях вместо родного грида было нечто свое, а заголовки реализованы обычными кнопками (которые не нажимались, кстати же). Мне трудно было сказать, кто более дефективен — тулкит или автор.

Тем не менее, что плохо — это то, что все тулкитные привязки страдают синдромом неродного языка. В смысле, что надо писать на пайтоне как на C++ из-за их издержек, конструкции более высокого порядка недоступны либо через задницу.

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

А, LGPL. Я какого-то говнюка прочитал и повторил, прошу прощения.

Скорее ты перепутал с PyQt, который и правда GPL. Хотя всё равно нет прощения.

LGPL тоже не всем и не всегда, увы.

Кому и почему она не подходит? Это сторонняя библиотека, распространять ее не запрещено.

tailgunner ★★★★★
()

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

А webkit в консоли что ли будет?

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

Qt тоже LGPL, не? и вообще, на GTK наехал больше всех, несправедливо!

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

И я знаю, что ты знаешь. Неужели никак не найти денег на коммерческую лицензию, если не устраивает GPL? Они кушать хотят, ты, наверное, тоже.

i-rinat ★★★★★
()

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

еще один все понял

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

Проблема в том, что всё написано на Крестах. А нормального интеропа с Крестами не существует. Уверен, что крестопоклонники почитают это фичей.

stevejobs ★★★★☆
()

ЕМНИП, на OpenGL есть отличный тулкит. А еще openmotif. Остальное — говнище жесточайшее.

Eddy_Em ☆☆☆☆☆
()

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

Начал за здравие, кончил за упокой.

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

Можно еще сказать «не нужен питон и дешевые ненативные биндинги», но кушать жс хтмльной ложкой это дело вкуса.

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

Почему же? Вполне правильно говорит. Только не совсем все: там, где графика активная, нужно все-таки делать локальную морду на OpenGL. А остальные интерфейсы нафиг не нужны. Уродство и извращение.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от stevejobs

А нормального интеропа с Крестами не существует

Можно прокладку написать. Я так делал, когда писал клиента для ПЗС-матрицы. Библиотека, к счастью, была. Но она была на гадости. Поэтому пришлось немножко пожрать говна (вроде как "один раз — не говноед") и написать прокладку, которая позволяла бы по-человечески с этой плюсовой библиотекой работать.

Eddy_Em ☆☆☆☆☆
()

Идеальный графический интерфейс не нужен.

Главное - чтобы софт задачи свои выполнял.

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

Ну ага, у тебя API сделан на объектах и шаблонах, а ты потом сделал на Си прокладку и раскатал всю эту сложную структуру в плоский блин, функции типа doSomething_withSomething_withSomethingElse_andYetSomething_(). Мало того что оно целиком не может объять все возможные варианты использования исходного апи, так еще и выглядит как говно (говно не потому что Си, а потому что оно сделано не для Си).

А потом мы в целевом языке снова из говняного блина собираем назад объекты. Объекты целиком из говна. Грац, чо, работает, но как же воняет.

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

отсутствие табличного виджета

TkTable

о угребищный вид в Linux

Потому что в этом вашем ляликсе всем долгое время было пофиг (да и сейчас пофиг) на какой-либо дефолтный look'n'feel.

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

Идеальный графический интерфейс не нужен.
Главное - чтобы софт задачи свои выполнял.

А потом плачутся что на линуксе всё выглядит некрасиво и уходят на макось. Которая убогая, зато красивая,

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

А что, предлагаешь переписывать библиотечку на сях? В прошлый раз я так и делал, но после появления новой железяки, для которой пришлось новую библиотечку качать, мне как-то совершенно расхотелось весь этот плюсобред в си переводить.

Просто некоторые извращенцы этот ++ пихают во все щели, даже туда, где он вообще нафиг не нужен!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от stevejobs

Ну так лет 10 назад все было красиво. А потом понабежали всякие уроды, и линукс скатился в СГ: внешний вид диктуют лица нетрадиционной для нашей страны ориентации, внутренний — подобные лица...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от stevejobs

Люди которые работают со страшно выглядящим софтом и которые плачутся о том что он страшно выглядит — множества непересекающиеся.

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

Предлагаю добавить в стандарт Крестов внятный способ общаться с ним из внешнего мира. Нет, я не знаю, что это за способ и как его реализовать.

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

на линуксе всё выглядит некрасиво

Какой хозяин, такой у него и Линукс.

Hertz ★★★★★
()

Делай так, как VLC:
Win/Linux - Qt (причём Qt4, Qt5 пока неюзабельное говно даже в виндах).
OS X - Cocoa.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Просто некоторые извращенцы этот ++ пихают во все щели, даже туда, где он вообще нафиг не нужен!

О-о... Масштабы это плятства просто космические... Выучат одни кресты, и всё, универсальный ж язык ёпт! Идиоты потому что, и не понимают, что в программировании ещё не научились отливать серебрянных пуль. Одну и ту же задачу часто можно решить средствами множества языков, какой то более подойдёт, какой то менее, и всё равно пихают кресты, которые вообще ни в зуб ногой. С одной стороны тупые погромисты мнящие себя гуру, с другой стороны тупые менеджеры (недавно тут, вроде ты видел, был тред, где усирали С, за, дескать, древность, и славили кресты, какие они, типа современные). Вот так они уцепились друг за друга и кресты приобрели совершенно незаслуженно репутацию промышленного стандарта... Короче, тенденции двигает быдло. Системы говно (я не про ос, имею в виду абстрактную категорию под которую можно что угодно подписать), потому что делаются под быдло (иначе не продашь же) и часто быдлом же, которое знает лишь один инструмент. Убого, зато красиво, как выше писали. Мультиинструменталисты сделают всё круто, быстро, но дорого и их ещё хрен найдёшь. И манагеры жадные, идут в итоге на вышеописанный компромисс...

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

Ну всё правильно. Вроде Mono с таким подходом пилится. На виндк windows forms, на линуксе gtk#2, на макоси cocoa. Короче, логика – общак, морда – нативная.

Hertz ★★★★★
()

угребищный вид в Linux

Если этот ваш питон, умеет Tk 8.5 смена темы на alt, может помочь.

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

Может самостоятельно пойдешь по указаному адресу и не будешь задавать дурацкие вопросы?

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

Мотиф плюсую. Писать очень удобно, вид получается приличный, и по сети работает без костылей.

slapin ★★★★★
()

Короче говоря, все тлен, все интерфейсы надо писать на javascript и запускать в embedded webkit.

брось эти вещества! :)

писал бы на С или С++, сабжевых проблем не существовало бы

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

умеет Tk 8.5 смена темы на alt

И виджеты из Ttk соответствено.

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

Вообще не вижу смысла им пользоваться.

а кодеки для квиктайма где берешь? С раздачи ворованых кодеков на рутрекере?

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

Для меня идеал тулкита - это крошечная либа вместо биндинга ЯП в виде сервера (максимум пара сотен строк), чтобы рисовать GUI чем-то вроде xml, отправляя тулкиту через сокет. А тулкит может рисовать на выбор через qt, gtk.

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

Что тебе эти кресты уткнулись, на них только Qt и wx (которого все равно никто не юзает).

Проблема всех биндингов в том, что качественно пробросить интерфейс одной платформы на другую по затратам сравнимо с переписыванием на ней же, поскольку подходы на них могут быть совершенно другими и чужеродными. Кроме прочего есть проблема документации и поддержки; если проброшенный метод назвать setEnabled_forSegment, то любой идиот откроет справку по AppKit'у и найдет там селектор setEnabled:forSegment:. Если назвать и/или делать по-другому, в духе таргет-среды, то появится поддержка, документация, бэкпортирование и план развития. Нахер это тащить, если можно сделать самостоятельный продукт?

Правильно делать не конкретные интерфейсы, а на уровне самого тулкита предоставлять «модель вью» через примитивный интерфейс из 5-6 функций, тогда во всех программных средах все будет выглядеть одинаково, но в ущерб расширяемости. Например можно посылать в UI полное описание окна/вью, внутри по идентификаторам забиваться на события, и через простой интерфейс получать { кто=«кнопка1», что=«нажалась», зачем=«хз» }. И так же устанавливать значения: { кто=«поле1», что=«плейсхолдер», знач=«введи число» }. Твоя идея с js+webkit почти то самое, если на секунду забыть, что «веб» это bleeding-edge'вый набор легаси-костылей, совершенно не предназначенный для мало-мальски интерактивного UI.

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

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

arturpub ★★
()
Ответ на: Даже от aes_ultimum

++

Я только буквально пару часов назад, обновив ядро, проверял без иксов работу USB-видеозахвата (пока у меня перекомпилялось ядро — забыл поддержку своей сетевухи отметить, а без сети обновить блоб nvidia не получается как-то).

Запустил

mplayer tv:// -tv device=/dev/video1 -vo caca
и смотрел картинку. Прикольно.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от stevejobs

А потом плачутся что на линуксе всё выглядит некрасиво и уходят на макось.

проблемы енотов.

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