Domanda

Ispirato da questa domanda .

Vedo comunemente persone che si riferiscono a JavaScript come un linguaggio di basso livello, in particolare tra gli utenti di GWT e toolkit simili.

La mia domanda è: perché? Se usi uno di questi toolkit, stai tagliando da alcune delle caratteristiche che rendono JavaScript così piacevole da programmare: funzioni come oggetti, digitazione dinamica, ecc. Soprattutto se combinato con uno dei framework popolari come jQuery o Prototype .

È come chiamare C ++ di basso livello perché la libreria standard è più piccola dell'API Java. Non sono un programmatore C ++, ma dubito fortemente che ogni programmatore C ++ scriva la propria GUI e le librerie di rete.

È stato utile?

Soluzione

È un linguaggio di alto livello, data la sua flessibilità (funzioni come oggetti, ecc.)

Ma tutto ciò che viene comunemente compilato può essere considerato un linguaggio di basso livello semplicemente perché è un obiettivo per la compilazione e ci sono molte lingue che ora possono essere compilate in JS a causa del suo ruolo unico come lingua di controllo DOM del browser.

Tra le lingue (o sottoinsiemi di esse) che possono essere compilate in JS:

  • Java
  • C #
  • Haxe
  • Objective-J
  • Rubino
  • Python

Altri suggerimenti

Rispondere a una domanda che dice "perché a volte qualcosa viene chiamato X ..." con " non è X " sta completamente rovinando la domanda, non è vero?

Per molte persone, "basso livello" e "alto livello" sono idee astratte flessibili che si applicano in modo diverso quando si lavora con sistemi diversi. Per le persone che non sono tutte attaccate al passato (non esiste un linguaggio moderno di basso livello per alcune persone) l'alta o la bassazza di una lingua si riferiranno comunemente a quanto vicino alla macchina target è. Questo include macchine virtuali, di cui un browser è ormai giorni. Ci scusiamo per tutti i ragazzi che si aspettano asm su hardware base.

Quando guardi il browser come una macchina virtuale, JavaScript è il più vicino possibile all'hardware (falso). Questo è il punto di vista che molti che chiamano javascript "basso livello" avere. Penso che sia una distinzione inutile da fare e le persone non dovrebbero rimanere bloccate su ciò che è basso e ciò che è alto.

" bassa " qui ha lo stesso significato che nelle frasi "Il numero di vittime subite nella prima guerra mondiale era basso", e "il gelato a basso contenuto di grassi ha poche calorie". Ha senso quando c'è un ovvio punto di confronto, ma fuori contesto, è semplicemente assurdo.

Molte persone lo dicono perché gli oggetti e le strutture forniti in JavaScript sono il più semplici possibile. Per sviluppare qualsiasi tipo di funzionalità reale, è necessario utilizzare una libreria esterna. Basso livello è un cattivo modo per dirlo, perché ha già un significato nell'informatica. Un modo migliore per dire che potrebbe essere senza librerie integrate.

Confronta questo con Java, dove il linguaggio reale non fa molto. Provare a creare un array senza ArrayList o accedere al file system senza le librerie IO. La maggior parte delle lingue sono molto più che semplici nozioni di base, sono dotate di questa funzionalità extra.

Con JavaScript, l'unico vero potere che otteniamo proviene dalle API introdotte dai browser e che non fanno parte della lingua. Cose come la manipolazione del DOM e Ajax sono fornite dal browser.

Potrebbe essere meglio riassumere tutto questo dicendo che con un linguaggio come Java, puoi iniziare a fare un lavoro serio senza dover scaricare librerie di terze parti, ma con JavaScript, devi scaricare una libreria o scrivi una tua biblioteca.

Non vedo javascript come una lingua di basso livello. Un sacco di funzionalità e booster esperienza utente sono forniti da esso. Forse altri potrebbero vederlo come tale semplicemente perché gli utenti possono disattivarlo nelle opzioni del proprio browser, ma è un linguaggio estremamente robusto che praticamente esegue il Web praticamente su tutti i tipi di browser ...

Non lo è, potrebbe essere il livello più basso possibile nella normale programmazione del browser, ma è alla pari con linguaggi funzionali come Scheme o Python.

Penso che le grandi carenze di Javascript siano la mancanza di spazi dei nomi o di packaging e nessun thread

È di basso livello rispetto al GWT e toolkit simili, ma non è un linguaggio di basso livello nello schema più ampio delle cose. Le funzionalità che offre sono di altissimo livello: chiusure, tipizzazione dinamica ed eredità prototipica sono solo alcuni esempi delle sue funzionalità di alto livello.

È considerato a basso livello da un numero di persone che preferiscono scrivere java per generare javascript e poi scrivere javascript (cioè non gli piacciono equamente o ingiustamente). Molte persone si lamentano di java in questi giorni, ma nonostante la mancanza di controllo del tipo statico la maggior parte delle persone probabilmente considererebbe il ruby ??e il pitone più facili da scrivere nella maggior parte dei casi (java è un linguaggio statico abbastanza semplice, che è molto più difficile da progettare bene senza grandi costruzioni -in funzionalità imposta quindi un semplice linguaggio dinamico).

Poche persone chiamerebbero Python o Ruby a basso livello rispetto a Java e se le persone fossero costrette a prendere di mira un pitone o un Ruby vm è difficile immaginare che un compilatore da Java a Python / Ruby diventerebbe popolare come GWT.

Concludendo javascript ha un problema di immagine (a volte le persone pensano che le lingue diventino più difficili man mano che diventano di livello più basso e viceversa).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top