Esistono limiti di un'applicazione Web HTML5 idealistica


11

Supponiamo che i seguenti due presupposti siano veri.

  • L'intera base di utenti ha accesso a banda larga ovunque
  • Esiste un browser immaginario X che implementa l'intera bozza delle specifiche dei gruppi HTML5 e WHATWG, in modo coerente e tutti gli utenti utilizzano il browser X.

Quali sono i limiti intrinseci di un'applicazione Web HTML5 pubblica commerciale per la quale abbiamo bisogno di applicazioni desktop pubbliche commerciali?

Sono interessato ai limiti delle applicazioni Web senza plug-in che non si basano su bridge Flash / Java / SilverLight / etc per funzionalità extra né si affidano ai plug-in del browser per funzionalità extra.

Possibili limitazioni che non si applicano:

  • Banche dati? Abbiamo WebSQL e indexedDB.
  • File IO? Abbiamo l'API di file HTML5 che esegue sia la lettura che la scrittura.
  • Velocità? Con la recente gara del motore JavaScript, il browser non è più lento. Il C ++ nativo è solo 3 volte più veloce del motore V8 di Chrome.
  • Strumenti di sviluppo? Il web è maturato e c'è un'intera gamma di strumenti disponibili che sono troppo numerosi per essere elencati.
  • Fonte chiusa? Sì, tutto il codice è open source. Questa è un'arma a doppio taglio e ci sono numerose opinioni sull'uso del codice chiuso o open source. Personalmente credo che i vantaggi del codice open source siano superiori agli svantaggi.
  • JavaScript / HTML5? Argomenti del calibro di "Personalmente penso che HTML5 ed EcmaScript siano orribili piattaforme di sviluppo" non contano.

Limitazioni note:

  • Il codice critico in tempo reale / di sicurezza (top secret) non appartiene al web né può farlo. Deve essere scritto in un linguaggio di basso livello, altamente controllabile come C o C ++.
  • Qualsiasi strumento che deve interagire con un hardware esterno di terze parti collegato al tuo computer avrà difficoltà a parlare con la tua applicazione web.

C'è anche un'intera suite di programmi che non appartengono al web. Sistemi operativi, driver, software server, API di basso livello. Ne sono consapevole ma non li classifico come applicazioni "commerciali pubbliche", questi sono i tipi di software che possono essere preinstallati sui computer.

A parte questo, so che le due ipotesi sono orribilmente irrealistiche, ma potremmo realizzarle in 5/10/20/30 anni. Sono interessato al tipo di applicazioni e alle funzionalità delle applicazioni che le rendono completamente incompatibili con il web.

Motivazione:

Il punto:

Dato l'insieme di problemi in cui un'applicazione desktop è una soluzione valida.

  • Perché un'applicazione Web non è una soluzione valida?
  • Come faccio a identificare se posso usare un'applicazione web come soluzione.

Ho provato a rimuovere le principali difficoltà con le applicazioni web (connessione internet e supporto browser) affermando che non esistono.

Inoltre, le applicazioni offline HTML5 e Modernizr sono sulla buona strada per risolvere entrambi questi problemi.

Quali sono le altre difficoltà con lo sviluppo di applicazioni web?


2
Limitazione primaria: una buona idea per le applicazioni Web che un numero sufficiente di persone vorrà utilizzare, in connessione con un modello di business che almeno restituirà i costi. Il resto è di gran lunga secondo.
SF.

"Quali sono i limiti intrinseci"? Cosa intendi con "limitazione intrinseca"? Cosa significano queste parole? Quali informazioni vuoi? Che problema hai? Quale è la domanda?
S.Lott

@SF rimuove la parola "web". Hai bisogno di un problema e una soluzione. Se quella soluzione è un'applicazione, è necessario risolvere il problema, disporre di una base di utenti e disporre di un modello di business che funzioni. Sto solo confrontando la serie di problemi che hanno un'applicazione desktop come soluzione e mi chiedo perché un'applicazione web non funzionerà.
Raynos,

@ S. Lott hai ragione, la domanda era troppo vaga, spero di aver chiarito quale sia la vera domanda.
Raynos,

Che cosa? "Quali sono i limiti intrinseci di un'applicazione web pubblica commerciale per la quale abbiamo bisogno di applicazioni desktop pubbliche commerciali?" Questo significa "Quando abbiamo bisogno del desktop perché il web non funzionerà?" In tal caso, tutti questi sono duplicati: programmers.stackexchange.com/search?q=desktop+web
S.Lott

Risposte:


11

In cima alla mia testa ...

  • accedere all'hardware proprietario che esporta il suo I / O con mezzi diversi da un file. Che si tratti di apparecchiature scientifiche, macchinari industriali o semplici registratori di CD e un tablet digitalizzatore con supporto dell'inclinazione.
  • solo HTTP e una piccola famiglia di altri protocolli. Non puoi creare socket come desideri, trasferendo qualsiasi dato binario desideri. Ciò limita enormemente la connettività con altri sistemi e servizi.
  • Nessuno sviluppatore sano creerà giochi ad alta intensità grafica in Javascript. La banda larga non è quasi paragonabile ai throughput di DVD / HDD spesso necessari. Il supporto per 3D in Canvas è notevolmente inferiore a quello che ottieni con i motori di gioco. Non c'è modo di supportare il joystick, la pressione simultanea di più tasti, la natura aperta facilita gli imbrogli. Ma soprattutto, il calo delle prestazioni non è accettabile.
  • Sandboxing pesante. Non otterrai cose che si integrano profondamente nel sistema operativo. Schermate, antivirus, unità virtuali, attività in background e barra delle applicazioni, attività amministrative ecc.
  • non può essere mission-critical. A seconda della banda larga in qualsiasi momento eseguire il loro software di base non è il modo preferito per la maggior parte delle aziende.

1
2. I WebSocket espongono un socket TCP. Non hai accesso a UDP in un browser, ma TCP ti offre molte più opzioni.
Raynos,

2
3. WebGL sta facendo progressi interessanti. Il supporto OpenCL è stato avviato di recente. Sicuramente sono ancora 5 anni indietro rispetto allo sviluppo di giochi desktop ma sta iniziando a diventare possibile.
Raynos,

2
@Raynos: WebSocket fornirebbe funzionalità simili a socket ma richiede una stretta di mano specifica, non è possibile adattarlo facilmente ai sistemi esistenti, è necessario apportare modifiche sul lato server. Significa che nessuna web app ssh client generica. WebGL potrebbe risolvere alcuni dei problemi di gfx, ancora nessuna soluzione ai requisiti di dati di massa (gigabyte di trame e mesh), I / O del controller, anche il supporto audio è attualmente pateticamente scarso.
SF.

1
4. L' API del dispositivo W3C (di cui non sapevo) in realtà è decisamente sulla buona strada per risolvere i problemi di sandboxing.
Raynos,

1
Molte cose sono cambiate da quando hai scritto questa risposta per la prima volta. Il browser è diventato una piattaforma software legittima a sé stante; gran parte di ciò che descrivi nella tua risposta è ora possibile. Sì, posso immaginare praticamente qualsiasi gioco o applicazione in esecuzione nel browser, dato uno sforzo sufficiente.
Robert Harvey,

3

In sostanza, tutto ciò che può essere adattato al modello server / client può fare una buona applicazione web e ispo facto il contrario può anche essere considerato vero. La tendenza a passare al Web è andata molto rapidamente probabilmente perché, visto che la maggior parte dei programmi può essere modellata in Modello / Controller / Vista, i programmi possono dividere il modello e il controller dalla sua vista.

Naturalmente per motivi di efficienza, alcuni controller sono posizionati anche sul lato client per evitare di sovraccaricare il server con richieste e dati errati.

Anche se il mio punto è: quali programmi non si adattano al modello / controller / visualizzano l'architettura software, poiché sono probabilmente gli stessi programmi che non sono mai stati convertiti in applicazioni web. Buoni esempi che vengono in mente sono sistemi operativi, programmatori di attività, prompt dei comandi, protezione da virus, protezione da spyware. Ognuno dei quali probabilmente non è implementato su un sito web perché non si adatta al modello. E non è un caso che ognuno di questi programmi dipenda fortemente dal tuo sistema. La maggior parte richiede l'accesso diretto all'hardware, mentre altri richiedono semplicemente una maggiore sicurezza per poter essere eseguiti e non possono essere considerati attendibili da siti Web.

Ovviamente, Google sta adattando completamente questo concetto con il suo nuovo sistema operativo. Presumibilmente, a differenza di Windows, non è semplicemente un sistema che è cresciuto per usare Internet ma piuttosto un sistema fortemente dipendente da esso. Presto potresti vedere tutti questi programmi resi disponibili online, consentendo l'accesso al tuo hardware e software, data una rigorosa autenticazione del certificato per impedire a qualsiasi sito di essere in grado di farlo, ma piuttosto siti fidati. Sono ansioso di vedere cosa ne viene fuori, dal momento che sto pensando tra 20 anni, i computer non saranno più realizzati con software installabile. Piuttosto tutti i servizi saranno disponibili online.


0

• Qualsiasi strumento che deve interagire con un hardware esterno di terze parti collegato al computer avrà difficoltà a parlare con l'applicazione Web.

Il software su cui sto lavorando ora ha un aspetto desktop e un aspetto basato sul Web proprio perché deve raccogliere dati da periferiche di terze parti. La necessità di sviluppo per i driver e un programma desktop client per colmare il divario tra dispositivo e Web.

Ciò non esclude le applicazioni Web, poiché questi tipi di applicazioni desktop possono essere sottili con la logica che risiede principalmente sul server.

D'altra parte si può dire con l'aspetto del cloud computing e della virtualizzazione di massa che nessuna applicazione deve necessariamente essere vincolata dai limiti e dai buchi di sicurezza della tecnologia web. L'esecuzione di applicazioni desktop da un ambiente virtualizzato su un terminale stupido (molto simile a Citrix) è diventata molto più facile da raggiungere e potrebbe essere la "mania" dello sviluppo successivo.

La linea di fondo è che ora ci sono più scelte che mai e molte più teste parlanti che utilizzano la tecnologia di domani come il modo "migliore".


1
È interessante notare che è possibile eseguire applicazioni desktop da un ambiente virtualizzato su un browser web. Antica funzionalità della maggior parte dei server VNC è un'applet Java per visualizzatori VNC, disponibile per impostazione predefinita su http: // [macchina remota]: 5800 / So - desktop-app-as-web-app?
SF.

0

Supponiamo che i seguenti due presupposti siano veri.

  • L'intera base di utenti ha accesso a banda larga ovunque
  • Esiste un browser immaginario X che implementa l'intera bozza delle specifiche dei gruppi HTML5 e WHATWG, in modo coerente e tutti gli utenti utilizzano il browser X.

Quali sono i limiti intrinseci di un'applicazione Web HTML5 pubblica commerciale per la quale abbiamo bisogno di applicazioni desktop pubbliche commerciali?

Sono interessato ai limiti delle applicazioni Web senza plug-in che non si basano su bridge Flash / Java / SilverLight / etc per funzionalità extra né si affidano ai plug-in del browser per funzionalità extra.

Ok, allora ecco il problema: quel browser sarà per sua natura insicuro. Quindi ci stai chiedendo di fare un compromesso tra i due. Tuttavia, superando quello e assumendo che abbiamo javascript (a cui hai accennato nel tuo post), allora la risposta che non esiste un'app che non può essere scritta usando semplicemente HTML5 / Javascript. Tuttavia, supponiamo che un browser non si frapponga.

La cosa ha un archivio db locale, può effettuare chiamate verso qualsiasi altra piattaforma usando richieste HTTP (che un RESTafarian ti dirà è sufficiente) e può disegnare (via Canvas) praticamente tutto ciò che vuoi. Esistono già giochi 3D scritti con standard aperti (OpenGL ish) e ci sono API per fare esattamente quello che vuoi.

L'unico vero inconveniente è la velocità. Ci vorrà del tempo per effettuare quelle chiamate API HTTP ad altri sistemi (database). Ci vorrà del tempo per elaborare le richieste FILE (COM1 :) (leggere ad esempio un dispositivo seriale su Windows), quindi quelle sono le aree problematiche che mi aspetterei. Ovviamente, presumo anche che i driver siano scritti per accedere come file, il che sono quasi sicuro che non sia più vero. Ma potrebbero esporre un tale meccanismo;)

Per l'utente, non molto sarà affatto diverso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.