Чи існує тенденція до набору інструментів для міжплатформних графічних інтерфейсів? [зачинено]


12

Яка тенденція щодо використання міжплатформних графічних інтерфейсів GUI зараз? Чи більше людей починає використовувати рамки між платформами (наприклад, GTK +, Qt і wxWidgets) або є більше тих, хто використовує більше рамки, пов'язані з платформою (наприклад, какао або WPF)? Він більш-менш застійний? Це як гірка? Як ви думаєте, якою буде тенденція, скажімо, через 5 років?

Ландшафт ОС зміщується з меншою кількістю людей, які використовують Windows (особисте спостереження). Це повинно збільшити попит на набори інструментів між платформами, чи не так?

Редагувати. Також, які (міжплатформні) набори інструментів зростають найбільше, якщо так?

Відповіді:


11

Майже здається, що існує тенденція проти наборів крос-платформ. Якщо люди хочуть писати один раз, бігати куди завгодно, вони, як правило, використовують HTML - роблять веб-сайт. Люди використовують набори інструментів платформи лише тоді, коли рідний зовнішній вигляд дуже затребуваний, наприклад, на iPhone. Отже, якщо вся причина, з якої ви переймаєтесь не-веб-додатком, полягає в тому, щоб набути власного вигляду та вигляду, користуватися набором крос-платформ не має сенсу.

Крос-платформні набори інструментів ніколи не працювали так добре; платформи настільних ПК не настільки схожі, і важко по-справжньому їх абстрагувати. Додавання телефонів та планшетів до суміші робить це ще складніше. У вас закінчується дуже просочена абстракція (див. Http://www.joelonsoftware.com/articles/LeakyAbstractions.html ). Часто простіше просто красиво відокремити свій "двигун" від інтерфейсу та записати інтерфейс окремо на платформу.

Тенденція до популярності Mac, можливо, зробить набори крос-платформ менш популярними, ніж більше. Я думаю, що часто люди використовували набір крос-платформ більше, щоб теоретично перевірити прапорець між платформами, ніж щоб отримати справді хороші результати на всіх платформах. Після того, як ви насправді піклуєтеся про кілька платформ ... ви починаєте бачити, як набори крос-платформ мають мінуси.

Ось допис у блозі від Алекса Пейна щодо цих недоліків: http://al3x.net/2011/01/15/user-hostile-platforms.html

Я думаю, що це говорить про те, що багато великих, популярних кросплатформних додатків вигадують власний крос-платформенний підхід (Firefox, Chrome, Eclipse, OpenOffice.org - приклади, які приходять на думку). Володіючи рамкою, вони можуть пробивати абстракцію, коли це потрібно. Також ці програми мають тенденцію виглядати однаково (і не особливо рідною) на всіх платформах.

Все це говорило, що я не маю фактичної статистики чи нічого. Але я багато пропрацював над GTK + і ознайомився з кодовими базами, включаючи Firefox, Chrome та Eclipse. Тому я бачив технічні проблеми тут з перших вуст.


2
Я б назвав це просто так: "Тенденція кросплатформних наборів інструментів спрямована на провал".
омантика

14

Власне, в останні роки спостерігається тенденція до набору інструментів для багатоплатформних інтерфейсів. Цей інструментарій - HTML / CSS / JavaScript.

Це просто так простіше розробити один раз і побачити, як він працює майже однаково скрізь.

І так, розробки масово віддаляються від робочого столу до Інтернету. Ви самі це бачите.


+1 Для Інтернету як зростаючої тенденції користувальницького інтерфейсу, але я якось не думаю, що це стосується питання ОП.

Тотально погоджуюсь. Ми розробляємо наш додаток IPTV у вікні Settop повністю за допомогою HTML5 / CSS3 / JavaScript. Це майбутнє, ще не одна масивна повномасштабна система C / C ++
Ернеллі

1
Добре згадати, але мене насправді цікавлять набори інструментів для настільних платформ . Все ще підтримується.
Анто

@Anto - можливо, захочете додати це до свого питання. Після читання я взагалі не брав на робочий стіл. Звичайно, я веб-програміст і не розпізнав більшість кадрів, про які ви згадали :)
Marcie

@Anto, ви можете згадати робочий стіл у своєму питанні.
JBRWilkinson

7

Я схильний використовувати кросплатформові набори інструментів, тому що вони мають кращий дизайн, а не тому, що я намагаюся бути кросплатформенним. Наприклад, я працюю над проектами, написаними на C ++, орієнтованими лише на платформу Windows. Чи використовую я win32 або MFC, майже ТІЛЬКИ варіанти, доступні для рідного інструментарію?

Святий fsck ні! Вони майже найгірші купи сміття зі спагетті, які я коли-небудь бачив! Пряме з'єднання системи подій з базовою системою "повідомлень" ОС неймовірно неінтуїтивно і не має виразності, необхідної для швидкого створення програм UI. Абстракції вищого рівня, які в даний час забезпечуються лише платформами інструментів між платформами, абсолютно необхідні для цього завдання.

Це лише один приклад. Я міг би заграти і в списку речей, які краще виконувати на платформах інструментів між платформами. Справа в тому, що графічні інтерфейси більше схожі між собою, ніж окремі. Наприклад, між віконною програмою для Windows порівняно з програмою на Linux є дуже мало. Види, які ви робите при створенні програм інтерфейсу, практично завжди однакові незалежно від того, на яку ОС ви орієнтуєтесь ... і лише незначні відмінності між архітектурами, як телефон / palm та робочий стіл. Поле просто зосередилось на міжплатформних методологіях, тому що: а) це потрібно багатьом людям; б) це все одно!


0

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

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

Один із способів використання можливостей, пов'язаних з платформою, - це мати щось на зразок #if PLATFORM_FEATURE_Xконструкції навколо всіх конкретних кодів або еквівалентних перевірок виконання, що призводить до розриву коду. Це стає стомлюючим досить швидко, оскільки варіанти однієї платформи потребують конкретного керування. Наприклад, деякі XBox v1 не мали жорсткого диска, тому ігри, що використовують інструменти крос-платформи, не могли використовувати його для кешування, порівняно з версією ПК, де ви можете гарантувати жорсткий диск.

Для додатків для настільних ПК / продуктивності зовнішній вигляд платформи здається важливим, але багато додатків мають свій власний стиль, тому "без проблем виглядати однаково на всіх платформах, наприклад, програмах, створених з AIR.

Постачальники обладнання, такі як Apple, Sony, Nintendo та Toshiba, захочуть забезпечити, щоб їхні продукти чимось відрізнялися від конкурентів, наприклад Touch, Accelerometers / Gryoscopes, Blu-Ray, 3D-дисплей. Навряд чи знайдеться коли-небудь платформа з усіма можливостями всіх конкурентів, зведених в одного (через вартість і складність), тому один виграє.

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