Linguaggi di programmazione: Python grande successo per l’apprendimento automatico, ma deve cambiare

mobile-phone-1513945_1920
0

Python è sicuramente uno dei pochi linguaggi di programmazione che non scomparirà presto: è il primo o uno dei due migliori nei più importanti indici di popolarità dei linguaggi, contendendosi il primo posto con Java.

Tuttavia, Python ha i suoi punti deboli, non tanto per le comunità di data-science e machine-learning, ma piuttosto come linguaggio di programmazione generale.

A spiegarcelo sono due esperti che sostengono che, nonostante la sua popolarità, Python potrebbe ridursi a limitare il suo campo d’azione alla sola scienza dei dati.

I punti deboli di Python

E’ impossibile eseguire Python in un browser e non si può eseguire facilmente su uno smartphone. Inoltre, nessuno crea giochi in Python al giorno d’oggi.

Per costruire applicazioni browser, gli sviluppatori tendono ad optare per JavaScript, TypeScript, Go, o PHP. Stesso discorso per gli smartphone mobile, dove si prediligono Java, Kotlin, Swift di Apple o Dart di Google.

Queste sono solo alcune delle limitazioni sollevate da Armin Ronacher, uno sviluppatore che da anni lavora con Python e che 10 anni fa ha creato il framework Flask per risolvere i problemi che aveva quando scriveva applicazioni web in Python.

Flask è stato il framework web più popolare, prima di Django, nel sondaggio per sviluppatori di Python 2018 di JetBrains.

Nonostante il successo come linguaggio, Ronacher sostiene che Python rischia di perdere il suo fascino come linguaggio di programmazione generico e di essere relegato a un dominio specifico.

“Al momento, sembra che i campi totali per Python siano super applicabili e in espansione, ma ci saranno sempre gli smartphone e le applicazioni browser. Python non può servire a queste due cose in questo momento e comporta molte restrizioni”, dice.

Altro critico di Python è Peter Wang, co-fondatore e CEO di Anaconda, che critica i limiti di Python per la realizzazione di applicazioni desktop e mobili.  

“Sui desktop, Python non è mai il linguaggio di prima classe del sistema operativo, e deve ricorrere a framework di terze parti come Qt o wxPython. Sul web, il frontend è sempre JavaScript o un derivato. E sul mobile, Python è a malapena utilizzato”.

Sei un esperto IT e vorresti lavorare con Python? Dai un’occhiata ai nostri annunci di lavoro

Perché Python non può funzionare nel browser

Secondo Ronacher, i limiti di Python sono collegati alla progettazione e al rischio di rottura del codice utilizzato nei sistemi di produzione.

Mentre gli sviluppatori JavaScript possono incorporare il loro codice in un browser e hanno ogni scheda che esegue il proprio motore JavaScript, Python non può farlo.

Anche se l’esecuzione di Python in un browser è comunque impopolare, Ronacher pensa che questa limitazione comporterà degli svantaggi per il suo futuro come linguaggio di programmazione generale.

Secondo lui non si tratta di una sfida tecnica fondamentale ma piuttosto che un numero di persone si preoccupi di un’innovazione per un gruppo che potrebbe essere dolorosa per un altro gruppo della comunità di Python.

Gran parte della comunità di Python, infatti, si è spostata verso l’apprendimento automatico e la scienza dei dati e si preoccupa meno dei problemi di performance del linguaggio perché credono che possano essere superati semplicemente spostando il codice su una GPU o su un cluster.

“Ma questo significa che Python non viene più utilizzato nei giochi per computer, non viene compilato sul browser, ed è anche meno comunemente usato nelle applicazioni web”, dice Ronacher.

“Nuovo Python” è possibile, ma potrebbe dividere la comunità

La comunità di Python si rende conto delle debolezze del linguaggio. Tuttavia, Ronacher non vede una via d’uscita senza fratturare la comunità.

L’ultima volta che gli sviluppatori Python hanno cercato di introdurre cambiamenti importanti è stato Python 3, rilasciato nel 2008. Eppure, nel 2014, non tutti gli sviluppatori Python l’avevano adottato.

“Python è in una condizione in cui è molto difficile innovare senza rompere il codice. L’ultima volta che si è tentato di fare alcune modifiche più grandi a Python, che era Python 3, il codice di molte persone si è rotto. Ci sono voluti 10 anni perché l’ecosistema si ristabilisse”, dice Ronacher.

Sia Ronacher che Yang sono d’accordo sul fatto che ci potrebbe essere un successore di Python che non limiti l’uso del linguaggio esclusivamente alla scienza dei dati ed ai sistemi backend.

Tuttavia, Ronacher porta l’esempio di Perl, un successo per la programmazione sul web nei primi anni 2000, ma ora ben al di fuori della top 10 di Tiobe.

Con questo paragone vuole sottolineare che per cambiare il futuro di Python ci sarà bisogno di un carattere coraggioso e impegnato. Altro rischio legato a questo è che gli sviluppatori passino semplicemente ad un’alternativa moderna.

Ed i nuovi linguaggi come Rust e Julia: possibili competitor?

Ronacher dice che quando ha iniziato ad usare Rust ha provato le stesse “emozioni positive” del suo esordio con Python. Tuttavia, Rust ha la giovinezza dalla sua parte, il che lo rende estremamente gradito ma non molto usato.

Ronacher ritiene che la dichiarazione di missione di Rust sia fondamentale per la sua popolarità, nonostante la scarsa adozione, perché aiuta a definire quali parti del linguaggio si applicano ad alcuni sviluppatori e non ad altri.

Python ha anche rivali emergenti nel campo della scienza dei dati, come Julia, che però non ha ancora raggiunto la popolarità tradizionale

Wang ritiene che Julia sia attraente ma vede la popolarità di Python e R come un ostacolo per gli sviluppatori che conoscono già quei linguaggi ed ecosistemi.

“Julia come linguaggio ha un sacco di belle caratteristiche. Ma i linguaggi sono una tecnologia virale, in quanto c’è un effetto di rete. Fino a quando una certa percentuale di utenti non utilizza Julia attivamente e faccia pressione sugli altri, l’adozione sarà molto lenta. Una delle sfide di Julia è che per molti team, Python e R esistono già, e anche se sono tutt’altro che perfetti, possono essere ‘abbastanza buoni'”, conclude Wang.

Leggi anche  Linguaggi di programmazione: gli sviluppatori rivelano le loro preferenze