On Wed, 11 Nov 2009 12:33:16 +0100, luigi scarso <luigi.sca...@gmail.com> wrote: > Salve sono un nuovo iscritto > ma uso python da ~5anni ormai. > > Sono ing.informatico "vecchio ordinamento" > ma questo non mi qualifica come esperto python. > > Ultimamente sto attraversando una "crisi esistenziale" > aggravata da fisime > confermati in > http://lambda-the-ultimate.org/node/3676
Dal thread linkato nel post di sopra: """ Well, simple common sense is going to limit Python's applicability when operating at Google's scale: it's not as fast as Java or C++, threading sucks, memory usage is higher, etc. One of the design constraints we face when designing any new system is, "what happens when the load goes up by 10x or 100x? """ A te capita spesso di operare "a google scale"? A me no, ma di sicuro i limiti del Python li ho incontrati spesso. Solo che non credo che "se fai il botto" allora ti basterebbe riscrivere la stessa applicazione in un linguaggio più performante (Java o C) per aver risolto tutti i problemi. Se riesci a far sì che il tuo programma scali su più macchine hai sicuramente una soluzione migliore del tizio per cui sembra che "usare meno memoria" o "avere thread migliori" sia sufficiente ad affrontare un carico google-size. Non lo è, e la forza di google è nell'infrastruttura che gli permette di parallelizzare rapidamente le loro soluzioni (MapReduce, BigTable ecc). Io lavoro in ambiente misto Erlang/Python: probabilmente ora non scriverei un servizio centrale in Python ma lo farei in Erlang, eventualmente con una serie di processi python in comunicazione (che a questo punto posso mettere ovunque, basta spawnare processi via ssh). Questo non vuol dire che non usi più Python: Erlang non mi sembra un linguaggio così general purpose da soppiantare Python. Sono convinto che usarli entrambi porti più vantaggi che scrivere programmi in C/C++/Java. Ho letto di Go che offre canali che sembrano i processi Erlang. Solo che non mi sembra possano girare su più macchine e mandarsi messaggi in rete come invece Erlang è pensato dal giorno zero. Questo non lo renderebbe un granché più scalabile secondo me. Per pensare ad un servizio che possa scalare al mondo più che al linguaggio penserei all'infrastruttura più che al linguaggio in sé. Ultimamente ho dato un'occhiata ai sistemi di messaggistica (AMQP, RabbitMQ) e quelli mi sembrano un interessante componente per permettere ad un sistema di scalare (RabbitMQ si integra meravigliosamente con Erlang, Python e Javascript). Altro componente fondamentale di cui so poco è un database distribuito: purtroppo Mnesia non scala all'infinito e il mio caro PostgreSQL non è semplice da far scalare oltre il singolo server. Ho studiato poco sull'argomento, ma recentemente ho bookmarkato questo <http://www.rackspacecloud.com/blog/2009/11/09/nosql-ecosystem/> che mi sembra un buon indice di partenza per esplorare le diverse possibilità (Cassandra e HBase sembrano i migliori candidati, peccato siano scritti in Java. Le soluzioni Key/Value tipo Redis mi sembrano troppo di basso livello). Solo un po' di pensieri in libertà. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python