Perché utilizziamo ancora JavaScript? [duplicare]

22

Mi sembra che, nonostante sia una delle lingue più utilizzate al mondo, anche alcuni dei maggiori esperti di JavaScript come Doug Crockford pensa che JavaScript soffra di alcuni difetti di progettazione piuttosto grandi ( JavaScript: il linguaggio di programmazione più incompreso al mondo ) che rendono lo sviluppo confuso e ambiguo.

I linguaggi di programmazione e gli strumenti di sviluppo stanno sempre migliorando e rendono molto più facile agli sviluppatori fare le cose. C'è una nuova versione di .NET ogni pochi anni, una nuova versione di HTML5 con nuovi tag, nuove versioni di CSS, ecc.

Perché non c'è stata una versione migliore di JavaScript o un altro linguaggio dinamico generico, ma senza tutti i difetti di progettazione, uscire per sostituire JavaScript?

    
posta RoboShop 06.07.2011 - 16:02
fonte

6 risposte

21

Due parole: "Supporto browser". Javascript è interpretato dal browser web, quindi se dovessimo utilizzare un linguaggio di scripting lato client diverso, ogni browser dovrebbe implementare il supporto per esso. Ovviamente alcuni browser sarebbero in ritardo rispetto agli altri e gli sviluppatori eviterebbero di usare il linguaggio perché solo una minima parte dei loro potenziali utenti sarebbe in grado di utilizzare la loro applicazione. Quindi, come puoi vedere, ci sono notevoli impedimenti economici nell'usare qualcosa di diverso da Javascript (o anche una versione più recente di JavaScript). In realtà, in questo momento, sono state rilasciate nuove versioni "ufficiali" di JavaScript. Tuttavia, l'unico browser che supporta è Mozilla Firefox.

    
risposta data 06.07.2011 - 16:11
fonte
12

Tutte le lingue soffrono di difetti di progettazione. I difetti in Javascript non sono poi così gravi. Manipolazione di tipo disordinato (aggirabile), False / Null / undef / zero / NaN sciocchezze (può essere ancora afferrato), "+" per concatenazione (perfettamente gestibile), inserimento del punto e virgola (basta essere cauti) - niente di critico in generale.

D'altra parte, il linguaggio è incredibilmente estensibile. A differenza di altre lingue OO in cui vieni soffocato dall'ereditarietà / estensibilità di classe, in JS sei libero di estendere / modificare un'istanza di un oggetto al volo. Ha una curva di apprendimento molto amichevole - il livello di ingresso è molto semplice, e c'è molto da esplorare e imparare nel tempo. È il javascript entry level (e il nome stupido) che fa credere alla gente che si tratti di un linguaggio giocattolo. Non è. Le funzionalità avanzate ti consentono di modificare la sintassi, l'essenza della lingua così tanto, di adattarla alle tue esigenze e quindi di ottenere i risultati desiderati in diverse semplici e dirette linee di sintassi (perfettamente chiara). Funziona molto bene sia per la programmazione sequenziale che per le interfacce basate su eventi. Si integra molto bene con l'ambiente web.

... anche quale altra lingua lato client suggeriresti per il WWW? Visual Basic? Finché Javascript è l'unico linguaggio sul browser ampiamente supportato, qualsiasi domanda "perché le persone ancora usano" sono piuttosto fuori luogo.

    
risposta data 06.07.2011 - 16:21
fonte
8

Funziona, ed è ampiamente supportato. Il linguaggio stesso è piuttosto potente e supporta un'ampia varietà di paradigmi (funzionale, OOP, ecc.). Ha anche un'API integrata nel DOM, rendendo molto facile la manipolazione di una pagina - dopotutto, è ciò che è stato progettato per fare!

Inoltre, le librerie come jQuery rendono molto più semplice codificare JavaScript senza preoccuparsi della compatibilità del browser. Dal momento che, fino a quando HTML5 diventa mainstream, JavaScript è l'unico modo per manipolare dinamicamente le pagine Web dal lato del browser, le persone sono ancora focalizzate a renderlo migliore e più facile. E anche dopo che HTML5 è stato ampiamente accettato, molte persone continueranno a utilizzare browser che non lo supportano. Così tante aziende non cambieranno perché perderebbero un gran numero di clienti.

Nonostante le sue presunte deficienze, JavaScript è l'unica lingua del browser lato client che abbiamo e avremo per un po '. Sarà in giro per molto tempo.

    
risposta data 06.07.2011 - 16:17
fonte
4

Penso che ci siano alcuni motivi.

La compatibilità con le versioni precedenti è probabilmente la chiave. Quando IE aveva una quota di mercato del 90% +, avrebbe senso per i browser alternativi (Firefox, Opera) continuare a utilizzare JavaScript. Sarebbe stata una dura battaglia in salita se Firefox fosse uscito con qualcosa di completamente diverso.

È uno standard . C'è un overlord là fuori (ECMA) che dice ciò che JavaScript è in realtà. Al web sembra piacere questo genere di cose, specialmente in rivolta a IE che è "il bullo".

Naturalmente, questo non entra nella guerra tra IE e Netscape che mette JavaScript in un tale caos.

    
risposta data 06.07.2011 - 16:10
fonte
4

Sempre di più, non lo facciamo. La popolarità delle librerie all-inclusive (come jQuery), così come le lingue che compongono JavaScript (come CoffeeScript) sono in costante crescita. Sì, JavaScript è ancora la lingua che viene interpretata, ma la considero analoga alla scrittura in C e alla compilazione in codice macchina.

Detto questo, ci sono molte persone là fuori che desiderano comprendere JavaScript di per sé, allo scopo di migliorare le librerie e i linguaggi menzionati in precedenza (e il loro uso), o perché non vogliono il sovraccarico di librerie come jQuery.

    
risposta data 06.07.2011 - 16:17
fonte
2

Mentre la sua assoluta ubiquità nei browser Web e nelle applicazioni Web è la causa principale di JavaScript che si aggira nonostante le sue parti non buone, quella stessa ubiquità ha portato a ricevere l'attenzione di alcuni dei migliori ingegneri del software. Il risultato finale è che otteniamo compilatori JIT e motori di runtime ultrarapidi, rendendo JavaScript uno dei linguaggi dinamici meno performanti disponibili.

Inoltre, non è un linguaggio così brutto. OGNI linguaggio ha difetti, e per utilizzarli bene, è necessario conoscerne i punti di forza, i punti deboli e le debolezze.

    
risposta data 06.07.2011 - 16:20
fonte

Leggi altre domande sui tag