Записки реликта - Календарное; статья про Linux на десктопе [entries|archive|friends|userinfo]
Latimeria chalumnae

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Календарное; статья про Linux на десктопе [Nov. 7th, 2007|11:27 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|, , , ]

С Праздником, друзья!

В журнале у [info]vitus-wagner@lj обнаружил ссылку на статью про то, как сделать Linux более комфортной десктопной системой. Там многое небесспорно, но есть один очень важный пункт, с которым я полностью согласен: если мы хотим, чтобы работа под Linux была для начинающего пользователя комфортной, GNOME должен быть заброшен в максимально далёкую помойку (и, кстати, все приложения на Gtk, у которых есть минимально приличные Qt-шные аналоги — тоже, добавлю я от себя).

Для мигрантов из Винды (которых большинство) есть KDE; для мигрантов с Мака (да! бывает и такое, я даже лично знаком с некоторыми) — BlackBox, Window Maker и прочие NeXT-подобные WM (вообще, именно к ним, как правило, приходит в конечном итоге вообще любой неравнодушный к юзабилити человек; ну или к LarsWM, но это уже вещь не для всех). А GNOME, как известно, расшифровывается как GUI No One Might Enjoy. В статье по ссылке, вообще, Вся Правда об этой среде, почитайте.
LinkОставить комментарий

Comments:
[User Picture]
From:[info]tiphareth
Date:November 28th, 2007 - 10:19 am
(Link)
Гном само собой душить,
но я использую ровно три софтины, у которых есть ГУИ:
xmms, firefox, и gmplayer, и они все три хотят GTK.
Чтобы хоть кто-то использовал QT, я и не припомню
(периодически приходится гонять Ethereal либо
xcdroast, и там тоже никакого qt-фронтенда).

Соответственно - я qt уже давно просто не ставлю,
смысла нет.

Тем более, что граждане вообще пидорасы и за копирайт.

Единственная софтина из-под QT, которую я в жизни
своей ставил, была klines (игра в шарики, популярная
среди русских народных секретарш и ресепционисток)

Такие дела
Миша
[User Picture]
From:[info]uri
Date:November 28th, 2007 - 07:22 pm
(Link)
Прошу прощения за мудацкий лапидарный стиль, болит голова, почти не соображаю.

но я использую ровно три софтины, у которых есть ГУИ:
xmms, firefox, и gmplayer, и они все три хотят GTK.
Чтобы хоть кто-то использовал QT, я и не припомню


О, круто. Нy, честно говоря, у меня на компьютере Qt-приложения тоже совсем не доминируют: Firefox, Thunderbird, LogJam (LJ-клиент), jpilot (средство синхронизации с КПК), Emacs с GUI-мордой, Inkscape (векторный редактор), nt (менеджер загрузок), meld (графический diff/merge), Stardict (словарь, показывающий словарные статьи во всплывающих окнах при выделении слова), Audacious (проигрыватель аудио) и, ясное дело, GIMP написаны на Gtk; Recoll (морда к локальной поисковой машине), Psi (клиент IM-систем), KDissert (средство создания интеллект-карт), K3b (средство прожига дисков — XCDRoast "из коробки" в последнее время отказывается работать, а разбираться, в чём дело, мне лень), KTorrent, KPDF с KDVI и Konsole (KDE-шный эмулятор терминала; я в принципе пользуюсь WindowMaker, но так люблю организацию любого контента во вкладках, что мирюсь с тем, что он тащит за собой в память пол-KDE) — на Qt; файловый менеджер (mc) и видеопроигрыватель (mplayer) я использую консольные; на чём написан FBReader (читалка для книжек) я не помню, но, кажется, тоже на Gtk; так что Qt-приложения даже оказываются в меньшинстве (и, как видно из этого списка, ни одно из них нельзя назвать критически важным — разве что K3b, но я всё равно умею пользоваться mkisofs и cdrecord из командной строки, регулярно приходится на одной из работ).

Однако же, во-первых, авторы Gtk ориентируются на кретиническую концепцию "human interface", в соответствии с которой последовательно похабят библиотеку, удаляя из неё полезные функции (яркие примеры — из стандартного Gtk-шного диалога открытия файла убрали возможность явного редактирования адреса файла, после чего скопировать в этот диалог путь из, скажем, терминала стало невозможным; возможность назначать пунктам меню горячие клавиши, просто нажав эти клавиши при выделенном пункте меню, по умолчанию отключена, и включить её в некоторых программах теперь просто нельзя), пидорасы-ненавижу. А во-вторых, я видел код Gtk и Qt-приложений изнутри, и пытался писать с использованием обеих библиотек.

Так вот Gtk это ужас, летящий на крыльях ночи. То есть и Gtk, и Qt, конечно, это ужас, но по разным причинам.

Gtk+Glib (а именно эту связку надо сравнивать с Qt) — это кошмарная попытка создать C++ средствами чистого C. Читабельность кода при этом такая же плохая, как у чистого C, а тормозит он при этом как код на C++. Плюс к тому Gtk заставляет программиста совершать кучу ритуальных ужимок и прыжков, которые в цивилизованном мире давно принято прятать глубоко внутрь библиотеки. Написание своих Gtk-приложений от этого становится мучительным, а доработка чужих Gtk-приложений — вообще практически невозможной.

Qt — это "государство в государстве". Это, строго говоря, не совсем библиотека для C++, скорее экзотический диалект последнего. У неё собственный препроцессор (собственно, и делающий из кода на Qt код на C++), своё средство интернационализации (не совместимое c GNU gettext), своя система сборки (точнее, управления управлением сборкой; аналог не make, но automake/autoconf) и даже собственная реализация классов-шаблонов, STL вместе c Qt лучше не использовать. По этому поводу Qt жёстко завязана на конкретные компиляторы и средства разработки, не имеет привязок к другим языкам (существуют приличные биндинги для единственного языка — Питона, PyQt; они отчасти написаны роботом и до сих пор толком не документированы, но народ всё равно рад до усрачки, потому что C/C++ и все его потомки уж больно гадостны) и плохо сочетается с библиотеками, не знающими о существовании Qt.

Строго говоря, за это Qt следовало бы не любить ещё больше, чем Gtk, но…

*продолжу в следующем комменте, а то что-то дофига понаписал*
[User Picture]
From:[info]uri
Date:November 28th, 2007 - 08:05 pm
(Link)
…но Qt просто развращающе удобна и для программиста, и для пользователя. Попробую объяснить почему.

Начну с программистской стороны, потому что именно взгляд на Qt "изнутри" окончательно определил мою позицию в вопросе "Qt vs. Gtk".

Во-первых, писать приложения на Qt можно действительно очень быстро. Причём это не недоброй памяти "дельфи", в которых натягивалось мышкой стандартное говноокно со стандартными говновиджетами, на результат, скажем, масштабирования которого нельзя было взглянуть без слёз: нет, в Qt очень грамотно убрана "под ковёр" именно рутинная, нетворческая часть работы приложения, а всё, над чем нужно сохранять контроль, оставлено на откуп программисту. В каком-то смысле Qt это такой маленький локальный коммунизм в одной отдельно взятой ситуации: идиотский, конвейерный труд автоматизирован, программисту оставлена область практически чистого творчества. Слоган Trolltech, "Code less — create more", как ни странно, отражает действительность.

Во-вторых, когда твоё приложение без малейших изменений в коде собирается не только под FreeBSD, Mac, Windows и Linux, но и под кучу платформ, даже название которых ты слышал всего пару раз в жизни — это круто. У Gtk такой переносимости и близко нет; уже виндовский порт Gtk это издевательство над здравым смыслом.

А в-третьих, Qt делает незаметными многие раздражающие стороны C++; глядя на троллтеховские дополнения к языку, временами, конечно, вспоминаешь 10 правило Гринспуна, понимая, насколько изящнее то же самое выглядело бы на Схеме или Эрланге; но "за неимением гербовой пишем на простой" — для программиста, живущего в стране, где сами слова "Схема" и "Эрланг" знают несколько сотен человек, Qt — наилучший шанс минимально соприкасаться со свинцовыми мерзостями вроде ручной сборки мусора, мешанины из директив условной компиляции, указателей на void и прочего типичного для C/C++ говна.

Теперь о пользователях. Программы на Qt (не говорю сейчас о программах для KDE; инфраструктуру KDE всё же придумывали не вполне здоровые люди):

  • очень редко (забыл, когда было последний раз) падают, потому что работу с памятью отчасти берёт на себя библиотека,
  • никогда (ни разу не сталкивался, кажется) не кажут крокозябры вместо русских букв,
  • имеют приятный на взгляд интерфейс — чтобы написать уродливую программу на Qt, надо сильно постараться,
  • почти всегда собираются пользователем, не имеющим программистских навыков, на любой, сколь угодно экзотической системе (про это как-нибудь расскажу подробнее, если интересно — я сейчас как раз с такой ситуацией имею дело на одной из работ),
  • легко расширяемы, за счёт читабельного кода (ну, это можно было бы отнести к программистской части), встроенного в библиотеку жабаскрипа (жабаскрип, кстати, очень хороший язык — то, что в Сети им пользуются в основном криворукие пионеры, создало ему совершенно незаслуженную репутацию) и удобной морды к скриптам на Perl/Python/etc.

Поэтому за Qt (особенно после выхода четвёртой версии) будущее, и я всегда стараюсь выкинуть Gtk-программу после появления Qt-версии. Эта библиотека неидеальна, но она лучшая из существующих, и появления достойного конкурента в ближайшее время не предвидится.
[User Picture]
From:[info]uri
Date:November 28th, 2007 - 08:06 pm
(Link)
Тем более, что граждане вообще пидорасы и за копирайт.

Это, строго говоря, не совсем так. Позиция Trolltech по вопросам копирайта выглядит чем дальше, тем симпатичнее. Исходно Qt распространялась под довольно скотской лицензией (из-за чего существенно худшая Gtk и получила ненормально широкое распространение). Потом появилась GPL-версия под Linux. А начиная, кажется, с версии 4.0 Qt доступна под GPL на всех целевых платформах — но, естественно, если кто-то хочет разрабатывать закрытую софтину на основе Qt, ему придётся купить проприетарный вариант (который, кстати, ничем не отличается от свободного в лучшую сторону). На мой взгляд, такая позиция существенно лучше, скажем, BSD-подобные лицензии, под которыми распространяется большинство разрабатываемого корпорациями открытого софта: BSD-лицензированный код доступен проприетарщикам на халяву, а за dual-licensed они должны платить деньги (в то время как разработчикам свободных программ тот же код достаётся бесплатно); и возможность распространять модифицированный софт в составе закрытого продукта у проприетарщиков меньше именно в случае двойной лицензии.
[User Picture]
From:[info]mitajchik
Date:December 21st, 2007 - 05:38 pm

Обещанная ссылочка:

(Link)
[User Picture]
From:[info]yushi
Date:December 22nd, 2007 - 01:06 am

Re: Обещанная ссылочка:

(Link)
Угу. Спасибо. В свою очередь, можешь глянуть: [info]d_blogs@lj. У них даже SVN-репозитарий уже есть, правда, пока пустой. =)
From:(Anonymous)
Date:July 12th, 2009 - 10:25 pm

виагра

(Link)
+1