LINUX.ORG.RU

Планы по выпуску GTK+ версии 3

 


1

0

В списке рассылки gtk-devel-list обсуждаются планы выпуска GTK+ версии 3. Основные подготовительные действия, которые необходимо предпринять в текущей ветке:

  • Спрятать все открытые поля структур с помощью макроса GSEAL(). В случае необходимости предоставить новые методы доступа к этим полям. Также должны быть скрыты поля-указатели "priv" на структуры, содержащие закрытые данные. Эти действия уже практически полностью проведены в репозитории git://git.imendio.com/projects/gtk+.git
  • Реализовать закрытые члены класса, что включает изменения в коде GType.
  • Объявить как deprecated публичные данные класса с помощью макроса GSEAL().
  • Поскольку не останется простого способа для доступа к полям класса, а использование g_object_[sg]et() утомительно, необходимо ввести новые методы доступа, вроде g_object_get_int(), *double(), *string() и т.д.
  • Существует множество макросов, таких как GTK_WIDGET_GET_FLAGS(), которые всегда были причиной многочисленных проблем (см. bug #69872). Необходимо реализовать нормальные методы доступа (в виде функций) и избавиться от этих макросов.
  • GtkStyle, без сомнений, самый сложный тип, нуждающийся в скрытии публичных полей, и до релиза должно быть проведено множество исследований.
  • Избавиться от всего кода, объявленного deprecated в 2.x. Это подразумевает все соответствующие виджеты и функции.
  • Удалить все поля структур из публичного API. Есть два способа достичь этого:
    a) переместить все структуры в закрытые заголовки;
    b) переместить структуры в C-файл реализации, но тогда всей библиотеке придётся использовать соответствующие методы доступа.
    Эти варианты ещё обсуждаются.
  • Отключить deprecated-код по умолчанию во флагах компиляции.
Таким образом, версия 3.0 будет готова к релизу. Все приложения, которые собираются для ветки 2.x с макросом GSEAL() и не используют deprecated-кода, будут без проблем собираться для ветки 3.x. Наверное, таким образом разработчики пытаются избежать кошмара миграции, который можно видеть на примере библиотеки Qt.

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

★★★★

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

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

извини что врываюсь в разговор

>Проблема не в том, что в плюсах можно напортачить. А в том, что он создает ВИДИМОСТЬ простоты и защищенности - но на деле этого нет. Куча неявных правил, которые несложно нарушить. С так не обманывает - там сразу видно, что надо быть аккуратным и осторожным.

если вам нужна простота и защищенность, то вам надо замуж за доброго и простого олигарха.

никогда, нигде не встречал что-бы декларировалось и/или обещалось что с++ проще и защищеннее чем что-либо другое. наоборот! на каждом шагу говорится что он сложнее и мощнее других.

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

>>А в том, что он создает ВИДИМОСТЬ простоты и защищенности

Я и смотрю по теме, что Си это реальная простота и защищённость :D

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

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

>>С так не обманывает - там сразу видно, что надо быть аккуратным и осторожным.

В С неявных правил тоже хватает.

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

> Проблема не в том, что в плюсах можно напортачить. А в том, что он создает ВИДИМОСТЬ простоты и защищенности - но на деле этого нет. Куча неявных правил, которые несложно нарушить. С так не обманывает - там сразу видно, что надо быть аккуратным и осторожным.

Это аргумент из серии "дверь+яйца". Не засчитано.

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

> это еще больше не Ъ так делать :)

Ты крепко не прав.

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

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

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

> В С неявных правил тоже хватает.

Разумеется. Но их принципиально меньше - пропорционально синтаксической и семантической сложности.

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

> двери целенаправленно охотятся на гениталии...

Ыыы... тогда надо их дрессировать O_o

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

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

Абсолютно тоже самое можно сказать и про Си. Аргументов больше нет?

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

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

>Абсолютно тоже самое можно сказать и про Си. Аргументов больше нет?

Бред. Си удивительно прост.

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

> Не люблю, когда двери целенаправленно охотятся на гениталии...

Вас это беспокоит? Вы хотите об этом поговорить? У Вас в детстве не было игрушечной двери? :)

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

> Абсолютно тоже самое можно сказать и про Си.

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

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

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

Хорошо, что Вы хотя бы не спросили про игрушечные гениталии. Ценю тактичных людей!

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

>>Нет. На С люди с самого начала аккуратнее. Первый же core заставляет ученика на С начинать думать.

Да-да, сразу бац и великий мыслитель =) Анекдоты на Си, заметь, в оригинале всё-таки на Си, а не на С++ ;)

>>Ошибки такой заковыристости в голом С сделать сложно, практически невозможно

Аа, ну так сразу бы сказал - "не осилил" =)

alex_custov ★★★★★
()

Итак, можно подвести промежуточный итог. С++ сложный, поэтому нужно быть осторожным.

//Капитан О.

З.Ы. Правда непонятно, причем здесь GTK+ 3.0

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

> Да-да, сразу бац и великий мыслитель

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

> Аа, ну так сразу бы сказал - "не осилил" =)

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

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

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

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

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

>Проблема не в том, что в плюсах можно напортачить. А в том, что он создает ВИДИМОСТЬ простоты и защищенности - но на деле этого нет.

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

И уж тем более СЕЙЧАС никто не позиционирует его как "простой и безопасный", при живых-то мОнах да питОнах. Нах :)

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

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

Еще более феерично Loki::Functor<void, LOKI_TYPELIST_1(std::string)> адаптируется к функции с сигнатурой void(*)(const std::string&). Как понятно, const std::string& != std::string. Но Александреску это ПОБОРОЛ.

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

>>Нет, "бац граблями по мордасам - и сразу осторожный человек"

Такого не бывает. Анекдоты на Си и их теперешняя ипостась решительно говорят об обратном.

>>это типично для молодых плюсистов

по себе не суди ;)

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

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

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

А уж если остался -- то для набора опыта в любой области надо пару лет _свои_ шишки понабивать. И плюсы тут совершенно не выделяются.

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

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

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

>Таким образом приходим к тому, что на плюсах должны писать только гуру.

Любым делом должен заниматься только специалист, будь то написание программы или вождение автомобиля, да :)

>Только непонятно, что делать со всем тем кодом, который гуру написал, пока был в учениках.

А что делать с теми водителями, которые вчера первый раз сели за руль? :)

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

> Анекдоты на Си и их теперешняя ипостась решительно говорят об обратном.

Просто анекдоты на плюсах уж слишком "черные"%) Да и синтакс языка нонче такой, что они только "для своих";)

> по себе не суди ;)

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

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

> А что делать с теми водителями, которые вчера первый раз сели за руль? :)

Рядом с такими сидит инструктор из автошколы :)

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

>Не люблю, когда двери целенаправленно охотятся на гениталии...

Осторожнее, у меня богатое воображение! :D

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

Для идеологии Free Software, где все ошибки при достаточном количестве глаз лежат на поверхности, использование C++ вполне приемлемо (если рассматривать приведенные тобой закономерности как аргумент против C++).

С проприетарным софтом - согласен... Если с твоей точки зрения смотреть на кресты - из рук неумудрённого кодера получится глюкавое решето.

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

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

Опять же встаёт вопрос профессионализма. А пихать смарт-поинтеры в каждый хеловорлд....

Эдак можно дойти до того, что "на жабе можно очень долго не получать проблем, просто потому что она многое берёт на себя". Зато потом будут сидеть и смотреть на эту груду неповоротливого го*на и удивляться, почему так тормозит, хотя вроде бы не должно даже с учётом того, что это жаба. Ай-яй-яй, какой плохой язык Java, да? ;)

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

Тормозит - ланн, пусть тормозит. Но на плюсах те же правила приведения типов (которые просто кю, по логике и по объему!) приводят к банально некорректно работающему коду.

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

>Рядом с такими сидит инструктор из автошколы :)

Ви таки считаете, что после 20 часов вождения с инструктором нуб становится асом, который без проблем (для себя и окружающих) ездит самостоятельно? Не делайте мне смешно....

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

какие правила преобразования типов ? может что изменилось но неявно преобразовываются только арифметические примитивы и указатели вверх по иерархии

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

>С проприетарным софтом - согласен...

Небольшая ремарка: проприетарный софт тоже может разрабатываться с использованием принципа open source, просто не в глобальном масштабе, а в пределах компании. Люди читают код друг друга и рецензируют каждый патч. Такое бывает, да, я сам сейчас в такой компании работаю :)

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

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

Ну сейчас вроде правила поменяли и дрессировка водителей значительно удлинилась.

Ну а возвращаясь к нашим программистам: почти в любой конторе есть этап code review, на котором более опытные коллеги могут выловить потенциальные(и кинетические тоже :) ) капканы для гениталий.

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

Через 20 часов вождения (а в более цивилизованных странах и все 40) нуб становится начинающим водителем, который имеет практический и теоретический опыт, нажитый в автошколе. Если практический опыт наживать самостоятельно, то после первой бабушки просто посадят.

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

> Тормозит - ланн, пусть тормозит.

А потом Каганов удивляется, почему всё такое мееедленное...

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

>Тормозит - ланн, пусть тормозит. Но на плюсах те же правила приведения типов (которые просто кю, по логике и по объему!) приводят к банально некорректно работающему коду.

В отдельных случаях "тормозит == не работает". У нас в конторе как раз таки однажды переписывали для одной конторы целиком и полностью на плюсах то, что сначала было написано на Жабе и шевелиться с нужной скоростью просто отказывалось.

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

> А потом Каганов удивляется, почему всё такое мееедленное...

Это тот типец, который объяснял движение воздушных масс от экватора к полюсам центробежной силой? Или каким-то бредом подобного рода, утверждая, что таких простых вещей не знают только плозо учившиеся ПТУшники. Авторитет, ёпт...

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

>Через 20 часов вождения (а в более цивилизованных странах и все 40) нуб становится начинающим водителем, который имеет практический и теоретический опыт, нажитый в автошколе.

Я учился в автошколе и знаю, что это такое. Практического опыта --- 20 часов, но вот тебе права, до встречи на дорогах....

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

Вот бабушке-то счастье от того, что его посадят.... =\

А месте бабушки вполне может оказаться твоя жена, твой ребёнок, твоя мать или ты сам.

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

Ты не согласен с моим мнением, что водитель, официально получивший права является более надёжным и опытным, чем самоучка-нелегал, только что выехавший в первый раз в город?

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

Да, кстати, в некоторых цивилизованных странах после сдачи теоретического экзамена начинающий водитель ГОД имеет право ездить только при наличии на пассажирском сидении опытного водителя, имеющего несколько (не помню точно) лет стажа. И ездить может только вне скоростных трасс. Но не всем же так в жизни повезло, и подавляющее большинство посетителей данного ресурса живут в более других странах, где 20 часов отрулил под присмотром --- и вперёд.

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

> В отдельных случаях "тормозит == не работает".

Обычно это известно на этапе постановки задачи. Тогда умные люди либо выбирают не жабку, либо просто не ставят на этот кусок проекта студентов.

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

> Да, кстати, в некоторых цивилизованных странах

Тут это именно так. Но все на это забивают. Водители с буквой L ездят сами по себе. И на моторвеи выезжают.

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

>Ты не согласен с моим мнением, что водитель, официально получивший права является более надёжным и опытным, чем самоучка-нелегал, только что выехавший в первый раз в город?

Не согласен. Самоучка самоучке рознь. Я видел 15-летних пацанов, водящих ГОРАЗДО лучше бОльшей половины тех, кто получал права вместе со мной. Да что далеко ходить-то: мой младший брат сдавал на права экстерном и сдал с первого раза. И попрошу учесть тот факт, что с таких "умных", не заплативших автошколе, на экзамене спрашивают вдвойне.

Права не являются ни необходимым, ни достаточным условием для того, чтобы считать водителя опытным. Period.

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

>> В отдельных случаях "тормозит == не работает".

> Обычно это известно на этапе постановки задачи. Тогда умные люди либо выбирают не жабку, либо просто не ставят на этот кусок проекта студентов.

Не попадались ситуации, когда решение об используемых средствах принимается не технарями а манагерами? А такое не редкость.

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

Сколько угодно попадались. Но толковый менеджер хотя бы примерно представляет, кому что можно поручить. А бестолковые менеджеры ... Как там Масяня говорил про директора?

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

> Права не являются ни необходимым, ни достаточным условием для того, чтобы считать водителя опытным.

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

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

>> Обычно это известно на этапе постановки задачи. Тогда умные люди либо выбирают не жабку, либо просто не ставят на этот кусок проекта студентов.

>Не попадались ситуации, когда решение об используемых средствах принимается не технарями а манагерами? А такое не редкость.

Да, любителю плюсов манагерство обычно не светит. Манагеры берут плюсовые проекты неохотно, с постными лицами в коридоре обсуждают кого бы взять. "Бери старых системщиков, стыденты векторов и бустов сцуке напихают, п..й все накроется причем по времени близко к релизу".

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

Лучшие манагеры --- это те, которые сами в прошлом были технарями.

P.S.: Не путать с "из любого технаря получится охрененный манагер" --- это совершенно разные вещи, из одного никак не следует другое.

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