Чи є обмеження ідеалістичного веб-додатку HTML5


11

Припустимо, що наступні два припущення є істинними.

  • Уся ваша база користувачів всюди має широкосмуговий доступ
  • Існує уявний браузер X, який реалізує всю проектну специфікацію груп HTML5 та WHATWG, послідовно і всі користувачі використовують браузер X.

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

Мене цікавлять обмеження веб-додатків без плагінів, які не покладаються на мости Flash / Java / SilverLight / тощо для додаткових функцій, а також не покладаються на додатки браузера для додаткових функцій.

Можливі обмеження, які не застосовуються:

  • Бази даних? У нас є WebSQL та indexedDB.
  • Файл IO? У нас є API файлу HTML5, який робить і читання, і запис.
  • Швидкість? З недавньою гонкою двигуна JavaScript браузер вже не повільний. Рідний C ++ лише в 3 рази швидший від хромового двигуна V8.
  • Інструменти розробки? Мережа визріла, і існує ціла низка інструментів, які можна було б перелічити.
  • Закрите джерело? Так, весь код є відкритим кодом. Це меч з двома кінцями, і існує чимало думок щодо використання закритого чи відкритого коду. Я особисто вважаю, що переваги відкритого коду переважають недоліки.
  • JavaScript / HTML5? Аргументи на зразок "Я особисто думаю, що HTML5 та EcmaScript - жахливі платформи розвитку" не враховуються.

Відомі обмеження:

  • Критичний код у реальному часі / безпеці (суто секретний) не належить до Інтернету, а також не може. Він повинен бути написаний низькорівневою, дуже керованою мовою, як C або C ++.
  • Будь-який інструмент, який потребує взаємодії з іноземним стороннім обладнанням, приєднаним до комп'ютера, буде важко спілкуватися з вашим веб-додатком.

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

Як осторонь, я знаю, що ці два припущення є жахливо нереальними, але ми могли б їх досягти через 5/10/20/30 років. Мене цікавить тип додатків та особливості програм, які роблять їх повністю несумісними з Інтернетом.

Мотивація:

Точка:

Враховуючи набір проблем, де настільний додаток є правильним рішенням.

  • Чому веб-додаток не є правильним рішенням?
  • Як визначити, чи можу я використовувати веб-додаток як рішення.

Я намагався усунути основні труднощі з веб-додатками (підключення до Інтернету та підтримка браузера), стверджуючи, що їх не існує.

Крім того, додатки в режимі офлайн HTML5 та Modernizr на шляху до вирішення обох цих проблем.

Які ще є труднощі з розробкою веб-додатків?


2
Первинне обмеження: хороша ідея для веб-додатків захоче використати достатньо людей, пов'язана з бізнес-моделлю, яка принаймні поверне витрати. Решта - далеко друга.
СФ.

"Які внутрішні обмеження"? Що ви маєте на увазі під "внутрішнім обмеженням"? Що означають ці слова? Яку інформацію ви хочете? Яка у вас проблема? У чому питання?
S.Lott

@SF видаліть слово "веб". Вам потрібні проблема і рішення. Якщо це рішення є додатком, тоді потрібно вирішити проблему, мати базу користувачів та мати бізнес-модель, яка буде працювати. Я просто порівнюю набір проблем, які мають настільний додаток як рішення, і запитую, чому веб-додаток не працюватиме.
Райнос

@ S.Lott ваше правильне, питання було занадто розпливчастим, я сподіваюся, я уточнив, що таке власне питання.
Райнос

Що? "Які внутрішні обмеження комерційного загальнодоступного веб-додатку, для чого нам потрібні комерційні публічні настільні додатки?" Чи означає це: "Коли нам потрібен робочий стіл, оскільки веб не буде працювати?" Якщо так, то все це дублікати: programmers.stackexchange.com/search?q=desktop+web
S.Lott

Відповіді:


11

Вгорі голови ...

  • отримати доступ до власного обладнання, яке експортує свої введення-виведення іншими способами, ніж файл. Будьте тим науковим обладнанням, промисловим обладнанням або звичайним диктофоном CD та планшетом оцифровувача з підтримкою нахилу.
  • лише HTTP та невелике сімейство інших протоколів. Ви не можете створювати розетки за своїм бажанням, передаючи всі потрібні бінарні дані. Це значно обмежує зв'язок з іншими системами та службами.
  • Жоден розумний розробник не створить графічно інтенсивну гру в JavaScript. Широкосмуговий зв’язок не є майже порівнянним з частотою необхідної пропускної здатності DVD / HDD. Підтримка 3D у Canvas значно поступається тому, що ви отримуєте з ігровими двигунами. Жоден спосіб підтримувати джойстик, кілька одночасних натискань клавіш, відкрита природа робить обман легким. Але насамперед зниження продуктивності неприпустимо.
  • Важка пісочниця. Ви не отримаєте речі, які глибоко інтегруються в ОС. Знімки екрана, антивірус, віртуальні диски, фонові завдання системного треї, адміністративні завдання тощо.
  • не може бути критично важливим для місії Залежно від широкосмугового зв’язку в будь-який час запускати основне програмне забезпечення не є кращим способом, яким користується більшість компаній.

1
2. WebSockets виставляє сокет TCP. У вас немає доступу до UDP в браузері, але TCP надає набагато більше варіантів.
Райнос

2
3. WebGL досягає певного цікавого прогресу. Нещодавно почалася підтримка OpenCL. Звичайно, це ще 5 років позаду розвитку настільних ігор, але це стає можливим.
Райнос

2
@Raynos: WebSockets забезпечував би функцію, що нагадує розетки, але вимагає певного рукостискання, ви не можете легко адаптувати його до існуючих систем, потрібні зміни на сервері. Означає відсутність загальної веб-програми для клієнта ssh. WebGL може вирішити деякі проблеми з gfx, але досі немає рішення для масових вимог даних (гігабайт текстур та сіток), вводу / виводу контролера, також підтримка аудіо наразі патетично погана.
СФ.

1
4. API пристрою W3C (про який я не знав) насправді на шляху до вирішення проблем з пісочницею.
Райнос

1
Багато речей змінилося з того часу, як ви вперше написали цю відповідь. Браузер сам по собі став законною програмною платформою; багато чого з того, що ви описуєте у своїй відповіді, зараз можливо. Так, я можу уявити собі майже будь-яку гру чи програму, що працює в браузері, докладаючи достатньо зусиль.
Роберт Харві

3

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

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

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

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


0

• Будь-який інструмент, який потребує взаємодії з іноземним стороннім обладнанням, приєднаним до комп'ютера, буде важко спілкуватися з вашим веб-додатком.

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

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

З іншого боку, з точки зору хмарних обчислень та масової віртуалізації можна сказати, що жодна програма не обов'язково повинна обмежуватися обмеженнями та дірками безпеки веб-технологій. Запуск настільних додатків з віртуалізованого середовища на тупому терміналі (начебто Citrix) стало набагато простіше досягти і може стати наступним «примхом» розвитку.

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


1
Цікаво, що ви можете запускати настільні програми з віртуалізованого середовища у веб-браузері. Давньою особливістю більшості серверів VNC є аплет Java для перегляду VNC, доступний за замовчуванням на http: // [віддалена машина]: 5800 / Отже - настільний додаток як веб-додаток?
СФ.

0

Припустимо, що наступні два припущення є істинними.

  • Уся ваша база користувачів всюди має широкосмуговий доступ
  • Існує уявний браузер X, який реалізує всю проектну специфікацію груп HTML5 та WHATWG, послідовно і всі користувачі використовують браузер X.

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

Мене цікавлять обмеження веб-додатків без плагінів, які не покладаються на мости Flash / Java / SilverLight / тощо для додаткових функцій, а також не покладаються на додатки браузера для додаткових функцій.

Гаразд, ось ось що: Цей браузер за своєю суттю буде незахищеним. Тож ви просите нас укласти угоду між двома. Однак, подолавши це, і припускаючи, що у нас є JavaScript (про який ви згадували у своєму дописі), то відповідь, що не існує програми, яка не може бути написана за допомогою HTML5 / Javascript. Однак ми припускаємо, що браузер не заважає.

Річ має місцевий db-магазин, може телефонувати на будь-яку іншу платформу, використовуючи HTTP-запити (що RESTafarian скаже вам достатньо) і може малювати (через Canvas) практично все, що завгодно. Уже є 3D-ігри, написані з використанням відкритих стандартів (OpenGL ish), і є API, які дозволяють робити все, що завгодно.

Єдиний справжній недолік - швидкість. Знадобиться час для здійснення цих HTTP-дзвінків API до інших систем (баз даних). Пройде час, щоб обробити FILE (COM1 :) запити (наприклад, для читання серійного пристрою в Windows), тому я б очікував проблемних областей. Звичайно, я також припускаю, що драйвери записуються як файли, що я впевнений, що це вже не так. Але вони могли викрити такий механізм;)

Користувачеві багато чого буде зовсім не так.

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