Python è molto utile, ma potrebbe non essere il linguaggio di programmazione del futuro – Tecnoblog
Come migliori offerte,
nessuna coda bloccataCi sono voluti alcuni decenni perché la comunità degli sviluppatori apprezzasse Python. Ma dall'inizio degli anni 2010, è cresciuto costantemente, superando anche C, C#, Java e JavaScript in popolarità. Ma per quanto tempo continuerà questa tendenza? Quando finalmente Python sarà sostituito da altri linguaggi e perché?
Mettere una data di scadenza su Python sarebbe una speculazione a livello di fantascienza. Invece, valutiamo le virtù che rendono popolare Python oggi e le debolezze che potrebbero romperlo in futuro.
Python e altri linguaggi di programmazione (Immagine: Vitor Pádua / Tecnoblog)
Questo post è originariamente apparso su Medium; è stato rieditato, tradotto e adattato da Tecnoblog per gentile concessione di Ari Joury.
Cosa rende Python popolare oggi
Il successo di Python si riflette nelle tendenze Stack Overflow, che misurano il numero di tag nei post sulla piattaforma. Date le dimensioni di Stack Overflow, questo è un buon indicatore della popolarità del linguaggio.
Python, JavaScript, Java, C#, R e C++ su Stack Overflow (Immagine: Riproduzione)
Circa il 16% di tutte le domande di Stack Overflow è etichettato come "python", più di Java, C# e C++ messi insieme. Nel frattempo, R ha ristagnato negli ultimi anni e molte altre lingue hanno visto un costante declino. Ci sono diverse ragioni per il grande interesse per Python.
Ha buoni anni da vivere
Python esiste dal 1990. Non solo questo significa che ha avuto molto tempo per svilupparsi, ma ha anche guadagnato una comunità ampia e solidale.
Se hai un problema a scrivere codice Python, è probabile che tu possa risolverlo con una singola ricerca su Google, solo perché qualcuno ha già riscontrato il tuo problema e ha scritto qualcosa di utile al riguardo.
egli è adatto ai principianti
Python esiste da decenni, dando ai programmatori il tempo di creare tutorial brillanti. Inoltre, la sintassi di questo linguaggio è molto leggibile dall'uomo.
Per cominciare, non è necessario specificare il tipo di dati. Hai appena dichiarato una variabile e Python capisce dal contesto se è un int, un float, un booleano o altro. Questo è un enorme vantaggio per i principianti. Chiunque lavori con C++ sa quanto sia frustrante non compilare il tuo programma perché hai sostituito un float con un numero intero.
E se hai mai dovuto leggere il codice Python e C++ fianco a fianco, dovresti capire quanto sia comprensibile Python. Sebbene il C++ sia stato progettato pensando alla lingua inglese, è più complicato da leggere rispetto al codice Python.
egli è polivalente
Poiché Python esiste da molto tempo, gli sviluppatori hanno creato un pacchetto per ogni scopo. In questi giorni, puoi trovare un pacchetto per quasi tutto.
Vuoi occuparti di numeri, vettori e matrici? andare da NumPy🇧🇷 Vuoi fare calcoli per tecnologia e ingegneria? Utilizzare il SciPy🇧🇷 Vuoi lavorare con la preparazione e l'analisi dei dati? Provalo Panda🇧🇷 Vuoi iniziare a esplorare l'intelligenza artificiale? incontra il Scikit-Impara.
Qualunque sia l'attività computazionale, è probabile che esista un pacchetto Python per essa. Ciò rende Python rilevante per i recenti sviluppi, come evidenziato dal crescente interesse per l'apprendimento automatico negli ultimi anni.
È piaciutoi vantaggi di Python
Da quello che ho detto prima, potresti pensare che Python rimarrà al top per molto tempo. Ma come ogni tecnologia, Python ha i suoi punti deboli. Esaminiamo uno per uno i fallimenti più importanti di seguito.
Sviluppo di applicazioni mobili
Mentre passiamo dal desktop allo smartphone, è chiaro che abbiamo bisogno di linguaggi robusti per creare software progettato per dispositivi mobili.
Tuttavia, pochissime applicazioni mobili sono sviluppate con Python. Non è impossibile: esiste un pacchetto Python chiamato Kivy per questo scopo.
Ma Python non è stato progettato per i dispositivi mobili. Quindi, sebbene ciò possa produrre risultati accettabili per le attività di base, la soluzione migliore è utilizzare un linguaggio progettato per lo sviluppo di app mobili. Alcuni framework di programmazione ampiamente utilizzati per dispositivi mobili includono React Native, Flutter, Iconic e Cordova.
Naturalmente, laptop e PC continueranno ad esistere per molti anni a venire. Ma dal momento che i dispositivi mobili hanno superato da tempo i computer desktop, è lecito affermare che imparare Python non è sufficiente per diventare uno sviluppatore esperto e generico.
errori di runtime
Uno script Python non viene prima compilato e poi eseguito. Invece, viene compilato ogni volta che lo esegui, quindi eventuali errori di codifica vengono visualizzati in fase di esecuzione. Questo porta a scarse prestazioni, richiede tempo e molti test – Molti stesso.
È ideale per i principianti perché i test insegnano molto. Ma per gli sviluppatori esperti, può essere difficile eseguire il debug di un programma Python complesso.
La rapidità
Python era molto lento da eseguire, 2-10 volte più lento della maggior parte degli altri linguaggi. È migliorato molto negli ultimi anni: il pacchetto Numpy, ad esempio, è incredibilmente veloce quando si tratta di liste, array, ecc.
Anche il supporto per il multiprocessing ha aiutato molto: ti consente di utilizzare tutti i core della CPU del tuo PC, invece di uno solo. Ho eseguito processi su 20 core contemporaneamente e, ehi, mi ha già risparmiato settimane di tempo di calcolo.
Tuttavia, Python è ancora più lento di alcune alternative. È tipizzato dinamicamente, il che significa che non è necessario specificare i tipi di dati come in altre lingue. Ciò significa che il programma deve riservare spazio sufficiente per ogni variabile che calcola, il che consuma molta memoria e comporta tempi di elaborazione più lunghi.
spazi vuoti
Spazi bianchi in Python (Immagine: Chris Ried/Unsplash)
In Python, usi spazi e rientri per indicare diversi livelli di codice. Questo lo rende visivamente accattivante e intuitivo da capire.
Altri linguaggi, come C++, si basano maggiormente su parentesi graffe e punti e virgola. Sebbene non sia visivamente accattivante e adatto ai principianti, rende il codice molto più facile da mantenere. Per progetti più grandi, questo è molto più utile.
I linguaggi più recenti, come Haskell, risolvono questo problema adottando l'uso degli spazi bianchi fornendo al contempo una sintassi alternativa senza spazi bianchi.
Scopo
Nella programmazione, l'ambito di una variabile determina se è possibile accedervi e modificarla in determinate parti del software. Questo è il contesto in cui questa variabile può essere "vista" e utilizzata. Ad esempio, se dichiari una variabile "x" in una funzione, sarà visibile solo nel corpo di quella funzione.
In origine, Python aveva un ambito dinamico. Ciò significa fondamentalmente che, per valutare un'espressione, il compilatore prima analizza il blocco di codice corrente e successivamente itera attraverso tutte le funzioni.
Il problema con l'ambito dinamico è che ogni espressione deve essere testata in ogni possibile contesto, il che è ingombrante. Questo è il motivo per cui la maggior parte dei linguaggi di programmazione moderni utilizza un ambito statico.
Python ha provato a passare all'ambito statico, il che non è andato molto bene. Normalmente, gli ambiti interni, ad esempio le funzioni all'interno delle funzioni, potrebbero vedere e modificare gli ambiti esterni. In Python, gli ambiti interni possono vedere solo gli ambiti esterni, ma non possono modificarli. Questo porta a molta confusione.
Lambda
In Python, una funzione lambda è un tipo speciale di funzione che non ha un nome definito ed è contenuta in una singola riga di codice.
Ad esempio, se vuoi raddoppiare un numero, puoi creare una funzione tradizionale che fa questo:
def dobro_de_x(x): return x*2
Oppure puoi fare quanto segue:
lambda x: x*2
Rimane questa opzione:
dobro_de_x(x) = lambda x: x*2
Nonostante tutta la flessibilità di Python, l'uso delle funzioni lambda è piuttosto restrittivo. Possono essere solo espressioni, non affermazioni.
In Python, un'istruzione è un'istruzione che l'interprete può eseguire, ad esempio "if", "for" e "while". D'altra parte, un'espressione è una combinazione di elementi che devono essere valutati, inclusi valori, variabili, operatori e chiamate di funzione.
La distinzione tra espressioni e dichiarazioni è del tutto arbitraria e non esiste in altre lingue.
Cosa potrebbe sostituire Python in futuro
Ci sono concorrenti relativamente nuovi nel mercato dei linguaggi di programmazione:
- o Ruggine offre lo stesso tipo di sicurezza di Python: nessuna variabile può essere accidentalmente sovrascritta. E offre maggiori prestazioni con concetti di proprietà e prestito. È anche il linguaggio di programmazione più popolare negli ultimi anni, secondo Stack Overflow Insights.
- o andare è ottimo per i principianti, proprio come Python. Ed è così semplice che rende il codice ancora più facile da mantenere. Inoltre, gli sviluppatori Go sono tra i programmatori più pagati là fuori.
- e Giulia è un nuovo linguaggio che compete direttamente con Python. Colma una lacuna nei calcoli tecnici su larga scala: normalmente si userebbe Python o Matlab e si collegherebbe tutto alle librerie C++, che sono necessarie su larga scala. Ora puoi usare Julia invece di destreggiarti tra due lingue.
Sebbene ci siano molti altri linguaggi, Rust, Go e Julia sono quelli che risolvono i punti deboli di Python. Tutti si distinguono per le tecnologie che stanno guadagnando forza, soprattutto nel campo dell'intelligenza artificiale. La loro quota di mercato è ancora bassa, come puoi vedere di seguito nel numero di tag su Stack Overflow, ma la tendenza sembra promettente:
Rust, Go et Julia sur Stack Overflow (Immagine: conferenza)
Sì, Python dovrebbe essere ancora molto richiesto per qualche altro anno. Data la sua attuale popolarità, ci vorrà sicuramente mezzo decennio, se non un intero decennio, perché uno di questi nuovi linguaggi lo sostituisca.
programmazione Python