[Python] Scegliere un linguaggio: un'ottimizzazione prematura?
Davide Olianas
davide a davideolianas.com
Lun 10 Apr 2017 14:28:37 CEST
Il 10/04/2017 13:27, Gianluca Esposito ha scritto:
>
> Poi sei sicuro che siano così distanti le performance dell'algoritmo
> in python e quelle in fortran? magari prova a creare una applicazione
> non in multithreading, ma in multiprocessing, così sfrutti tutti e 20
> i core e soprattutto MISURA le performance di uno e dell'altro.
Sapevo che in multiprocessing non ci sarebbe il problema, però sono
completamente ignorante al riguardo, quindi ho evitato di discutere
questo punto. Sono ovviamente d'accordo riguardo alla necessità di
misurare le performance onde evitare di perdere tempo ad cazzum.
> Se ancora sei distante, in python esistono molte librerie matematiche
> che in realtà sono compilate in c e hanno un binding a python, prova
> ad usare una di quelle.
Uso numpy con soddisfazione. Andando off-topic però vorrei fare un rant
sui binding a python: se sono fatti male sono scomodi da usare. Cosa
intendo con "fatti male": non sono pythonici! Per esempio, tempo fa
provai pyside, adesso sto provando openbabel.
> Se ancora non ti sei avvicinato, individua la parte di codice lenta e
> riscrivi solo quella parte in c e poi la richiami dal programma python
> e in python questa operazione è molto facile.
Sapevo della possibilità ma non ci ho mai giocato.
>
> Come vedi prima di scegliere un linguaggio compilato perchè è più
> veloce, ci sono un bel pò di ragionamenti e prove da fare.
>
Certo. Ad esempio a me piace python anche per la quantità di librerie
già pronte. Dell'articolo io più che altro contesto il "continua a
buttare hardware al problema", indipendentemente dalla scelta del
linguaggio.
> Per le app non ha alcun senso, possono essere ottimizzatissime, ma
> magari controllano la rete wifi ogni millisecondo e la batteria te la
> ammazzano lo stesso.
Giusto, alla fine mi sono permesso un rant su cose che esulano dalla
scelta del linguaggio.
Ciao,
Davide
Maggiori informazioni sulla lista
Python