Perché i diversi componenti della "piattaforma web" non sono modularizzati?

6

La piattaforma web è alla moda in questi giorni. Ma la piattaforma web è composta da molte parti che sono concettualmente separabili, sviluppate in tempi e ritmi diversi e (cosa più importante per me) potrebbe essere utile da soli. Fondamentalmente la piattaforma web è "un browser", ma il browser raggruppa diverse cose:

  • Renderer HTML / CSS
  • DOM
  • scripting sul renderer e DOM (JavaScript)
  • sandboxing (comprese le restrizioni di cross-site scripting, accesso limitato ai file locali, ecc.)
  • il browser stesso, che è un'app GUI con un proprio aspetto e atmosfera

La mia domanda è, sono davvero l'unico a pensare che sarebbe utile avere ognuno di questi come componenti separati che sono utilizzabili da soli, mescolabili e abbinabili a versioni diverse l'uno dell'altro e con altri strumenti di programmazione? I renderer / DOM sono quelli che mi piacerebbe davvero vedere astratti, perché HTML / CSS è un modo molto carino per descrivere le interfacce, ma è fastidioso che possa essere usato solo per descrivere le interfacce su una pagina web.

In particolare, il collegamento tra il motore di rendering, JavaScript e la GUI del browser sembra quasi impenetrabile. Questo rende davvero noioso usare HTML / CSS per la progettazione dell'interfaccia, perché la tua interfaccia sarà sempre in esecuzione in un browser che non controlli, e devi usare JavaScript. Confrontalo con altri toolkit di interfaccia (come Tk, Qt, Wx), che spesso hanno legami con più linguaggi di programmazione e possono essere sfruttati in app standalone su cui hai il controllo totale. (Ciò significa, ad esempio, che le preferenze degli utenti di tutto il browser per cose come i caratteri possono interferire con la presentazione e significa che tutti i menu, le scorciatoie da tastiera o altri strumenti di interfaccia utente devono competere con quelli del browser che li include.) p>

In modo simile, è molto difficile scrivere qualcosa che abbia un'interfaccia HTML / CSS, ma memorizza i dati sul tuo computer locale, perché i browser pensano che sia un'app web non sicura, anche se quello che vuoi sia solo un " app normale ".

So che ci sono storici ragioni per cui la gente ha fatto tutto questo insieme, ma trovo sconcertante che in nessun momento la gente abbia pensato che sarebbe valsa la pena creare un motore di rendering separato e collegabile che potesse essere utilizzato con più linguaggi di programmazione o un "browserapp maker" che eseguirà una singola app Web nella propria finestra o qualcosa di simile.

Oppure, queste cose esistono già? Sono a conoscenza di cose come i widget Web nei toolkit della GUI e XULRunner, ma per quanto posso vedere questi sembrano ancora incorporare un amalgama simile a un browser di diversi componenti. (In particolare, non sembra esserci un motore di rendering stabile e maturo con collegamenti di accesso DOM per lingue diverse da JavaScript.) Ciò li rende più pesanti e meno integrabili in un'applicazione di quanto sarebbe se si potesse semplicemente prendere un HTML rendering libreria allo stesso modo in cui acquisisci Qt o una libreria PNG o qualsiasi altra cosa.

    
posta BrenBarn 15.09.2013 - 19:41
fonte

2 risposte

1

Quindi, conosci i motivi storici. E il tuo testo suggerisce che hai esperienza in materia di modularizzazione e le tecnologie coinvolte intorno al tema web. Quindi immagino che probabilmente conosci tutte o alcune delle seguenti cose:

  • dato il triste stato delle cose, è molto difficile cambiare in un modo che non infrange il software esistente.

  • Queste cose sono così diffuse e in una modalità così "difficile da modulare" che sembra (ma non è necessariamente conosciuto ) che è più economico da costruire in cima, che a adattare la piattaforma.

  • Troppe persone dipendono da troppe idiosincrasie per lavorare mentre stanno lavorando in questo momento e troppe persone devono essere d'accordo prima di andare avanti (quindi, l'esistenza di comitati standard e così via, coinvolgendo persone che potrebbero o potrebbe non avere le qualifiche per il compito di definire progetti di alta qualità per risolvere i problemi di ieri in specifiche che saranno messe a punto e utilizzate per decenni a venire).

  • Il marketing e la concorrenza di mercato possono dominare i meriti tecnologici.

Probabilmente non dovrei mettere una domanda in una risposta, ma ecco, in nome della provocazione del pensiero: hai provato quello che proponi? Ovviamente, limitando l'ipotetica soluzione all'ovvia limitazione che dovrebbe essere in grado di adattarsi bene a ciò che già è , mantenendo le proprietà di portabilità esistenti e migliorando significativamente il design.

    
risposta data 15.09.2013 - 21:28
fonte
0

C'è stato effettivamente un tentativo, FireFox ha provato ad aprire il suo toolkit GUI per applicazioni non-browser sotto l'etichetta "XulRunner". L'abbiamo provato, non un successo.

Per i principianti, XulRunner compete con strumenti di gran lunga migliori come Qt. L'interfaccia C ++ è decisamente orribile. Sei anche legato a Javascript per un sacco di compiti. Le prestazioni non sono eccezionali.

È anche documentato fino ai soliti standard Open Source. Non abbiamo mai capito come rimuovere il componente ortografico.

Detto questo, ti sbagli se pensi che Qt sia leggero simile a una libreria PNG. Tuttavia, è progettato molto meglio e puoi rimuovere effettivamente i bit che non ti servono. È davvero facile.

Quindi, la conclusione è che è stato provato e non ha creato un prodotto convincente.

    
risposta data 16.09.2013 - 09:35
fonte

Leggi altre domande sui tag