Qual è la differenza tra un linguaggio di programmazione e un linguaggio di scripting?

Migliore risposta

Python è un linguaggio di scripting, sebbene sia anche un vero e proprio linguaggio orientato agli oggetti linguaggio di programmazione. La differenza tra un linguaggio di scripting e un “programma” è se il codice viene eseguito o meno da un interprete. Questo è probabilmente il modo più semplice per pensarci.

Quindi, se scrivi uno script Python, avresti un file .py. Quando vuoi eseguire quel file, dovresti effettivamente eseguire python e passare il tuo file .py come argomento ad esso. Qualcosa come:

/usr/bin/python /Path/To/MyScript.py

Python eseguirà quindi lo script. Come altri hanno già detto, puoi inserire una riga shebang nel tuo script, ma questo dice semplicemente alla tua macchina dove trovare linterprete da usare per eseguire lo script. Ci sono vantaggi e svantaggi nellapproccio dellinterprete. Un vantaggio principale sarebbe la facilità duso. Puoi inserire la riga sottostante in un file .py e puoi eseguirla tramite python:

print("Hello world!")

Con un linguaggio come Swift , C ++, C # o Java, ad esempio, compilerai effettivamente il tuo programma in codice macchina e il file risultante da quella compilazione sarebbe il tuo programma o parte del tuo programma. Tuttavia, sarebbe pronto per essere distribuito così comè e non è necessario disporre di altri programmi per eseguirlo. Le lingue interpretate tendono a non essere altrettanto veloci per vari motivi. Probabilmente vale la pena menzionarlo.

Hai ragione che Python non è poi così paragonabile a Bash. Sebbene tu possa ottenere molto in Bash, il linguaggio in sé non è molto potente e non è progettato per scrivere completamente su programmi o soluzioni con. Python è un linguaggio di programmazione orientato agli oggetti completo di funzionalità e con esso puoi scrivere praticamente qualsiasi cosa. Quindi è vero che entrambi sono linguaggi di scripting, ma non sono nella stessa lega. Per uno, Bash non è orientato agli oggetti. Inoltre, con Bash, stai principalmente invocando app per console, scritte in una lingua diversa. Quindi analizzi i risultati con Bash o li invii alla successiva utilità della console tramite pipe.

Ecco alcuni esempi di linguaggi di scripting interpretati:

Python, Ruby, Node JS, Powershell, vbScript, Javascript, Appescript, Bash, Perl ecc.

Ecco alcuni linguaggi compilati e fortemente tipizzati:

Swift, Objective C, C, C ++, C # , Java

Si spera che questo aiuti a chiarirlo.

Risposta

Anche i linguaggi di scripting come Python, Ruby, JavaScript, PHP sono linguaggi di programmazione. Sono diversi rispetto ai tradizionali linguaggi compilati in quanto sono interpretati e hanno una digitazione dinamica: il tipo di dati di un oggetto può essere modificato in qualsiasi momento. In altre parole, non è necessario definire in anticipo il tipo di dati di un oggetto o il valore di ritorno di una funzione ed è possibile cambiarlo al volo.

Tradizionalmente, i linguaggi di scripting sono usati per semplici e compiti veloci. Ma questo non è più vero. Ora ci sono programmi di grandi dimensioni e basi di codice in Python, Ruby, JavaScript e PHP. Alcuni di questi linguaggi hanno prestazioni lente rispetto ai linguaggi compilati. Ma anche questo non è più vero. Con le tecnologie JIT, JavaScript e PyPy hanno mostrato un grande miglioramento delle prestazioni, così come PHP 7.

Alla fine, è solo una terminologia che deve essere riformulata.

Tecnologia web su il suo più semplice è un insieme di documenti statici serviti dal server web al browser web e il browser lo visualizza secondo HTML e CSS. HTML è un linguaggio di markup e CSS aggiunge stili, semplificando la scrittura di pagine web coerenti e personalizzate. Ma il contenuto è statico e per cambiare qualsiasi contenuto, è necessario modificare il contenuto HTML esistente o scrivere nuovo contenuto HTML.

Per rendere dinamico il contenuto web, è possibile adottare uno dei due approcci: i) CGI o ii) incorporamento codice allinterno di pagine HTML. La tecnica precedente fa in modo che il server web chiami un eseguibile (scritto in un linguaggio di programmazione come C, Perl o qualsiasi altro, compresi i linguaggi di scripting) che genera dinamicamente unintera pagina web (con intestazioni HTML appropriate ecc.), Prende il risultato generato dal eseguibile e restituirlo al browser web. Ciò richiede luso di librerie che capiscano come interagire con un server web (HTTP). Tedioso, ma la prima forma di contenuto web dinamico è stata scritta in questo modo. Questultimo ha un approccio diverso. Il server Web riconosce le pagine con codice incorporato (solitamente contenente HTML incorporato con codice scritto in un linguaggio di scripting come PHP, JSP, Python) lo invia a un motore di scripting che esegue solo il codice incorporato e lo sostituisce con il risultato dellesecuzione del codice ( lasciando invariato il resto di HTML, CSS, JavaScript) e restituire la pagina HTML modificata al server che a sua volta la restituisce al browser web. Python e Ruby usano anche una variazione simile ma leggera di questo approccio. Questo è lo scripting lato server

JavaScript è iniziato come linguaggio di codifica / scripting dinamico lato client.Ogni browser ha un interprete JavaScript incorporato. Il codice JavaScript può essere incorporato in una pagina Web e inviato al browser Web che quindi esegue questo codice sul lato client per attività come la convalida dei moduli, modificando dinamicamente il DOM. Ma con lavvento di Node.js, JavaScript può fare ciò che fanno i linguaggi di scripting lato server.

Poi è arrivata AJAX, una tecnologia che consente al codice JavaScript lato client di eseguire script lato server, estrarre il risultato dal server e popolare il DOM. In questo modo è possibile popolare dinamicamente le caselle a discesa nel browser senza aggiornare la pagina web. Le librerie JavaScript come jQuery hanno reso lo scripting lato client modulare e facile. I framework HTML / CSS come Bootstrap hanno fatto lo stesso per HTML5 e CSS3.

I framework per applicazioni Web modularizzano e semplificano la scrittura di applicazioni Web. Ogni linguaggio di scripting ha la sua raccolta di framework di app Web. Ruby ha Ruby on Rails. Python ha Django, Flask. PHP ha Laravel. JavaScript ha AngularJS e altri.

Le applicazioni Web si basano su database come archivio dati persistente. Quindi conoscere le tecnologie SQL e database come Database Abstraction Layer e Object Relational Mapping è essenziale. Lavvento dei database NoSQL aggiunge nuove cose che uno sviluppatore web deve imparare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *