Recentemente mi sono trovato a chiedermi: qual'è la vera utilità del Python?
C'è un ambito nel quale brilla come uno dei migliori linguaggi?
Ci ho pensato un attimo e non riesco a trovargli un ambito in cui è effettivamente migliore, di fatto riesce a fare di tutto, eppure lo fa sempre in modo non brillante.
Programmazione Desktop: Si possono fare applicazioni con GUI su Python?
Certo, e ci sono un sacco di librerie diverse per farlo, però... sono tutte scomode, nessuna ha un designer vero e proprio e bisogna scrivere centinaia e centinaia di righe di codice solo per posizionare i componenti nell'interfaccia.
A questo punto perché non usare il C# o il Java o persino il C++ che a confronto hanno librerie più solide e molto spesso IDE con designer per l'UI?
Programmazione Mobile: Si possono creare app con Python?
Ni... cioè, c'è Kivy, ma... ci sono sempre problemi per ogni minima cosa, e anche in questo caso fare le GUI diventa un'agonia.
A questo punto perché non usare Java o Kotlin?
Backend Web: Si può fare il backend di un sito con Python?
Si, e stavolta davvero si senza complicazioni.
Però... la maggior parte dei provider per hosting non permette l'utilizzo di Python per siti web, ad esempio Aruba lo permette tramite cgi-bin, con una versione di Python che cambia da sito a sito e da server a server (e che non è controllabile).
Sicuramente si può prendere una macchina virtuale in affitto installarci python e settarsi tutto a mano ma... e la differenza di prezzo tra un hosting e una VPS dove la mettiamo?
Non sempre servono le performance di una macchina esclusivamente dedicata al proprio sito.
A questo punto non è più semplice usare qualcosa di più universalmente usato e funzionante come il PHP (per quanto abbia le sue magagne)?
Frontend Web: Si può usare Python per fare il frontend di un sito web?
Tecnicamente non è impossibile, ci sono implementazioni di Python in javascript per quanto limitate, ma... a questo punto perché non usare direttamente javascript?
A conti fatti l'unica utilità che vedo nel Python è l'esagerata quantità di librerie presenti, cosa che rende estremamente facilite e versatile prototipare velocemente app da poi realizzare in altri linguaggi o utilità per la linea di comando.
Però se vogliamo vederlo dal punto di vista della facilità e la versatilità ci sono altri linguaggi altrettanto (se non di più) semplici.
In più se vogliamo vederlo dal punto di vista della portabilità... non tutti i sistemi operativi hanno un interprete python installato, anzi, in pratica solo Linux lo ha, e sempre in una versione inferiore al 3, motivo per cui per distribuire un app python generalmente si crea un pacchetto con l'interprete incluso (ad esempio usando pyinstaller).
Riassumendo... Perché Python? C'è qualcosa in cui Python riesce meglio degli altri linguaggi?
EDIT: ho creato un poll per sbaglio :v