On the other side of the screen, it all looks so easy

The Body Says No

È giunto il momento di rivelare al mondo, e alle anime belle che lo abitano, una verità orrenda, per troppo tempo taciuta da Chi Sa:

Python Fa Schifo e Chi l’Ha Scritto Va Tumulato Vivo Sotto Una Colata di Cemento a Presa Rapida

Certo, il linguaggio in sé è moderatamente carino, ma appena tenti di muoverti sotto l’interprete, per scrivere un modulo di interfaccia tra una libreria C e Python, l’idiozia della API Python/C e l’assenza di messaggi di errore significativi rendono il lavoro con Python una tortura - e dimostrano un’amatorialità degna di Ruby. Un’ora di questa tortura e rimpiango le macro criptiche e l’assenza di documentazione delle API del Perl. Per un linguaggio che si vanta di seguire il dogma del better explicit than implicit, le API C sono il trionfo della perversione mentale, della rottura all’indietro, dell’inconsistenza nelle naming policy e della mancanza di utilità.

Ovviamente, ognuno è libero di pensarla diversamente; sono convinto che Pythonisti arriveranno qui nel tentativo di mostrarmi la Retta Via Verso l’Illuminazione. Per me, tuttavia, e per i miei scopi non esiste differenza tra il lavorare per mezza giornata con Python e darmi delle vigorose martellate sui coglioni.

Adesso mi sento molto meglio. E no, Python continua a farmi schifo.

9 Comments »

  1. curson said,

    January 18, 2007 @ 20:03

    Una differenza c’è: le martoriate fanno rumore. Il ritmo aiuta a passare il tempo :p

  2. curson said,

    January 18, 2007 @ 20:06

    …ti giuro che non so come il mio cervello abbia comandato alle mie dita di scrivere “martoriate“. Pensavo “martellate” ed è uscito quello: ho idea che le API C/Python non siano le uniche cose che avrebbero bisogno di messaggi di errore più chiari ;)

  3. Marco Barisione said,

    January 18, 2007 @ 20:57

    Eviterò di mostrarti la Retta Via Verso l’Illuminazione ma ti chiedo: per cosa usi Python? Clutter? Potresti bloggare un po’ di più su clutter, noi siamo curiosi!

  4. zefram said,

    January 18, 2007 @ 21:00

    marco: esatto, sto scrivendo i binding di clutter :-) vedrò di scriverne quanto prima - sono ancora in botta per la release di oggi.

  5. Lawrence Oluyede said,

    January 18, 2007 @ 22:34

    Eddai mi sembra un po’ esagerato dire che fa schifo perché l’API C è una rottura :P

    Hai provato a usare pyrex?
    http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/

    Oppure puoi usare ctypes se devi fare chiamate al sistema.

    Se devi wrappare librerie o usi ctypes o swing python.

    Fammi sapere!

  6. zefram said,

    January 18, 2007 @ 22:55

    lawrence: non posso usare pyrex o ctypes - devo usare l’aggeggio per i binding delle librerie basate su gobject, da quello non si scappa. quindi: autogenerazione del codice, python/c api e pedalare.

    ad ogni modo, non so se si è capito: il linguaggio python non è brutto; è l’interprete python a fare schifo.

  7. Lawrence Oluyede said,

    January 19, 2007 @ 00:24

    Si si ho capito che a te non piace il reference counting :-P
    Nemmeno a me piace l’API Python per inciso. Il fatto che ruby sia mark & sweep porta notevoli vantaggi in quanto ad API.

    Buon divertimento e se hai problemi fai un salto su it.comp.lang.python che qualcuno volenteroso lo trovi a rispondere

  8. .mau. said,

    January 19, 2007 @ 09:26

    D’altra parte, la Vera Interfaccia per i messaggi di errore è quella di ed(1): tersa e coerente.

  9. Ikitt said,

    January 19, 2007 @ 09:44

    l’API di CPython l’ho vista di sfuggita (ho rischiato di scrivere un modulo, poi ho risolto in puro python e usando la stdlib -per il mio caso e` bastato), ma devo dire che ad una primissima occhiata ho avuto impressioni pericolosamente simili alle tue. Tanto bello (almeno per chi scrive :P) sopra la scorza l’interprete, tanto brutto sotto?

RSS feed for comments on this post · TrackBack URI

Leave a Comment

Show some love for the plenary and Herculean Wordpress Anti-Spam Plugin!