LINUX.ORG.RU

Я в восторге от будущего GNOME


0

0

"Около полутора лет назад я видел, что сообщество GNOME просто остановилось на месте. Я был очень обеспокоен тем, что развитие GNOME утратило динамику и все выходящие релизы были очень скучны и фактически не несли новой функциональности. Теперь я думаю, что я ошибался :) Я хочу опубликовать список некоторых вещей, которые реализовываются на данный момент и которые очень интересны. Я думаю, что это будущее GNOME" - говорит Райан Лорти (Ryan Lortie) и рассказывает о dconf, epiphany + webkit, gbus, gdm rework, gtk+/glib awesome, gvfs, policy kit и еще массе нововведений.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от Qui-Gon

> Стандартный сценарий - написание крутого софта платного плюс облегченная версия GPL - как скажем старофис-опенофис и т.п. нереально на Qt.

Это почему это, кстати?

sv75 ★★★★★
()

да нормальная штука этот гном. тока файлманаджер у них дурацкий и гтк (или кайро?) тормознутый, когда они это полечат, тогда все претензии исчезнут.

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

>Если нет, тогда чего ты прицепился к moc?

ну господа кдешные тролли же прицепились к vala =)

>Кстати, примеры кодогенераторов и средств метапрограммирования на Си - в студию.

gnome object builder, genmarshal из glib (и ещё там какие-то тулзы были), vapigen (да-да, это из vala), какая-то фигня в wine есть, cpp (это который препроцессор), ylex/flex/bison etc.

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

>Тоже самое можно сказать про человека решившего писать GTK+ _аппликухи_ на Сях. Ибо иначе как "махровым мазохистом" его назвать нельзя.

расскажи о неимоверной тяжести рисования фейса в glade с последующим забиванием кода в сгенерированные методы.

>От одних воспоминаний, как приходиться извращаться для использования GtkTreeView из того же Lisp'а (LambdaGTK)

какие там извращения? И чем не устроил cell-gtk (CLOS вроде логичнее юзать)

>Это по поводу лёгкости прикручивания левых языков к Cишным библам, особенно когда претит писать в Сишном же стиле, что изврат.

таки ты хочешь сказать, что тяжело прикручивается? Предлагаю вспомнить, через какую жопу биндили жабу к Qt. Если не помнишь - я тебе напомню - "скрытое окно, с невидимымыи виджетами" =))))

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

>А причём здесь проблемы языка к _компилятору_ ?

ну вообще-то это именно проблемы языка. Язык может быть сколько угодно хорошим и замечательным, но если у него жопа с компиляторами/интерпретаторами, то УПС. А то и php можно хорошим языком назвать, только вот с реализациями ему сильно не повезло =))))

>Так можно сказать что лисп тормозззз из-за clisp, забывая про существование sbcl,

скорость тут вообще как-бы ни при чем, если только она различает разные реализации.

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

>Конк _дождался_ полной загрузки

Как эта его особенность выглядит визуально - я продемонстрировал. Это ненормально, и это не IMHO

>Опера сделала всех.

всех делает elinks, только вот он с js работает ещё хуже оперы =)

>Может у тебя с KDE взаимная нелюбовь ?

угу. эгрегор/астрал/порча, все дела

>PS. Cel 2.6, 512, Gentoo. USE="-gnome"

P-M 1.6Ghz (но в основном 800MHz), 512 Ubuntu Gutsy Gibbon :)

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

>У меня под рукой сырцы VLC. сишный код в нем написан ручками более чем полностью.

вполне оправдано

>The old Bison-based C and Objective-C parser has been replaced by a new, faster hand-written recursive-descent parser.

рекурсия рулит. Как напишут лекс, генерирующий рекурсивные парсеры - hand-written выкинут нахер. И, кстати, парсер - это далеко не самая сложная часть компилятора.

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

>>Тоже самое можно сказать про человека решившего писать GTK+ _аппликухи_ на Сях. Ибо иначе как "махровым мазохистом" его назвать нельзя.

>расскажи о неимоверной тяжести рисования фейса в glade с последующим забиванием кода в сгенерированные методы.

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

Скажу тебе по секрету, я занимаюсь вычислительной геометрией, а в этой области от языка требуется как эффективность, так и удобства (он должен как минимум уметь арифметические опереторы перегружать). И в этой области ты со своим Си будешь выглядить как сирожопый клоун нищеброд, который вместо простого и понятного p = vx*cos(t)+vy*sin(t); упорно пишет нечитаемую бредятину аля Add(p,Mul(vx,cos(t)),Mul(vy,sin(t)));

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

>не понял, а что мешает сделать в Си p = vx*cos(t)+vy*sin(t);? религия чтоль?

а vx и vy у него походу векторы, соответсвтенно + перегружен. Вот фиг поймешь =)

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

да какая в попу разница на чем гуи писать? В нормальных серьезных проектах гуй - это 1-10 процентов труда и кода. И из-за облегчения этих 10 максимум процентов 90 процентов своего труда отдать тролтекам - да гори оно синем пламенем. Поэтому и нет на Qt нормального некоммерческого или полукоммерческого софта ( с платной и свободной версиями). Зато очень много фигулек тиа амарока - которые представляют собой жырную гуишку повешенную вокруг примитивной функционалтьности а-ля mpg123. Вот этот отстой пишется на Qt - потому как в нем содержания - 1 процент а гуя все 99.

Поэтому когда линукс придет таки на рабочие места - а он придет - то там будет гном. Как надежный и функциональный раьочий инструмент. А кеды останутся уделом онаирующих эстетствующих красноглазиков которым слово работа неведомо зато времени копатся в бездонном болоте кедских настроек хоть отбавляй.

А технический разрыв между Qt и gtk все сокращается - потому как линукс идет массы а серьезные игроки рынка - сан, ибм, новел, сап - свой выбор сделали в пользу gtk и lgpl. А у этих парней даже мизинец толще чем у троллтеков член в эрегированно состоянии - поэтому как тролли ни пыжатся а и место вс больше и больше у параши|. То есть на мобильных устройствах которые пока серьезных дядек не интересуют и они отданы троллям на откуп.

А десктоп - если год назад кеды казались верхом совершенства а гном - навозом, нынешний гном дает пользователю все что ему нужно и еще чуть-чуть сверху. И кроме амарока о котором так стонут кде-секи ( ну не могу я понять чем он так хорош, меня сложность , ибыточность и негибкость его интерфейса задрала даже в кедах) - другой причины побуждающей гномера перейти на кде просто нет.

Qui-Gon ★★★★★
()
Ответ на: комментарий от miroku108

>он должен как минимум уметь арифметические опереторы перегружать

вот к чему приводит перегруз - ты можешь наблюдать прямо здесь. Твой год нихера не понятен =)

>И в этой области ты со своим Си будешь выглядить как сирожопый клоун нищеброд

ну-ну

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

в таком случае это в Си вообще по другому можно сделать :))

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

>да какая в попу разница

"понимаешь, Петька, есть один нюанс" (ц)

=)

geek ★★★
()
Ответ на: комментарий от Qui-Gon

>И кроме амарока о котором так стонут кде-секи ( ну не могу я понять чем он так хорош, меня сложность , ибыточность и негибкость его интерфейса задрала даже в кедах) - другой причины побуждающей гномера перейти на кде просто нет.

Есть. Это великий и ужасный Konqueror. Если частично его как файл-менеджер подменяет Nautilus, то альтернативы ему как браузеру в Гноме просто нет. Ну прямо, не называть же альтернативой Огнелисую тормозиллу. Она секунд пять запускается на 2 ГГц атлоне с полугигабайтом памяти (сборка не моя - сразу оговорюсь). А Конь - практически мгновенно (без предзагрузки). Да и работает быстрее, если вкладок 20 открыто.

На самом деле меня очень заинтриговал проект epiphany/webkit. Если там что-то получится (будут готовые сборки или хотя бы просто готовые исходники, чтобы не запускать все это через одно место, как написано по ссылке из статьи), то снова поставлю Гном "на попробовать". Может, уже и основное меню перестанет тормозить при выборе пунктов (по-моему, у этой проблемы уже скоро длиннющая борода вырастет, а воз и ныне там. Почему в KDE, IceWM, WindowMaker оно не тормозит??? Или это тоже специально заложено "на благо пользователю", чтобы не спешил и вдумчиво выбирал пункты?).

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

>Ну прямо, не называть же альтернативой Огнелисую тормозиллу.

гномовская епифань по скорости уделывает конк, как стоячего

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

>Конь - практически мгновенно (без предзагрузки).

звездишь как дышишь. Без предзагрузки конк запускается дольше фф =)

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

конк на сколько понимаю в кде запускается быстрее, потому как он уже при старте кде подтягигвается. в OpenBox конк на много дольше стартует.

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

> вот к чему приводит перегруз - ты можешь наблюдать прямо здесь. Твой год нихера не понятен =)

он просто вырван из контекста. Если добавить контекст то уже будет доступно для любого уровня непонимания

Point CirclePoint(const Point &o, const Point &vx, const Point &vy, double angle) { return o + vx * cos(angle) + vy * sin(angle); }

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

>>гномовская епифань по скорости уделывает конк, как стоячего

Точно так же тормозит, как и ФФ. Ну, может, чуть побыстрее. Не в обертке дело, а в движке. Я уже написал, что с вэбкитом у них может получиться вещь. Это, пожалуй, лучший движок для браузера (в сравнении с ФФ и Оперой (об осле вообще лучше не заикаться)).

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

>в KDE есть предзагрузка кусков конка

Это не куски конка, а библиотеки КДЕ, на которых он написан. Это не то же самое, как предзагруженное приложение. В Гноме так же быстро работает, наверное только dillo, только где он сейчас?

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

>Это не куски конка, а библиотеки КДЕ, на которых он написан.

именно куски. kio_http, манагер кеша и ещё что-то.

И в кде я конк пускал - такое же тормозное угребище. От "задумчивости" при открытии незакешированного сайта его никакая предзагрузка не спасает.

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

>Точно так же тормозит, как и ФФ.

я скринкаст выкладывал. Полюбуйся, как оно "тормозит". Потом вернись и извинись за враньё :)

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

Да какая разница как конк запускается - сайты с которыми я работаю посылают конк на муй независимо ни от чего. Они корпооративные и знают нетшкаф, огнелиса и осла. Все остальное включая конк и оперу идут в пешее эротическое.

Потом у меня огнелис летает. Потому что он гномосвский - а гном у меня в памяти. Поэтому на соей ситсеме лис стартует пулей а конк гондарсит дис полчаса. У вас обратная ситуация - в памяти кеды и конк летает а лис тормозит.

Но поскольку для меня конк бесполезен - это еще одна причинаиметь на десктопе гнома.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Darkman

> От одних воспоминаний, как приходиться извращаться для использования GtkTreeView из того же Lisp'а (LambdaGTK) до сих пор мурашки по коже.

Просто LambdaGTK -- это 1:1 автогенерируемый биндинг. Попробуйте clg -- вот это gtk+ по-лисповски.

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

гном полнейший ацтой только по тому, что когда хочешь установить gedit, по зависиомстям ставится весь гном! мать его, лучше бы новый гном вообще не выпускали.

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

Тебе и говорят, что 1:1 биндинги с С никому не нужны, все через промежуточный слой, который ручками писать надо.

Доказывать преимущества С в гуёвых прикладухах может только фанатичный маразматик.

anonymous
()

Всем фанаам КДЕ: Когда я смотрю на кеды, то вижу Микрософт: перебор ненужных красявостей, делающих интерфейс обсолютно не юзабильными. В гноме такого нет. Единая концепция и красивый интерфейс без ненужных выпендронов. Теперь по теме: Ждем когда это все раелизуют. Думаю, гном станет еще удобнее.

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

>Тебе и говорят, что 1:1 биндинги с С никому не нужны

ну-ну. не-ооп языков не существует, да?

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

ручками пишут только идиоты вроде тебя

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

> расскажи о неимоверной тяжести рисования фейса в glade с последующим забиванием кода в сгенерированные методы.

Ога. Только вот задача была в том чтобы интерфейс был _динамическим_ и Glade (не надо считать оппонента за идиота, по libglade я в курсе) не подходил.

> какие там извращения? И чем не устроил cell-gtk (CLOS вроде логичнее юзать)

Он позднее появился. Плюс давайте не забывать, что на текущий момент там 168K промежуточного API против 252K собственно биндинга (при всей мощи лисповского MOC,а сам CELL это именно чистый MOC, это ой как не мало).

> таки ты хочешь сказать, что тяжело прикручивается?

Хочу сказать что _очень_ тяжело прикручиваеться, если не принуждать писать в стиле портабельного ассемблера.

> Если не помнишь - я тебе напомню - "скрытое окно, с невидимымыи виджетами" =))))

AFAIR это ты с gtk-qt-engine перепутал, а если нет, то извини - если по другому тулкит не позволяет сменить механизм отрисовки, то это проблемы тулкита. Не так-ли ?

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

> ну вообще-то это именно проблемы языка. Язык может быть сколько угодно хорошим и замечательным, но если у него жопа с компиляторами/интерпретаторами, то УПС. А то и php можно хорошим языком назвать, только вот с реализациями ему сильно не повезло =)))

Ты еще Аду хреновым языком назови из-за того что полностью поддерживающие стандарт реализации появились лет, как минимум, через пять.

> скорость тут вообще как-бы ни при чем, если только она различает разные реализации.

А дело и не в скорости, просто сложно поддерживать _всю_ спецификацию Common Lisp которая насчитывает 1048 страниц (CLTL2). И это без Meta Object Protocol, книга по которому сопоставимой толщины.

Что, обзовём CL хреновым языком ? Да тебя сожрут с потрохами, и я буду в первых рядах.

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

> рекурсия рулит. Как напишут лекс, генерирующий рекурсивные парсеры - hand-written выкинут нахер. И, кстати, парсер - это далеко не самая сложная часть компилятора.

Сээр не различает bison и flex ? Ты себе хотя бы представляешь сложность ручного написания парсера по сравнению с генерацией его бизоном ? Ну напиши парсер _GNU_GCC_ (со всеми гнутыми расширениями) ручками так, чтобы он был сопоставим по скорости. Плохо не станет ?

Кстати, расскажи ка мне, причём flex к рекурсивным парсерам.

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

> понял, а что мешает сделать в Си p = vx*cos(t)+vy*sin(t);? религия чтоль?

А если vx и vy вектора ?

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

>> Если я захочу писать открытый софт под линукс, то именно я и буду решать какой тулкит мне использовать

> если ты решишь написать тулкит на жабе - только жабакодеры и будут его использовать. Доступно, кретин?

Работающие биндинги к Qt имеются для Python, Ruby, Mono. Поэтому, Geek, ты все-таки редкий хам и чудак. Бай-бай.

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

> вот к чему приводит перегруз - ты можешь наблюдать прямо здесь. Твой год нихера не понятен =)

Очень даже понятен, если человек возьмёт за труд посмотреть как задекларированы переменные vx и vy.

> ну-ну

Ни юродствуй. Именно так ты и будешь выглядеть.

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

> В гноме такого нет.

Да, там МакОС.

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

> номовская епифань по скорости уделывает конк, как стоячего

А по фичам ?

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

> звездишь как дышишь. Без предзагрузки конк запускается дольше фф =)

"Пи$дёж и провокация" (C). Geek, у тебя, походу, видимо, специально для тебя тормознутый и глючный KDE.

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

> в KDE есть предзагрузка кусков конка

А про это все в курсе. Может ещё скажешь что Фокс и памяти жрёт меньше ?

Darkman ★★★
()
Ответ на: комментарий от Qui-Gon

> Да какая разница как конк запускается - сайты с которыми я работаю посылают конк на муй независимо ни от чего. Они корпооративные и знают нетшкаф, огнелиса и осла. Все остальное включая конк и оперу идут в пешее эротическое.

"На муй" ты можешь послать только этих "корпооративные" дизайнеров. Ибо нормальные люди тестируруют сайты подо всё что шевелится; окромя elinks сотоварищи.

> Потом у меня огнелис летает. Потому что он гномосвский - а гном у меня в памяти.

Нука нука, это в каком месте Фокс Гномовский ?

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

> Может лучше амарок под GTK2+ ^^

Чур меня. Не надо похабить единственный нормальный плейер.

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

> Просто LambdaGTK -- это 1:1 автогенерируемый биндинг. Попробуйте clg -- вот это gtk+ по-лисповски.

Я в курсе. Только это был ответ на заявление про простоту написания биндингов к Сишным библам; выше по треду даны данные по обьёму промежуточного API layer в cells-gtk.

PS. А вот сам CELLS просто сказка, такое, наверно, только в Smalltalk реализовать можно.

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

> ну-ну. не-ооп языков не существует, да?

А при чём здесь OOP ? Любой язык отличающийся парадигмой от портабельного ассемблера потребует руками написанного API layer'а.

> ручками пишут только идиоты вроде тебя

Аргументы будут ? Или переходим на личности ?

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

>А держать KDE и все равно пользоваться приладами gtk имхо изврат.

Изврат - это выбирать DE по тулкиту.

>Всем фанаам КДЕ: Когда я смотрю на кеды, то вижу Микрософт: перебор ненужных красявостей, делающих интерфейс обсолютно не юзабильными.

Начни перечислять.

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

> какие там извращения?

Вот код (при этом надо учесть что там ещё и отдельный Сишный хелпер есть):

(defun gtke::tree-view-append-column (tree col-number title cell-renderer attribute
									  &key (expand gtk:+true+))
  (gtk:tree-view-append-column tree
							   (gtk:with-widget column (gtk:tree-view-column-new)
								 (gtk:tree-view-column-set-title column title)
								 (gtk:tree-view-column-pack-start column
																  cell-renderer
																  expand)
								 (gtk:tree-view-column-add-attribute column
																	 cell-renderer
																	 attribute
																	 col-number))))

(defun gtke::generate-list-columns (tree-view columns
									&key (default-renderer #'gtk:cell-renderer-text-new)
									(default-attribute "text"))
  (let ((index 0)
		(len (length columns)))
	(with-alien ((columns-types (* int) (make-alien int len)))
	  (mapcar #'(lambda (l)
				  (setf (deref columns-types index) (second l))
				  (incf index))
			  columns)
	  (let ((list-store (gtk:list-store-newv len columns-types)))
		(gtk:tree-view-set-model tree-view list-store)
		(setf index 0)
		(mapcar #'(lambda (l)
					(gtke::tree-view-append-column tree-view index (first l)
												   (if (null (fourth l))
													   (funcall default-renderer)
													   (funcall (fourth l)))
												   (if (null (third l)) default-attribute (third l)))
					(incf index))
				columns)
		list-store))))
		
(defun gtke::string-list-store-values (list-store iter values-list)
  (let ((index 0))
	(mapcar #'(lambda (l)
				(let ((value (cond
							   ((stringp l) l)
							   ((numberp l) (format nil "~A" l))
							   ((typep l 'boolean) (if l "YES" "no"))
							   (t "***UNKNOWN***"))))
					(gtk:list-store-set list-store iter index value -1) (incf index)
				  ))
			values-list)))

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

Сорри, форматирование.

(defun gtke::tree-view-append-column (tree col-number title cell-renderer attribute
                                      &key (expand gtk:+true+))
  (gtk:tree-view-append-column tree
                               (gtk:with-widget column (gtk:tree-view-column-new)
                                 (gtk:tree-view-column-set-title column title)
                                 (gtk:tree-view-column-pack-start column
                                                                  cell-renderer
                                                                  expand)
                                 (gtk:tree-view-column-add-attribute column
                                                                     cell-renderer
                                                                     attribute
                                                                     col-number))))

(defun gtke::generate-list-columns (tree-view columns
                                    &key (default-renderer #'gtk:cell-renderer-text-new)
                                    (default-attribute "text"))
  (let ((index 0)
        (len (length columns)))
    (with-alien ((columns-types (* int) (make-alien int len)))
      (mapcar #'(lambda (l)
                  (setf (deref columns-types index) (second l))
                  (incf index))
              columns)
      (let ((list-store (gtk:list-store-newv len columns-types)))
        (gtk:tree-view-set-model tree-view list-store)
        (setf index 0)
        (mapcar #'(lambda (l)
                    (gtke::tree-view-append-column tree-view index (first l)
                                                   (if (null (fourth l))
                                                       (funcall default-renderer)
                                                       (funcall (fourth l)))
                                                   (if (null (third l)) default-attribute (third l)))
                    (incf index))
                columns)
        list-store))))
        
(defun gtke::string-list-store-values (list-store iter values-list)
  (let ((index 0))
    (mapcar #'(lambda (l)
                (let ((value (cond
                               ((stringp l) l)
                               ((numberp l) (format nil "~A" l))
                               ((typep l 'boolean) (if l "YES" "no"))
                               (t "***UNKNOWN***"))))
                    (gtk:list-store-set list-store iter index value -1) (incf index)
                  ))
            values-list)))

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