Perché il Web ha vinto lo spazio delle applicazioni remote e X no?

19

Il sistema X Window ha 25 anni, ha avuto il compleanno ieri (il 15).

Come probabilmente saprai, una delle sue caratteristiche più importanti è la separazione tra il lato server e il lato client in un modo che nessun sistema di windowing di Microsoft, Apples o Wayland ha.

Ai tempi (scusate per il fraseggio ambiguo) molti credevano che X avrebbe dominato su altri modi per rendere Windows a causa di questa separazione di server e client, consentendo all'applicazione di essere eseguita su un server da qualche altra parte mentre l'utente fa clic e tipi sul proprio computer a casa.

Questo uso ovviamente esiste ancora, ma è marginalizzato nel migliore dei casi. Quando scriviamo e usiamo programmi che girano su un server, quasi sempre usiamo il web con il suo html / css / js.

Perché il web ha vinto, e X no? Le tecnologie utilizzate per il web (detto html / css / js) sono un disastro. Combinato con tutti i framework back-end (Rails, Django e tutti) è davvero una giungla da navigare attraverso. Tuttavia il web vive con creatività e progresso, mentre le app X remote non lo fanno.

    
posta Martin Josefsson 16.09.2012 - 13:26
fonte

6 risposte

22

Ora sembra del tutto ovvio e fondamentale, ma l'innovazione killer del world wide web era il collegamento ipertestuale. Anche se X non fosse completamente inutilizzabile su un collegamento modem, la sua incapacità di avviare un processo completamente nuovo su un server completamente nuovo tramite un singolo clic ostacolerebbe la sua adozione per quel tipo di caso d'uso.

    
risposta data 16.09.2012 - 20:13
fonte
17

Perché X richiede di avere una laurea in CS per scrivere un'applicazione. Mentre Web richiede che tu abbia la possibilità di digitare (nemmeno quello).

Soprattutto nei primi giorni in cui il web era solo html. È possibile aprire un terminale e creare un display funzionante in 10 minuti e quindi migliorarlo interattivamente con un feedback istantaneo. Questa bassa barra di ingresso ha stimolato l'utilizzo massiccio degli utenti. D'altro canto, la creazione di un'applicazione X-Server è un'attività non banale anche per i programmatori esperti.

Ci sono voluti 10 anni perché il Web fosse un concorrente diretto di Xapplicazionein in termini di funzionalità e fornisse le stesse abilità della GUI. Questa funzionalità è stata aggiunta allo stack di lingue nel tempo consentendo agli sviluppatori di padroneggiare un set di funzionalità prima che venisse aggiunto il successivo; quindi questa graduale espansione della complessità tecnologica ha mantenuto la barra bassa (per le persone che sono già sul campo e ce ne sono molte). Saltare sul campo ora è molto più difficile rispetto a 10 anni fa, ma è ancora possibile e il feedback istantaneo del web rende l'apprendimento più gratificante (gli umani hanno bisogno di una gratificazione rapida per rinforzare le loro unità).

Il costo è un altro driver. Il costo effettivo di apprendere abbastanza competenze di programmazione per sviluppare un X-Server è significativo. Inoltre, la disponibilità di server per l'esecuzione dell'applicazione ha determinato un aumento dei costi. Imparare a scrivere HTML non era praticamente nulla per ottenere la pagina "Hello World" attiva e in esecuzione e i provider di servizi Internet hanno offerto l'hosting gratuito per ispirarti a ottenere una connessione web. Quindi potresti praticare gratuitamente. Quando alla fine hai avuto bisogno di business hosting la disponibilità di società di hosting è cresciuta e il costo è sempre stato relativamente economico.

    
risposta data 16.09.2012 - 16:28
fonte
11

La risposta è che "molte tecnologie sono adottate per motivi arbitrari storici o socio-politici piuttosto che per ragioni tecniche". La migliore soluzione per un determinato problema non sempre diventa la tecnologia dominante. (In effetti, raramente lo fa.)

Nel 2012, dove i server HTTP vengono utilizzati per creare applicazioni interattive alla pari con le applicazioni desktop, il confronto tra HTTP e X è interessante. Con il senno di poi, X è probabilmente una tecnologia migliore per sviluppare applicazioni interattive distribuite in rete. Le applicazioni interattive del desktop non si adattano bene ad una tecnologia stateless orientata ai documenti come HTTP, e questa discrepanza ha storicamente portato a tutti i tipi di work-around (hack) per creare lo stato, come cookie, sessioni, ecc.

Ma lo scopo originale di HTTP non era quello di sviluppare applicazioni simili a quelle del desktop. Si trattava di recuperare documenti e visualizzare informazioni - informazioni che potevano essere collegate ad altri documenti che potevano anche essere visualizzati istantaneamente. L'idea di una raccolta di documenti collegati risale agli anni '60 con Theodore Nelson's "Project Xanadu ". Il Web doveva essere un'implementazione del concetto di Nelson di ipertesto , che era un tentativo di computerizzare la pagina stampata - come l'enciclopedia o il giornale - permettendo all'utente di "saltare" istantaneamente da un articolo all'altro con un solo clic.

Molte iterazioni di questa idea sono andate e venute, come la Hypercard di Apple, che ha implementato il concetto di ipertesto / collegamenti ipertestuali , ma non è mai stato distribuito su reti. Il World Wide Web è stato l'implementazione del concetto di ipertesto basata sul network del CERN e probabilmente è decollato perché Tim Berners-Lee ha rilasciato gratuitamente la sua libreria di codici del browser, consentendo ad altri di sperimentarlo. Questo alla fine ha portato al browser Mosaic di Marc Andreesen, il predecessore di Netscape. E il resto è storia.


Ma ... come con così tante tecnologie, iniziarono a emergere nuove possibilità che i designer originali di HTTP o ipertesto non pensavano davvero troppo. Il web è diventato commercializzato e le persone hanno iniziato a sviluppare siti web che offrivano un'interattività statica, come carrelli della spesa e accessi. È diventato sempre più evidente che la natura stateless e orientata ai documenti di HTTP non era molto adatta alle applicazioni desktop. Ma a quel punto, era troppo tardi. Tutti stavano già usando HTTP. Quindi, eccoci oggi, con varie applicazioni AJAX hacky che fanno del loro meglio per fingere di essere app desktop.

    
risposta data 16.09.2012 - 21:17
fonte
3

Le tecnologie potrebbero tentare di risolvere problemi simili ora, ma sicuramente non lo erano in passato.

Lo stack HTML attuale si è evoluto nel tempo dal semplice trasferimento di documenti di testo, attraverso documenti "visivi" con piccoli script, in una piattaforma applicativa completa.

Nel momento in cui è iniziato l'HTML, nessuno potrebbe mai sognare di connettersi al computer remoto e di eseguire applicazioni grafiche lì. Solo dopo che Internet ha migliorato la latenza e il throughput è diventato possibile. Eppure in quel momento l'HTML era già presente. Tutti sapevano che questo era il modo per dare ai clienti e agli utenti l'accesso all'applicazione grafica, eseguita sulla macchina remota.

E come con ogni sistema "libero", è diventato impossibile "resettare" il tutto e ricominciare da capo per farlo meglio questa volta. Ecco perché abbiamo bisogno di stare zitti e usare HTML / CSS / JS e vorrei solo che le persone che lo supportassero finalmente lo sbrideranno e lo seppelliranno con il suo patrimonio di anni.

Questo risponde alla domanda "Perché il Web ha vinto?". Non c'era nessuna competizione, il web ha vinto prima ancora che iniziasse tutto.

    
risposta data 16.09.2012 - 14:50
fonte
1

Sono d'accordo sul fatto che, in linea di principio, i due sono simili. Se si pone la domanda "come possiamo eseguire il codice su un server ma fornire la visualizzazione su un client remoto?", È ragionevole pensare che i team indipendenti possano trovare una soluzione.

Sospetto che la ragione per cui uno è più popolare dell'altro in certi aspetti è perché i due affrontano lo stesso problema da prospettive completamente diverse. X è una soluzione tecnica a un problema tecnico, ma il web si è evoluto come esigenza di risolvere un problema social - come posso prendere risorse da un server remoto e visualizzarlo sul mio computer locale, e fare in un modo che sia facile e conveniente?

Il Web "ha vinto" perché ha risolto un problema riscontrato da più persone. Pensa ad un'analogia automobilistica: sia le berline di lusso che i camion risolvono apparentemente lo stesso problema: come trasportare qualcosa da un posto all'altro.

Il camion ha risolto il problema tecnico di letteralmente come trasportare qualcosa dal punto A al punto B, e per quello funziona abbastanza bene. L'autovettura si è evoluta come esigenza per le persone di sentirsi a proprio agio mentre viaggiano e per trasportare più persone e meno letame. Divenne una necessità che richiedeva comodità. Quindi, nel tempo, il numero di autovetture di gran lunga superava di gran lunga il numero di camioncini sulla strada (suppongo, sulla base dell'osservazione del traffico di Chicago, forse è diverso in Texas?: -)

Quindi, come l'analogia tra auto e camion, il web e X11 risolvono entrambi lo stesso problema tecnico, ma servono a scopi completamente separati.

    
risposta data 16.09.2012 - 14:32
fonte
1

Stai confrontando le mele con le pere. X Window sta per separare il rendering del contenuto dello schermo in un client locale, che potrebbe essere collegato da un filo sottile alla fonte del contenuto. È davvero un'estensione del modello computazionale dall'era del "vetro tty" al dominio della grafica di alta qualità. X ha avuto origine nell'era in cui i PC erano ancora piuttosto succinti e la maggior parte del calcolo reale veniva fatto su unix o su scatole mainframe. L'idea era di sfruttare la potenza di "terminali X" relativamente economici e reti relativamente lente per rendere graficamente disponibili queste importanti risorse computazionali.

Le ragioni per cui questo non ha vinto su Mac e PC è che il loro sviluppo è sempre stato guidato dal desiderio di supportare la grafica di fascia alta nelle applicazioni locali , compresi giochi, editor e grafica aziendale. Supportare le applicazioni residenti in rete è un recente ripensamento.

    
risposta data 16.09.2012 - 21:31
fonte

Leggi altre domande sui tag