Чому Canonical обирає QT над GTK для наступного покоління Unity?


33

Стільки написано, що я дещо розгублений, але якщо я не помиляюся, Canonical будує наступне покоління Unity для мобільних пристроїв з Qt, і найближчим часом робочий стіл також буде перенесений на qt.

Мені просто хотілося дізнатися технічні та / або політичні причини, що зумовлюють це рішення, і які наслідки це може означати для існуючих на сьогодні настільних додатків Ubuntu.


3
Програмування в GTK - це величезна біль, тому що він побудований за допомогою GObject, що є жалюгідною спробою підключити концепції OO до C. Qt просто використовує C ++, який підтримує OO (та інші парадигми) поза коробкою. C ++ може не бути ідеальним, але GObject просто встановлює планку soooo дуже низькою.
weberc2

Відповіді:


23

Ви можете знайти відповідь у списку розсилки та у блозі Марка Шуттлворта . Це повідомлення, можливо, найкраще відповідає на це:

У рамках нашого планування Natty + 1 нам потрібно буде знайти певний простір на компакт-диску для бібліотек Qt, і ми оцінимо додатки, розроблені разом із Qt, для включення на компакт-диск та встановлення за замовчуванням Ubuntu.

Простота використання та ефективна інтеграція є ключовими цінностями нашого досвіду користувачів. Ми дбаємо про те, щоб обрані нами програми були гармонійними між собою та системою в цілому. Історично це означало, що ми дуже віддавали перевагу програмам, написаним за допомогою Gtk, оскільки певна гармонія за замовчуванням виходить із використання того ж інструментарію розробників. Однак, OpenOffice та Firefox існують з самого початку, Gtk, очевидно, не є абсолютною вимогою. Зараз я сперечаюся, що це важливі значення, а інструментарій - це лише засіб для досягнення цієї мети. Ми повинні оцінювати додатки виходячи з того, наскільки добре вони відповідають вимозі, а не шкодити їм на основі технічного вибору, зробленого розробником.

Оцінюючи додаток для встановлення за замовчуванням Ubuntu, ми повинні запитати:

  • це вільне програмне забезпечення?
  • це найкраще в класі?
  • інтегрується він із системними налаштуваннями та налаштуваннями?
  • інтегрується він з іншими програмами?
  • чи доступний він людям, які не можуть використовувати мишу чи клавіатуру?
  • чи виглядає це та чи відповідає цьому решта системи?

Звичайно, вибір Qt розробника не впливає на перші два. Сам Qt був доступний в GPL вже давно, а останнім часом став доступний під LGPL. І є багато найкращого класу програмного забезпечення, написаного з Qt, це дуже спроможний інструментарій.

Однак системні налаштування та налаштування давно стали причиною тертя між Qt та Gtk. Інтеграція з налаштуваннями та налаштуваннями системи є критично важливою для розуміння програми "належність" до системи. Це впливає на здатність керувати цим додатком за допомогою тих же інструментів, якими користуються для керування всіма іншими програмами, і на різні види налаштувань та налаштувань, які користувачі можуть мати у програмі. Традиційно це проблема з програмами Qt / KDE в Ubuntu, оскільки всі програми Gtk використовують централізований магазин налаштувань, а додатки KDE роблять все по-іншому.

Для вирішення цього питання Canonical керує розробкою прив'язок dconf для Qt, щоб можна було написати додаток Qt, що використовує ті ж рамки налаштувань, що і все інше в Ubuntu. Ми підписали контракт з Райаном Лорті, який, очевидно, добре знає dconf, і він буде працювати з деякими людьми в Canonical, які використовують Qt для роботи з розробкою на замовлення для клієнтів. Ми впевнені, що результат буде природним для розробників Qt та повним вираженням семантики та стилю dconf.

Команда Qt давно добре працювала в широкій спільноті Ubuntu - у нас велике представництво Qt в UDS кожні півроку, команда Kubuntu має глибокий досвід та інтерес до упаковки та обслуговування Qt, є багато хорошого технічного обміну між Qt вище за течією та різними частини спільноти Ubuntu, включаючи Canonical. Наприклад, Qt люди працюють над інтеграцією uTouch.

Я б провів різницю між "Qt" та "KDE" в очевидних місцях. Додаток KDE нічого не знає про конфігурацію системи dconf і тому не може легко інтегруватися з робочим столом Ubuntu. Тому ми не збираємось пропонувати Amarok незабаром замінити Банші! Але я вважаю, що цілком правдоподібно, що dconf, коли він має великі прив'язки Qt, вважатиметься спільнотою KDE. Є кращі люди, щоб вести цю розмову, якщо вони хочуть, тому я не буду далі просувати цю ідею. Тим не менше, якщо додаток KDE навчиться говорити dconf на додаток до стандартних механізмів KDE, які повинні бути простими, це було б кандидатом на встановлення за замовчуванням Ubuntu.

Рішення бути відкритим для Qt жодним чином не є критикою GNOME. Це святкування різноманітності та складності вільного програмного забезпечення. Ці цінності простоти використання та інтеграції залишаються спільними цінностями з GNOME та чудовою основою для співпраці з розробниками та учасниками проекту GNOME. Можливо, сам GNOME сприйме Qt, можливо, ні, але якщо це станеться, тоді наша готовність прокласти цей слід буде внеском у лідерство. Набагато простіше створити яскраву екосистему, якщо прийняти певну різницю від канонічного, так би мовити. Наша робота з дизайну зосереджена навколо GNOME, з налаштуваннями та налаштуваннями поточного фокусу, коли ми переходимо до GNOME 3.0 та gtk3.

Звичайно, це прекрасна можливість для тих, хто забавлятиметься від таких відносин, але на мою думку, найважливіше - це міцні стосунки з людьми, які насправді пишуть заявки під банером GNOME. Ми хочемо бути найкращий спосіб , щоб зробити важку роботу тих вільних розробників програмного забезпечення незалежно від того , з допомогою якого ми маємо в виду, кращий спосіб гарантувати , що робить реальну різницю в мільйони життів кожен день, і кращий спосіб з'єднати їх їх користувачів.

Хорошим людям у Trolltech, нині Nokia, які зробили Qt чудовим інструментарієм - дякую. Для розробників, які бажають використовувати його та бути частиною досвіду Ubuntu - ласкаво просимо.


6
Востаннє я перевіряв QT абсолютно безкоштовно. Це раніше не було, але зараз все безкоштовно.
Маріо Каменяк

5
@VassilisGr Qt вже деякий час є сумісним із GPL (що робить його таким же безкоштовним, як і інші речі GPL). Однак, щоб Qt взяла кодовий внесок від громади, цей внесок повинен надаватися на підставі подвійної ліцензії, що дозволяє будь-якій компанії, яка є власником Qt сьогодні, продати ліцензію, яка не є GPL, якщо хтось їх сплатить. Що в визначенні Stallman "Безкоштовно як у програмі Freedom" не є проблемою (доки ми вважаємо лише отримання програмного забезпечення від людей, які не платили і, таким чином, використовують GPL ...) Ubuntu не платить, і таким чином бути GPL, що Linux все одно ... так чудово.
HostileFork

14

GTK + не підтримує незалежність роздільної здатності, сучасні мобільні пристрої мають надвисоку щільність пікселів. Якщо ви запускаєте додаток GTK + на екрані мобільного телефону, всі елементи інтерфейсу користувача будуть настільки малі, щоб бути непридатними.

Це була відкрита помилка на GTK + з 2008 року до її закриття в 2014 році, "у нас є підтримка в масштабі привіт-dpi - це не зовсім те саме, але досить близько, щоб зробити цю помилку застарілою" коментар.

Коли було випущено GTK + 3, проект мав ідеальну можливість додати незалежність резолюції, оскільки вони все одно порушували сумісність. Вони вирішили не робити, і зараз їм справді вже пізно.

У GTK + дорожній карті незалежність роздільної здатності планується випустити після 4.0, тож вони вийдуть 4.0, тоді основний реліз після цього матиме. Якщо вони дотримуються цього плану, тоді навіть GNU / Linux доведеться відмовитися від GTK +, оскільки високі настільні монітори DPI та монітори ноутбуків вже доступні і вже зараз стануть новим нормальним.


2

Я переймаюся з технічних / прагматичних причин: Nokia придбала Trolltech і багато інвестувала в QT. Його легка вага та багаторічна оптимізація до мобільної платформи. Незалежно від вашої нинішньої думки про Nokia, N900 був на багато років випереджає свій час ... і він базувався на debian / QT ... але дорого. Однак я не знаю справжніх рішень.


2
QT також значно більш портативний. Більше грошей на долар для розробника, який створює додаток за допомогою QT, оскільки вони знайдуть вбудовану підтримку для багатьох, ще багатьох ОС - Android, Blackberry, Windows Mobile, WebOS серед інших. і звичайно Mac OS та Windows. QT також виграє від значно більшої кількості учасників.
mike stewart

1

Блог Ubuntu CTO Matt Zimmerman також є інформативним:

Саме в цьому дусі я недавно думав про Qt. Ми хочемо зробити швидку, легку та безболісну розробку додатків для Ubuntu, а Qt - це варіант, який варто вивчити для розробників додатків. Роздумуючи над цим, я зрозумів, що між сильними сторонами Qt та деякими новими напрямками в Ubuntu існує досить багато спільного:

  • Qt має давню історію використання ARM, а також x86 , завдяки популярності на вбудованих пристроях. Споживчі товари будуються з використанням Qt на ARM вже більше 10 років. Ми пропонуємо продукти Ubuntu для ARM вже майже два роки, і 10.10 підтримує більше плат ARM, ніж будь-коли, включаючи дошки від Freescale, Marvell та TI. Qt додає оптимізацію ARMv7 для вигоди останніх фішок ARM. Ми робимо це для того, щоб запропонувати виробникам оригіналу вибір обладнання, без шкоди для вибору програмного забезпечення. Qt зберігає цей самий вибір для розробників додатків.
  • Qt - це платформа міжплатформних додатків, яка має офіційні порти для Windows, MacOS та інших, а також експериментальні порти спільноти для Android, iPhone та WebOS. Сильна підтримка платформ була одним з оригінальних принципів Qt, і це свідчить про зрілість офіційних портів. Оскільки Ubuntu Light встановлюється на комп’ютери під керуванням Windows та Ubuntu One на Android та iPhone, нам потрібна сумісність з іншими платформами. Також існує велика кількість розробників, які вже знають, як орієнтуватися на Windows, які також можуть охопити користувачів Ubuntu, вибравши Qt.
  • Qt має досить зрілу систему вводу сенсорного введення , яка тепер підтримує мультитач та жести (включаючи QML), хоча вона повна лише для Windows 7 та Mac OS X 10.6. Тим часом, Canonical співпрацює з спільнотою, щоб розробити низькорівневі рамки мультитач для Linux та X11, на користь Qt та інших наборів інструментів. Ці зусилля врешті-решт зустрінуться в середині.

В цілому, я думаю, що Qt може запропонувати людям, які хочуть розробляти додатки для (і в) Ubuntu, особливо зараз. Він вже використовує популярні кросплатформенні програми, такі як VLC, не кажучи вже про весь дистрибутив Kubuntu. Я пропустив це, коли це сталося минулого року, але Qt тепер доступний або під LGPL 2.1, або GPL 3.0, що повинно зробити його придатним практично для будь-якого додатку Ubuntu. Він має сильну комерційну підтримку, а також велику спільноту розробників. Звичайно, жодне єдине рішення не задовольнятиме потреб усіх розробників, і Ubuntu з цієї причини підтримує безліч наборів інструментів та фреймворків, але Qt здається чудовим інструментом для нашої програми.

Стаття Ars Technica, що обговорює цю публікацію в блозі, містить деякі відомості:

Qt може залучити сторонніх розробників до Linux

Хоча Gtk + все ще має цінність і є ряд причин продовжувати використовувати його для створення власного програмного забезпечення Linux, Qt тепер очевидний вибір для ISV, які орієнтовані на кілька платформ. Qt дозволяє надзвичайно легко підходити до зовнішнього вигляду базової платформи або створювати повністю користувальницький користувальницький інтерфейс, який оптимально підходить до цільового пристрою або форм-фактора.

Оскільки Nokia та Intel пропонують MeeGo широкому спектру пристроїв, це приверне увагу до основних виробників комерційного програмного забезпечення. Цим програмним компаніям було б досить просто доставити свої мобільні програми Qt на робочий стіл Linux, використовуючи той самий код, який вони використовують на MeeGo. Qt розроблений спеціально, щоб зробити це просто. Це було б величезним виграшем для настільних Linux, оскільки воно принесло б сторонні додатки, які інакше не були б доступні.

Варто зазначити, що деякі відомі виробники мобільних програм вже охоче охоплюють Qt завдяки підтримці Nokia для цього інструментарію. Наприклад, компанія мобільних потокових відео Qik працює над експериментальним портом своєї популярної програми на базі Qt з метою залучення її до MeeGo.

Автор статті є творцем програми Gwibber IM, тому він має певний досвід розробки графічних інтерфейсів для Linux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.