Perchè Python non mi piace ma continuo ad usarlo

Partiamo dal presupposto che programmo principalmente in PHP e JavaScript quindi graffe e punti e virgola a fine riga.

Ho imparato Python 3 anni fa con il libro Rapid GUI Programming With Python and Qt: The Definitive Guide to Pyqt Programming e con Pocket Python dell’Apogeo.

In poche parole ho scelto Python perchè mi è sembrata la soluzione più veloce per usare le QT senza dover imparare il C.

Nel tempo ho realizzato LearnHotkeys, Plessc, QAsana e SyntaxAlert. Inoltre ho scritto Introduzione a PyQT 1 Ed di cui ho iniziato un anno fa la raccolta per le proposte per la seconda edizione (che ho ripreso a scrivere da poco aggiungendo altri snippet).

Per la stessa guida ho realizzato un boilerplate per software PyQT che nel tempo è stato molto utile per realizzare gli altri programmi.

Quindi insomma un piccolo curriculum in Python lo possiedo. Oltre anche al mio lavoro per Naonis in cui stiamo facendo un bel lavoro tra interfaccia CLI e Web.

Lavorando in Python ho apprezzato molto la versione 3 che ha semplificato molte cose ostiche, che uso in tutti i miei progetti personali, ma purtroppo la 2 ha ancora un buon numero di utilizzatori e sviluppatori.

I problemi che riscontro

Il problema principale per me è la mancanza delle graffe che mi aiutano a livello grafico a riconoscere i blocchi rispetto alle indentazioni pure di Python.

La maggior parte degli editor supportano una evidenziazione dei blocchi, basta posizionarsi sulla graffa e colorano il blocco di codice.

A parte questo mi trovo spaesato molto per via delle differenziazione tra lista, indici e tuple che per me sono solo una grande complicazione di un concetto molto semplice: gli array.

Il concetto dei decoratori non dimentichiamocelo che secondo me altera il concetto di funzione.

Che senso ha stampare in console l’allocazione dello spazio in RAM? La ritengo inutile ma alla fine non dà fastidio, la cosa che ritengo più odiosa di tutti sono i trackback.

Come pensata è utile ma è inutile nella maggior parte delle volte.

Inoltre gli errori generati da Python sono spesso inutili. Nel senso che non spiegano l’errore e che bisogna ogni volta cercare su internet perchè non sono intuitivi a livello di spiegazione.

Perchè continuo ad usarlo

Per la moltitudine di pacchetti esistenti che permettono di usarlo per ogni cosa e per la sua rapidità di sviluppo anche se mi impiccio sempre per la questione array.

Un problema che ho notato in molti altri linguaggi come Dart è la mancanza di esempi chiari. I programmatori sono così PRO da scrivere documentazione con pochi esempi sull’uso dei vari metodi dei moduli/pacchetti o casi d’uso creando problemi a chi è alle prime armi.

In poche parole ti portano a studiare il codice sorgente e contano sui commenti nel codice per i generatori di documentazione che sono utili per trovare i riferimenti ma non come usare queste informazioni.

Inoltre spesso rilasciano snippet di codice senza neanche una riga di commento.

Continuerò ad usarlo finchè Dart non avrà un supporto alle QT perchè possiede tutte quelle cose che mi piacciono ovvero le graffe, gli array ma un codice più veloce da scrivere rispetto al classico JavaScript.

Si mi piacciono i linguaggi stile C anche se di C non ne sò niente 😛

Ora via col flame!

Liked it? Take a second to support Mte90 on Patreon!
Become a patron at Patreon!

7 commenti su “Perchè Python non mi piace ma continuo ad usarlo

  1. Lista = eterogeneo, mutabile, adatto a dati che fluiscono e che non è possibile anticipare, inoltre la compresione per liste è quanto di più bello ha python sintatticamente, funzionale e funzionante. Tuple = (eterogeneo, immutabile) per sopperire proprio all’estrema versatilità delle liste. E poi Python è un linguaggio da sistemista per chi deve ancora fare pratica con il C oppure ha bisogno di una soluzione alla svelta.

    Se avessi un po’ più di esperienza i linguaggi fortemente tipizzati avresti altri occhi

  2. “un’anno fà” mi sono fermato qui: già il “3 anni fà” mi ha fatto vacillare, ma la doppietta in tre parole è troppo

  3. Sulla questione delle parentesi che ti aiutano a leggere meglio il codice c’è poco da discutere, sono gusti personali e vanno rispettati… a me ad esempio da fastidio vedere le parentesi quando posso usare direttamente l’indentazione, magari con una IDE che visualizza bene i tab con dei puntini verticali.

    Sulle tuple sono d’accordo, mi trovo molto bene invece con liste e dizionari, perchè assomigliano molto al formato JSON.

    Secondo me python è moooolto buono per realizzare prototipi. La quantità e facilità d’uso delle librerie ti permette di tirare su mini applicazioni che fanno il pane in poche ore/giorni. Mi riferisco ad esempio a progetti di scraping, mini-API, conversione tra formati dei dati e porcate varie. L’altro punto di forza di python è la sua versatilità in ambito scientifico. Al di là di altri linguaggi (MATLAB, R) che rimangono utili solo per il contesto accademico, python permette di fare scienza/analisi con un linguaggio a 360°. Questo aspetto non lo trovi in nessun altro linguaggio per quello che ho visto.

    Probabilmente per applicazioni più grandi e destinate alla ‘massa’ il python dovrebbe lasciare il posto a linguaggi tipizzati tipo il Java o (Dio ce ne salvi) il C++.
    Per applicazioni web PHP e JS rimangono giustamente dominanti.

    Un grosso saluto 🙂
    Piero

  4. Di Python (lo sto studiando ora, provengo da PHP e Ruby) non sopporto solo che, nonostante la 3 sia presente da anni, la 2 sembri ancora farla da padrona.

    Per gli array non sono d’accordo. Per questo motivo dovresti odiare più PHP che semplifica troppo (facendo un mix tra il concetto di lista/pila e di table/dictionary)

    Per lo stile. . Be può piacere o meno..(grazie alle indentazioni però crei codice più pulito e quindi leggibile)
    Io trovo inutili i ; (pensa che in Ruby anche le parentesi spesso sono facoltative e con le graffe ci creii anche i blocchi 😀 (una “specie” di closure: Post.create {} è completamente diverso da Post.create({}) ); nonostante ciò trovo più leggibile e godibile quest’ultimo che PHP.

    Se non sbaglio tu conosci coffeescript (“mix” tra Ruby e Python)… Lo odierai per lo stesso motivo? 🙁

    1. L’articolo l’ho scritto prima di conoscere coffeescript ma la questione array ancora non la sopporto la ritengo confusonaria perché per me é un array che sia multidimensionale o meno.
      Io ritengo gli ; utili a livello visivo ma ad oggi é la cosa meno fastidiosa, sinceramente non usare le graffe mi mana veramente tanto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *