Чи все-таки варто вивчити розробку настільних gui? [зачинено]


18

Останні кілька років усі серйозні проекти, над якими я працював, були або на базі Інтернету, або не графічним користувальницьким інтерфейсом (послуги, сценарії командного рядка тощо). Я можу зібрати додаток WinForms або зробити простий WPF, коли це потрібно, але я ніколи не заглиблювався в деякі API нижчого рівня, такі як MFC або QT.

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


5
Розробка додатків для настільних програм - це чудово, але для любові до Knuth не бідайте з MFC. Все, що вам знадобиться для 95% завдань додатків для настільних ПК Windows, це WinForms або WPF / XAML. Інші 5% робочих місць ви не хочете мати.
Адам Кросленд

1
@Adam: +1 для "Інших 5% робочих місць, яких ти не хочеш мати". - Такий справжній. :)
Столи Бобі

Відповіді:


38

Я б сказав так, так і є. Є якийсь ефект маятника в розробці програми. Спочатку все бігало прямо за комп’ютером. Потім, коли комп'ютер став достатньо потужним для запуску декількох програм, вони отримали мейнфрейми з тупими терміналами. Але тупі термінали дійсно смотряться на зручність використання, тому щойно комп'ютери отримали достатньо потужних потужностей, щоб помістити в розумну кількість обладнання всередині системи розміром з терміналами, ми отримали персональні комп'ютери, і все працювало безпосередньо на комп'ютері.

Тоді вони винайшли всесвітню мережу, і ми повернулися до мейнфрейму (сервера) та тупого терміналу (браузера.) Але німі термінали все ще дуже смачні з точки зору зручності використання, і люди починають вивчати уроки 30 років тому , і ми знову відходимо від цього. Багато справді горячих розробок у ці дні - для настільних (або мобільних) додатків, які працюють локально, але здатні підключитися до Інтернету для певних цілей, щоб покращити їх функціональність.


5
+1 за вказівку, що ці тенденції проходять по циклах. Однак я бачив випадок, коли термінальний додаток було переписано як настільний додаток, і користувачі змогли ефективніше працювати з додатком терміналу.
Ларрі Коулман

2
Відмінність браузерів полягає в тому, що вони насправді можуть запускати код у локальній системі, і ця можливість зростає з кожним поколінням браузера. Наслідком цього є те, що різниця у користуванні між настільними та веб-додатками не така вже й велика. Для багатьох людей (включаючи мене) gmail є більш корисним, ніж світогляд. Маятник щоразу хитається менше, і воно зупинятиметься на півдорозі, при цьому додатки будуть сумішшю локальних та хмарних частин, незалежно від основної технології.
Joeri Sebrechts

13
+1, я ненавиджу, коли люди починають стверджувати, що робочий стіл мертвий, це смішно.
д-р Ганнібал Лектер

1
@Joeri: Більшість терміналів завжди можуть робити принаймні кілька біт і фрагментів локально. Я дуже бачив, що я бачив, що я бачив у IBM 3270 (для одного прикладу) і локально.
Джеррі Труну

1
@Joeri Sebrichts - коли Gmail дозволяє мені перетягувати електронну пошту до завдання чи пункту календаря, я можу погодитися з вами, але до цього часу є занадто мало функцій.
JeffO

11

Навіть якщо ви ніколи не збираєтесь робити настільний розробник, я б запропонував вам отримати достатній досвід, щоб ви мали усвідомлену думку про те, коли краще використовувати рішення для настільних ПК через веб-клієнта.


+1: якщо припустити, що "робочий стіл мертвий", а додатки для пінгенхолінгу - це протилежність чистому розробнику робочого столу, який говорить "що ніколи не може бути корисним як веб-додаток". Виберіть те, з чим ви хочете працювати, але знайте іншого лише достатньо, щоб знати його справжні переваги / підводні камені.
Стівен Еверс

8

Так, але не так, як ви думаєте.

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

Однак, підключення кнопок і текстових полів є досить простим, знати, коли і де розміщувати кнопки, і спроектувати gui, який слід використовувати людям, дуже важко. Це дуже цінний і важливий навик. Однак принципи дизайну, які застосовуються до власних інтерфейсів проти Інтернету, дуже схожі.

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


2
Особливо в ці дні користувацький досвід користується дизайном програмного забезпечення. Архітектура вже не відповідає.
rwong

5

Це дійсно залежатиме від вашої ситуації. Нещодавно я працював у компанії Fortune 500, яка мала декілька проектів по перетворенню веб-додатків у додатки для настільних ПК (SmartClient / Click-Once). В їх конкретних обставинах це мало сенс і усунуло декілька проблем зручності користування, від яких страждають існуючі додатки.

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


4

Хм, окрім GMail, Stack-Exchange та домашнього банкінгу мого банку, я користуюся цілий день немережевим програмним забезпеченням. Зараз із появою смартфонів та планшетів веб-додаток для мене ще менш привабливий (я використовую клієнт смартфона Facebook). Це на стороні користувача.

Сторона розробників: в останні 10 років я працював майже лише над програмним забезпеченням, яке не використовується в Інтернеті (і моя кар’єра охоплювала багато різних областей, коли я працював програмним консультантом), і я не бачу будь-якої майбутньої тенденції в Інтернеті на своїй роботі.

Так, так, це все ще необхідно навчитися середовищ GUI настільних ПК.


2
Нічого, ви не використовуєте пошукову систему в Інтернеті?
JBRWilkinson

1
@JBRWilkinson: ні, я покладаюся на Гофера. Серйозно, впевнений, що я користуюся Google цілий день, але це насправді не заміна будь-якого інструменту чи додатків для настільних ПК.
Wizard79

2

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

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

Не забувайте - у вас є такі технології, як Silverlight та Adobe Flex / AIR, які можуть перетинати лінію між настільним / веб-додатком.


+1 для веб-розробки складніше. Я почав розробник робочого столу і повинен був перейти до веб-розробки на роботі. Це, безумовно, складніше (очевидно, це передбачає порівнянні завдання, що непросто).
Столи Бобі

@Guzica - так, я зіткнувся з подібним ставленням від добрих розробників, з якими я працював, які були заблоковані в розробці настільних додатків. Як тільки вони намагаються зробити перемикач не таким простим для них, як вони думали спочатку. Я не знаю, чи це якась притаманна складності програмування веб-додатків, її просто інший спосіб програмування, і багато ваших основних припущень щодо того, що може зробити система, повинні змінитися (крім вивчення нових рамок).
Ватсон

Завжди важче робити речі з більш обмеженими інструментами, що не робить це "складнішим". Це робить більше клопоту.
Сем

0

За даними команди IE9:

Не повинно бути розриву між нативними та веб-програмами. Прискорення HW, швидке JS та закріплення сайту запускають його

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


3
Це загальний BS. Я працюю над додатком для вимірювання затримки, який має бути розташований локально, щоб вимірювати та відображати в режимі реального часу затримки на ринку даних. Така штука НІКОЛИ не буде переміщена до хмари.
Тім

Це загальний BS, тому що ви виявили смішно незрозумілу потребу в додатку, який має бути локальним?
Майк М.

@Tim: ви праві, що деякі програми завжди будуть локальними. Це також правда, що інші програми ніколи не можуть бути локальними (наприклад, google translate). Але біг локально не означає, що він не надходить із хмари. Chrome працює локально, але це хмарний додаток (ви мало контролюєте, яка саме "версія"). Існують спроби прив’язати виконання нативного коду до платформ браузера (Google NaCl) та спроби прив’язати веб-мови до нативних програм (Adobe Air).
Joeri Sebrechts

1
@Mike M - це не смішно незрозуміло. На своїй попередній роботі я працював над судновим програмним забезпеченням ВМС. Їх також, швидше за все, не буде в хмарі. Домени, в яких я працюю, швидше за все, не будуть мігрувати - вони повинні бути локальними з причин затримки та апаратного інтерфейсу. Інтернет є приємним, але деякі з нас все одно працюють у рідній області додатків.
Тім

@Tim Моя думка, що ви знайшли сценарій, який він не витримує. Автор усвідомлює це, коли каже МОСТ. Ви придумали зустрічну точку, і це чудово. Ви жодним чином не довели, що вся справа не має підстав. Звичайно, буде час, коли це повинно бути локальним з безлічі причин. Але для переважної більшості, закиньте якийсь волоконно-оптичний кабель, і ваші 1200 миль можна перетнути за які, 10 мілісекунд? Як користувач, мені було б добре, що кожен мій додаток на робочому столі займає 10 мілісекунд довше, щоб завантажити форму.
Майк М.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.