Perché Pyhton e’ diventata una lingua così popolare

Python a cosa serve

Python è un linguaggio per il machine learning. La maggior parte dei corsi machine learning sono stati scritti usando il linguaggio Python e l’educazione alla codifica nel suo insieme ha adottato Python come la lingua da imparare, con ampio uso nei corsi dedicati a small computer come Raspberry Pi (AMD) o su altri core.

Instagram è il sito più grande che esegue Django, che è un framework web di Python: un back-end.

Django è un framework robusto ed elegante, e quindi il problema non sta nelle sue carenze intese come mancanze di feature.

Pygame è la risorsa principale per l’apprendimento di Python e delle meccaniche di gioco. Alcuni buoni giochi sono stati scritti in Python.

Grazie alla sua natura altamente leggibile e alla sintassi intuitiva, molti trovano più facile imparare Python.

Python per l’intelligenza artificiale

Python è un linguaggio-collante per applicazioni che richiamano moduli di machine learning adatti a realizzare sistemi cosiddetti di AI. Anzi, per il machine learning e deep learning, Python offre, pur essendo un linguaggio di programmazione interpretato (lento), alcuni vantaggi:

  • Python può accedere a molte librerie esterne (moduli) con funzioni utili per il calcolo scientifico. Si evita così di doverle sviluppare ex novo. Le librerie esterne del Python sono spesso sviluppate con altri linguaggi compilati di alto livello come il linguaggio C e Fortran. Pertanto, sono molto veloci nell’esecuzione.
  • Il linguaggio Python è simile al linguaggio naturale (lingua inglese).
  • È molto più facile da usare rispetto agli altri linguaggi di programmazione come C o Java

Python e le librerie principali per il machine learning

Python è un linguaggio di programmazione ad alto livello, orientato agli oggetti, adatta a sviluppare applicazioni distribuite, scripting, computazione numerica e system testing. Fu ideato da Guido van Rossum all’inizio degli anni novanta. Il nome fu scelto per via della passione di van Rossum per i Monty Python e per la loro serie televisiva Monty Python’s Flying Circus.

Le caratteristiche più immediatamente riconoscibili di Python sono le variabili non tipizzate e l’uso dell’indentazione per la definizione delle specifiche. Altre caratteristiche distintive sono l’overloading di operatori e funzioni tramite delegation, la presenza di un ricco assortimento di tipi e funzioni di base e librerie standard, sintassi avanzate quali slicing e list comprehension.

Sebbene Python venga in genere considerato un linguaggio interpretato, in realtà il codice sorgente non viene convertito direttamente in linguaggio macchina. Infatti passa prima da una fase di pre-compilazione in bytecode, che viene quasi sempre riutilizzato dopo la prima esecuzione del programma, evitando così di reinterpretare ogni volta il sorgente e incrementando le prestazioni. Inoltre è possibile distribuire programmi Python direttamente in bytecode, saltando totalmente la fase di interpretazione da parte dell’utilizzatore finale e ottenendo programmi Python a sorgente chiuso.

Questo è possibile anche grazie all’ampio set di librerie, ossia insiemi di routine e funzioni scritte che svolgono un determinato compito, che possiede e può richiamare a seconda delle necessità. Le librerie vengono spesso confuse con i termini framework e packages.

Librerie

Python ha una vasta libreria standard, il che lo rende adatto a molti impieghi. Oltre ai moduli della libreria standard se ne possono aggiungere altri scritti in C oppure Python per soddisfare le proprie esigenze particolari. Tra i moduli già disponibili ve ne sono per scrivere applicazioni web: sono supportati Mime, Http e tutti gli altri standard Internet. Sono anche disponibili moduli per creare applicazioni con interfaccia grafica, per connettersi a database relazionali, per usare le espressioni regolari. La libreria standard è uno dei punti forti di Python. Infatti essa è compatibile con tutte le piattaforme, a eccezione di poche funzioni, segnalate chiaramente nella documentazione come specifiche di una piattaforma particolare. La libreria può essere vista come un insieme di moduli dove ogni modulo contiene delle istruzioni e definizioni semplici. L’accorpamento di vari moduli, quindi di codice istruzioni, costituisce una libreria. Spesso i moduli sono già stati scritti da altri sviluppatori, e non c’è bisogno di ripartire da capo ogni volta. Il loro scopo è quello di semplificare le attività, aiutando gli sviluppatori a scrivere solo poche righe anziché una grande quantità di comandi. Il codice delle librerie richiama classi e metodi che normalmente definiscono operazioni specifiche in un’area del dominio. Ad esempio, ci sono alcune librerie di matematica che possono far sì che lo sviluppatore chiami semplicemente la funzione senza ripetere l’implementazione di come funziona un algoritmo.

Packages

Per capire cosa sono i packages si può immaginare la struttura delle directory dove i file vengono memorizzati sul disco del computer. Di solito non archiviamo tutti i nostri file nella stessa posizione. Utilizziamo una gerarchia di directory ben organizzata per un accesso più semplice. File simili sono tenuti nella stessa directory, ad esempio, potremmo conservare tutti i brani musicali nella directory “musica”. Analogamente a questo, Python ha packages per directory e moduli per i file. Dato che una directory può contenere sottodirectory e file, similmente, un pacchetto Python può avere sotto-pacchetti e moduli. Per fare in modo che Python consideri come un package una directory, questa deve contenere un file chiamato __init__.py . Questo file può essere lasciato vuoto ma generalmente il codice di inizializzazione per quel pacchetto viene inserito in questo file.

Framework

A differenza delle librerie, per framework si intende ”un’astrazione, in cui il software che fornisce funzionalità generiche può essere modificato selettivamente da un ulteriore codice scritto dall’utente, fornendo così un software specifico per l’applicazione“. Si può considerare il framework come uno strumento software che fornisce un modo per creare ed eseguire applicazioni web e per farlo si avvale spesso di librerie e packages. Utilizzando un framework web non è necessario scrivere codice per conto proprio e perdere tempo cercando possibili errori di calcolo e bug. All’inizio dello sviluppo web, tutte le applicazioni erano codificate a mano e solo lo sviluppatore di una determinata app poteva cambiarlo o distribuirlo. I framework web hanno introdotto un modo semplice per uscire da questa trappola. La loro varietà ora funziona bene sia per pagine web statiche che dinamiche. Possiamo avere due tipologie di Framework web:

  • Server-side: definito anche come framework back end, sono applicazioni software che facilitano la scrittura, la manutenzione e la scalabilità delle applicazioni web. Forniscono strumenti e librerie che semplificano le comuni attività di sviluppo Web, inclusi gli Url di routing ai gestori appropriati, l’interazione con i database, le sessioni di supporto e l’autorizzazione dell’utente, l’output di formattazione (ad esempio Html, Json, Xml) e il miglioramento della sicurezza dagli attacchi web.
  • Client-side: definito anche framework frontend, consiste in un pacchetto costituito da una struttura di file e cartelle di codice standard (Html, Css, documenti JS ecc.). Si occupa essenzialmente delle parti rivolte verso l’esterno di un sito o di un’applicazione web. In breve, ciò che un utente vede quando apre l’app.

Esiste una terza situazione (definita Full-stack Framework) che è la combinazione di entrambe le estremità frontend e backend. Uno sviluppatore full stack è un tuttofare. Sono responsabili per tutti i livelli di sviluppo, da come il server è impostato per il CSS relativo alla progettazione. C’è da dire che è complesso gestire entrambe le parti. Se inoltre si vuole conoscere la lista dei web frameworks scritti in linguaggio Phyton si può vedere il seguente Link (uno dei più popolari è Django).

Share Post