Linguaggio di programmazione degli editor di codici online

0

Durante la ricerca di editor di codice online (non interessante per come sono stati realizzati tutti i siti dei corsi come Codecademy) ho notato che sono stati scritti in JavaScript.

Perché tutti gli editor di codice come CodeMirror o Ace sono scritti in JavaScript e non in PHP o Java per le applicazioni Web?

    
posta Bas 08.01.2015 - 09:55
fonte

3 risposte

3

PHP e Java sono elaborati lato server. JavaScript viene elaborato dal browser web. Se stavi elaborando in tempo reale con PHP, avresti bisogno di un pezzo di JavaScript (come un POST AJAX) per inviare l'intera porzione di codice al server per la rielaborazione, attendere un ritorno e quindi sostituire l'intero display con testo appena formattato ogni volta che un utente cambia un singolo carattere.

JavaScript può fare tutto da solo direttamente nel browser web e sfruttare la potenza del PC dell'utente per portare a termine il compito.

L'utilizzo di JavaScript velocizza il processo poiché nulla finisce per essere trasmesso avanti e indietro continuamente, riduce l'utilizzo della larghezza di banda in quanto non viene passato né avanti né indietro e riduce anche il carico di lavoro del server per lo stesso motivo.

C'è anche un argomento che è più affidabile e sicuro. Se non si restituisce nulla a un server, non è necessario preoccuparsi tanto di "escape" di caratteri speciali, meno di una preoccupazione per un pezzo non sicuro di codice lato server sfruttato ecc.

È inoltre buona norma non inviare nulla indietro e caricare un carico sul server, a meno che non ci sia un buon motivo per farlo.

Mentre si poteva avere un pulsante sul proprio "editor di codice" che invierebbe un'intera porzione di script su un server per l'elaborazione e inviare un ritorno formattato, generalmente non è la cosa finita per la ragione sopra indicata. Inoltre, un pulsante "riformatta tutto" non aggiungerebbe molto valore poiché puoi semplicemente riformattare tutto in JavaScript.

    
risposta data 08.01.2015 - 10:39
fonte
3

PHP o Java Servlet sono tecnologie puramente server-side. Non possono fare nulla a meno che l'utente non faccia clic su un link. Quando vuoi qualsiasi interattività mentre viene visualizzato il sito web, hai bisogno di Javascript, almeno per una chiamata AJAX a un backend PHP / JSP.

Quando si desidera un'applicazione come un editor di codice con cui l'utente interagisce molto da vicino, si desidera che il maggior numero possibile di esecuzione sul computer dell'utente. Ciò migliora l'esperienza dell'utente grazie a una migliore reattività e comporta meno sforzo sulle risorse del server. Quando si desidera un'applicazione ricca in un browser Web, è possibile utilizzare plug-in come Flash, Silverlight o applet Java che l'utente potrebbe o non potrebbe aver installato, aggiornato e abilitato. Oppure puoi semplicemente usare Javascript che - grazie a HTML5 - è diventato potente quasi quanto le soluzioni plug-in.

    
risposta data 08.01.2015 - 10:05
fonte
1

Oltre a questi fatti già menzionati, vorrei aggiungere che al centro di tutti i principali browser c'è un potente motore EcmaScript / JavaScript, incredibilmente migliorato da anni e anni di evoluzione del Web.

Pertanto, tutti i principali browser parlano nativamente questa lingua e sono in grado di eseguire programmi al suo interno nel modo più efficiente. Perché nel mondo useresti qualcos'altro per scrivere un programma lato client destinato a essere eseguito in una di queste bestie?

Anche quando i browser parlano solo questa lingua non è come se fossi costretto a usare JavaScript per scrivere i tuoi programmi. Nel corso degli anni sono state create diverse altre lingue per cercare di sostituire o "migliorare" JavaScript. Puoi scrivere i tuoi programmi in una di queste lingue e poi un compilatore traduce il tuo codice in JavaScript per eseguirlo nel browser, che in definitiva è ciò che il browser comprende.

Esempi di queste lingue alternative sono l'ormai decadente GWT che traduce Java in JavaScript. Altri approcci più moderni come CoffeeScript e più recentemente TypeScript . Con la rinnovata popolarità della programmazione funzionale in questi giorni abbiamo visto l'aspetto di ClojureScript e Google non si è stancato di non riuscire a provare a detronizzare JavaScript e ha creato il fantastico linguaggio di programmazione Dart per quello (anche uno dei loro browser chiamato Dartium ha un motore nativo per questo). E credetemi, Google non ha fallito e mentre parliamo stanno già lavorando in un altro di questi chiamato AtScript . Infine, ora grazie allo sforzo in Emscripten puoi persino trasferire i tuoi programmi da C / C ++. Tutti questi sono linguaggi che sono in definitiva conformi a JavaScript per eseguire il codice nel browser.

Quindi, come puoi vedere, non è come se fossi costretto a "scrivere" i tuoi programmi lato client in JavaScript, sei solo costretto a "eseguirli" in JavaScript perché è quello che la maggior parte dei browser capisce.

    
risposta data 08.01.2015 - 12:32
fonte

Leggi altre domande sui tag