2016-05-24 15:00 GMT+02:00 enrico franchi <enrico.fran...@gmail.com>: > > [...] >> Perchè tutti i linguaggi (o meglio le loro implementazioni) attuali >> che conosco, tranne Erlang (ed Haskell, come caso speciale), usano >> memoria condivisa, anche se offrono supporto per il message passing >> (tramite channel). > > > Ma non e' questione di linguaggio: e' questione di applicazione. Il > linguaggio diventa rilevante solo quando non ti lascia altra scelta. > >> >> Quindi software normale scritto in questi linguaggi usa memoria condivisa. > > > Mah... diciamo che non sono d'accordo. *Puoi* usare memoria condivisa. > Certo. Questo non vuole dire che sia considerata una best practice farlo. > Anzi. > > E mi sembra un trend dell'industria in un circolo virtuoso con quelli che > fanno linguaggi e librerie. *Oggi* prova a presentare un design document > fatto tutto a botte di synchronized e vediamo come va a finire (certo, se > chi fa la review e' rimasto a come si faceva software negli anni '90 c'e' > anche caso che passi...). >
Quando parlo di memoria condivisa intendo a dettaglio implementativo, magari nascosto sotto l'astrazione di una libreria o di un linguaggio. Ad esempio in Rust alla fine *usi* memoria condivisa, ma il linguaggio ti permette di ragionare senza pensare a sincronizzazioni esplicite. In Go puoi usare i channel, ma anche qui alla fine usi la memoria condivisa, solo che la sincronizzazione è gestita dal runtime. Ma sempre in Go, spesso la soluzione più semplice e suggerita in mailing list, è quella di usare un mutex. Ciao Manlio _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python