I più lenti linguaggi di programmazione moderni e le ragioni della loro lentezza

Condividi questo articolo:


I linguaggi di programmazione più lenti e le ragioni della loro lentezza

I linguaggi di programmazione sono in circolazione da decenni. Ogni linguaggio è costruito per soddisfare un certo bisogno.
Ad oggi, il mondo conta circa 700 notevoli linguaggi di programmazione. Mentre circa 250 sono riusciti a rimanere a galla, il resto è stato scaricato dalla comunità di programmazione. (Ultimi dati da Wikipedia)
Le prestazioni sono sempre state una questione allarmante per i programmatori. Mentre prima il tempo di esecuzione poteva essere misurato nei calendari, oggi si misura in frazioni di secondo. I crediti vanno ai progressi dell’elettronica.
La velocità con cui i computer si evolvono segue la legge di Moore:

In elettronica, velocità e prestazioni si traducono nel numero di transistor che un particolare chip può avere. Il numero sorprendentemente raddoppia ogni due anni secondo la legge di Moore. Ecco perché il vostro telefono cellulare a misura di mano è molto più veloce di un supercomputer a misura di stanza degli anni Novanta.

Quando si parla di informatica, c'è una differenza tra un codice più veloce e un PC più veloce. Un programma lento e un computer lento.

Scommetto che i nostri amici di Intel e AMD stanno facendo un ottimo lavoro nel creare potenti sistemi informatici in termini di velocità. Creare programmi robusti e veloci dipende quindi da noi.

Una delle cose da tenere in considerazione nella creazione di un software sono le aspettative del linguaggio. Ogni linguaggio è implementato in modo diverso, quindi ognuno di essi offre i propri meriti. E la velocità potrebbe semplicemente non essere tra questi meriti.
Ora, se state cercando di costruire un programma che svolga compiti impegnativi come giochi e calcoli matematici pesanti, fareste meglio a stare alla larga dai linguaggi di programmazione lenti.

Generalmente, i linguaggi di programmazione sono di due tipi:

  • linguaggi di programmazione a caratteri statici
  • Linguaggi di programmazione a caratteri dinamici

I linguaggi a caratteri statici sono solitamente compilati, il che significa che un programma chiamato compilatore analizza e converte tutto il vostro codice inglese in linguaggio assembly e produce un nuovo file. Questo file, a sua volta, viene eseguito manualmente dall’utente.
I linguaggi dinamici vengono solitamente interpretati, il che significa che un software – l’interprete – analizza ed esegue il codice linea per linea.
I particolari dei compilatori e degli interpreti sono fortemente accademici e quindi esulano dall’ambito di questo articolo.
Alla maggior parte di noi piacciono i linguaggi tipizzati dinamicamente. I linguaggi che sono meno inclini all’errore e che vengono interpretati facilmente dall’umano come Python. Ma questo ha un costo. La velocità.
In questo post, stabiliremo i 5 linguaggi di programmazione a caratteri dinamici comuni relativamente più lenti.

Perl

Se avete usato UNIX in precedenza, è altamente improbabile che non abbiate mai visto uno script Perl. La maggior parte dei file UNIX sono in Perl.
Il Perl è un linguaggio di scripting Unix. È stato creato per mitigare le difficoltà che i programmatori devono sopportare per i lunghi programmi Shell. È semplicemente un mucchio di comandi Shell inseriti in un file.
Ancora più importante, Perl è venuto a facilitare i compiti che erano considerati un incubo da realizzare in C e negli altri linguaggi Unix. Naturalmente, C non avrebbe accettato di essere superato senza pagarne il prezzo.
Così com’era, Perl fu tassato per la velocità.
Inoltre, trovare un grande programmatore Perl di questi tempi è come cercare di trovare un ago in un pagliaio. Questo perché, a differenza di Python, per esempio, il Perl è piuttosto sensibile alle implementazioni e ogni operatore dovrebbe essere nel posto giusto per avere un programma relativamente efficiente.
Anche con le implementazioni più efficienti, Perl si trova ancora in difficoltà rispetto alle sue controparti di linguaggi di programmazione di alto livello. Eppure, è ancora in crescita e i problemi di efficienza vengono risolti uno dopo l’altro, soprattutto dopo la pubblicazione di Perl 6 nel 2019, che si chiamava Raku.

PHP

PHP è un linguaggio di programmazione per lo sviluppo web di scripting e di solito integra HTML, CSS e MySQL nella distribuzione di siti web.
Molti sostengono che il PHP è obsoleto. Ma la verità è che: NON LO È!
w3techs ha detto :
“PHP è usato dal 79,0- di tutti i siti web di cui conosciamo il linguaggio di programmazione lato server”.
Inoltre, la recente indagine StackOverflow 2020 sulla programmazione, lo scripting e i linguaggi di markup ha mostrato che il PHP è un linguaggio perfettamente vivo che supera sia il C++ che il Typescript:

Tuttavia, poiché il PHP ha una curva di apprendimento graduale e poco costoso da ospitare, ci vogliono danni in termini di prestazioni.
PHP è incredibilmente lento a causa della mancanza di compilazione just-in-time (compilatore JIT) e del fatto che è un linguaggio a caratteri dinamici. Fortunatamente, il 26 novembre 2020, PHP 8 è uscito con una funzione di ottimizzazione delle prestazioni: un compilatore JIT integrato.
Il compilatore JIT integrato ha aiutato PHP ad avvicinarsi ai linguaggi di programmazione della sua classe in termini di velocità e prestazioni.

Ruby

Yukihiro Matsumoto, l’autore ufficiale di Ruby e conosciuto come Matz nella comunità di Ruby, ha detto:
“Ruby è progettato per rendere felici i programmatori”
Ruby è un linguaggio di programmazione orientato agli oggetti. Tutto viene interpretato come un oggetto. Questo lo ha reso uno strumento elegante e facile da usare. Agita la bacchetta e, il tuo compito è completato.
Tuttavia, in termini di prestazioni, Ruby è un linguaggio tipicamente interpretato. Poiché i linguaggi interpretati eseguono il codice dichiarazione per dichiarazione, essi tendono ad essere più lenti rispetto ai linguaggi che usano i compilatori.
Ruby prende un altro colpo in termini di velocità dal Global Interpreter Lock (GIL). Ciò significa che il linguaggio permette ad un thread alla volta di usare il GIL.
Infine, Ruby soffre anche di un elevato consumo di memoria

Python

Il versatile Python si è recentemente classificato al 1° posto come il più popolare linguaggio di programmazione secondo molteplici fonti come statista e The Economist. È molto usato nella scienza dei dati, nello sviluppo web e nella sicurezza informatica.
Inutile adulare Python in questa occasione, poiché i suoi vantaggi superano chiaramente i suoi svantaggi. Ma allo stato attuale delle cose, la maggior parte dei pitonisti è allergica alla velocità. Sì, purtroppo Python è ossessionato dalla velocità.
Python e Ruby sono membri della stessa famiglia. Sono entrambi lenti a causa della GIL e del fatto di usare un interprete. La differenza principale tra questi due è che il primo è orientato alla scienza dei dati, mentre il secondo è più orientato allo sviluppo del web.
Tuttavia, Python è supportato dalle sue potenti librerie e funzioni. E alcune di queste librerie e funzioni, come il modulo Numpy e la funzione integrata Filter(), sono implementate in C++, con un significativo incremento in termini di prestazioni. Questo è il motivo per cui Python è in pieno boom in questi giorni, superando i suoi colleghi linguaggi di programmazione.

Conclusione

Mentre la velocità e le prestazioni sono fattori importanti da tenere in considerazione quando si tratta di implementare un software, la colpa non va attribuita solo ai linguaggi di programmazione.
Infatti, la causa principale dei maggiori problemi di velocità e prestazioni è la cattiva implementazione e la cattiva progettazione del codice.


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: