JavaScript è stato sviluppato oltre a quello che era stato originariamente progettato per fare?

9

Ho parlato con un amico dello scopo di Javascript, quando e come dovrebbe essere usato, ecc. Ha citato quello:

JavaScript was designed to add interactivity to HTML pages

[...]

JavaScript gives HTML designers a programming tool

  • HTML authors are normally not programmers, but JavaScript is a scripting language with a very simple syntax! Almost anyone can put small "snippets" of code into their HTML pages JavaScript can react to events
  • A JavaScript can be set to execute when something happens, like when a page has finished loading or when a user clicks on an HTML element JavaScript can read and write HTML elements
  • A JavaScript can read and change the content of an HTML element JavaScript can be used to validate data
  • A JavaScript can be used to validate form data before it is submitted to a server. This saves the server from extra processing
  • JavaScript can be used to detect the visitor's browser - A JavaScript can be used to detect the visitor's browser, and - depending on the browser - load another page specifically designed for that browser.
  • JavaScript can be used to create cookies - A JavaScript can be used to store and retrieve information on the visitor's computer.

Tuttavia, sembra che Javascript si stia abituando a fare molto più di questi giorni. Il mio amico si oppone anche all'utilizzo della funzionalità OOP di Javascript, affermando che "non si dovrebbero elaborare dati, ma semplicemente convalidare". Javascript è davvero limitato alla convalida dei dati e alla creazione di immagini appariscenti su una pagina Web?

Prosegue affermando "non dovresti tentare di accedere ai database tramite javascript" e dice anche "in generale non vuoi fare il tuo lavoro pesante in javascript". Non posso dire di essere d'accordo con la sua opinione, ma mi piacerebbe avere un altro input su questo.

Quindi, la mia domanda: JavaScript è evoluto dalla definizione di cui sopra a qualcosa di più potente, ha il modo in cui lo usiamo cambiato, o sono semplicemente sbagliato? Mentre mi rendo conto che questa è una domanda soggettiva, non riesco a trovare ulteriori informazioni su di essa, quindi alcuni link sarebbero buoni, se non altro. Non sto cercando un dibattito, solo una risposta.

    
posta Elliot Bonneville 19.03.2012 - 01:11
fonte

3 risposte

20

Le persone che pensano che JavaScript non sia un linguaggio di programmazione sono persone che hanno un'opinione su JavaScript che non dovresti rispettare.

JavaScript è un linguaggio che si è sviluppato organicamente ispirato alla semantica di Scheme e alla sintassi di Java. Lo scopo originale non era generale, ma ora è diventato così.

JavaScript come linguaggio è adatto a svolgere qualsiasi compito, se è adatto a farlo. Dai un'occhiata ad esempi come node.js in cui JavaScript ha accesso all'ambiente host costituito da funzionalità IO che consente di utilizzarlo per la programmazione lato server generico

My friend also advocates against using Javascript's OOP functionality, claiming that "you shouldn't be processing data, merely validating." Is Javascript really limited to validating data and making flashy graphics on a web page?

No, JavaScript è un linguaggio di programmazione, se si desidera rappresentare strutture dati, algoritmi e logica, quindi utilizzare gli strumenti offerti dalla lingua. In particolare le funzioni di prima classe e i prototipi sono strumenti potenti.

He goes on to claim "you shouldn't be attempting to access databases through javascript" and also says " in general you don't want to be doing your heavy lifting in javascript". I can't say I agree with his opinion, but I'd like to get some more input on this.

Sbagliato, nel browser abbiamo un database chiamato indexedDB a cui accediamo con JavaScript. Si tratta di un database cotto direttamente nel browser e, se si desidera utilizzarlo (e si dovrebbe), si utilizza JavaScript.

Si noti inoltre che sia mongodb che couchdb consentono di utilizzare javascript per eseguire direttamente query ad hoc sul database.

Per quanto riguarda il sollevamento pesi, è parzialmente corretto. Se stai facendo sollevamento pesi dovresti farlo in C o in erlang. Sebbene si noti che il termine "sollevamento pesante" è vago, ad esempio non vorrei codificare o decodificare video in JavaScript, non farei l'elaborazione delle immagini in JavaScript (uso C). Non vorrei crunch di numeri in JavaScript (usa fortran).

Has Javascript evolved from the definition above to something more powerful, has the way we use it changed, or am I just plain wrong

JavaScript è stato scritto in un periodo di 2 settimane solo per eseguire lo slap di funzionalità di scripting minori in HTML. Da allora è cresciuto molto. Dal momento che ES3 (1999) è stato un potente linguaggio di programmazione generico.

    
risposta data 19.03.2012 - 01:24
fonte
8

La visione del tuo amico è effettivamente molto obsoleta e manca tutto ciò che è accaduto da quando Google ha rilasciato GMail.

Ora, questo significa che Javascript è stato sviluppato oltre ciò che è stato originariamente progettato per fare? Una specie di. Ma non dimenticare che il design è cambiato nel frattempo e cambierà in futuro in base alle nuove esigenze degli sviluppatori. Questo è valido anche per altre lingue popolari. Ad esempio, quando è stata rilasciata la prima versione di C #, nessuno si aspetterebbe di consentire il codice dinamico nella progettazione. Ora il DLR è disponibile per alcuni anni.

    
risposta data 19.03.2012 - 01:29
fonte
2

La lingua va sempre oltre ciò che pensavamo all'inizio. Parla con chiunque all'inizio di C (o C ++), qualcuno ha pensato che la lingua sarà trovata quasi ovunque ora. Io non la penso così

Ogni lingua vince per imparare di più / spingere oltre.

Sono d'accordo sul fatto che Javascript fosse / ancora un linguaggio poco apprezzato, il tuo amico non è l'unico. Il problema non è pensare che il linguaggio X o Y sia cattivo / inutile, il problema è mantenere questa idea per sempre. In Informatica / IT, tutto cambia rapidamente e cambierà molto anche in futuro.

Ecco perché è importante continuare a imparare / pensare fuori dagli schemi ...

    
risposta data 19.03.2012 - 02:28
fonte

Leggi altre domande sui tag