lunedì 20 aprile 2009

Python just-in-time

Ho sempre pensato che Python è una ciofeca, ma ahimé lo utilizzano in tanti e quindi non se ne può fare a meno di sopportarlo.

C'è questo Psyco, un compilatore Python just-in-time, che velocizza (così dicono) la compilazione di OpenEmbedded per Beagleboard, che ho cominciato stamattina e che ancora prosegue imperterrita, mangiandosi una carretta di gigabyte di spazio sull'ardisco...

3 commenti:

  1. Ciao,
    pensi che ruby, che mi sembra di capire che ti piace, sia un mostro di efficenza?
    I linguaggi interpretati hanno i loro pregi ed il oro difetti. Bisogna farsene una ragione

    RispondiElimina
  2. Dal punto di vista dei tempi di esecuzione, Python ha un vantaggio: interpretato ma precompilabile (.pyc), quindi un filino meglio.

    Ma io sono fan di Ruby per l'estrema semplicità nell'affrontare i problemi. Non sempre abbiamo bisogno di un linguaggio iperveloce e iperottimizzato.

    Molto spesso l'urgenza è quella di... scrivere poco codice in poco tempo. E in questo, Ruby si presta benissimo (e secondo me anche molto meglio di tutti gli altri).

    RispondiElimina
  3. La mia breve esperienza di ruby, mi ha fatto rimanere su python. Python e' piu' immediato e lineare nella sua sintassi. L'unica cosa "strana" e' l'identazione obbligatoria, ma vista la mia pluriennale esperienza di programmatore, che deve mettere le mani sul codice altrui, devo dire che e' una grande idea :D ...

    Di ruby posso dire solo che si porta dietro delle cattive idee di perl, ovvero usare caratteri strani (@, $ e quant'altro) per indicare usi speciali delle variabili.

    Per la cronaca sono fan di python per lo stesso motivo per cui tu sei fan di ruby. Scrivere in python e' molto piu' veloce che scrivere in C, c++, java e altri.

    Il codice e' molto piu' leggibile, e in molti casi non ti devi perdere in dettagli inutili.

    Comunque tornando all'argomento: se fai una build completa di angstrom, ad esempio, il tempo speso in codice python e' meno del 5%. A cosa serve psyco allora? Fondamentalmente l'unica cosa utile e' velocizzare all'inizio la scansione di tutte le recipe, che senza psyco passa da una decina di secondi a un minuto o due (almeno sul mio PC).

    Per quanto riguarda la velocita' di esecuzione, psyco a parte. Python e' si piu' veloce di ruby, ma niente di eclatante e di certo non e' un problema di precompilazione o meno. Quello al massimo fa si che il codice venga caricato in memoria piu' velocemente ^^

    RispondiElimina