[Python] Estendere Python in Go (era: Re: Parere su Go di un professore di informatica (delle superiori) nonche' uno dei fondatori di ERLUG)

Carlos Catucci carlos.catucci a gmail.com
Mer 26 Ago 2015 15:39:25 CEST


2015-08-26 15:18 GMT+02:00 enrico franchi <enrico.franchi a gmail.com>:

> A me sembra interessante che si possa fare, ma mi sembra piu' un proof of
> concept che altro. Se il problema e' scrivere un'estensione a Python che
> vada veloce, direi che ci sono gia' vari metodi. Avere anche Go e'
> chiaramente meglio che non averlo, ma credo che sia inevitabilmente piu'
> scomodo di qualcosa come, per dire cython.
>
> Per inciso, i "vantaggi" che elenchi per Python non sono qualcosa che Go
> non abbia. Tipo un sistema di templating e' presente perfino nella libreria
> standard. Ci sono vari sistemi per fare web app, parecchio buoni e
> vincenti. Che per inciso, spesso risolvono parecchi problemi che si hanno
> facendo le stesse cose in Python (e.g., deploy).
>

Enrico il problema e' sempre di unita' di misura. Il progetto piu' piccolo
a cui lavori tu e di qualche "anno luce" piu' grande del piu' grande a cui
lavoro io. Per me impiegare tempo ad apprendere come fare in Go le cose che
faccio con Python e Django/Flask e' una "spesa" che non posso affrontare
ora. Pero' se mi trovo (come potrei se il progetto a cui sto lavorando vede
la luce) a dover fare cose che in Python non "vengono bene", esempio
gestire qualche migliaio di messaggi "conteporanei" provenienti da
altrettanti router sparsi qua e la, ecco che una routine Go, meglio se
wrappabile, mi puo' risolvere la cosa senza che io debba impazzire.


> Aggiungo che c'e' anche il rischio che per usare Go per scrivere un modulo
> per Python, molte delle cose piu' interessanti di Go si possono usare solo
> in modo molto limitato e raramente per dare la spina dorsale
> dell'applicazione (il che e' ovvio, visto che si sta creando un modulo).
> Che e' invece una cosa che sarebbe proprio interessante.
>

A me servono moduli che fanno cose elementari ma bene. Non e' un problema
prestazionale puro, piu' di concorrenzialita' di dati in arrivo. Postgres
mi regge 10K scritture al secondo, non so se Djabngo pero' riesce a
maneggiarle. Ecco che Go potrebbe risolvermi il problema. Se avro',
speriamo, tempo, in futuro affrontero' anche altri aspetti di Go.


> Visto e considerato che la situazione della gestione della concorrenza in
> Python e' relativamente penosa e imbarazzante, semmai sarebbe molto piu'
> interessante scrivere componenti limitati in Python all'interno di
> un'applicazione in Go.
>

A me serve solo un piccolo caso di concorrenza, la gran parte della roba
sono webservice che rispondono a chiamate ajax e un poco di roba diciamo
"gestionale". Per i primi potrei anche farli con Go, ma poi perdo i
vantaggi dell'ORM di Django (o di SqlAlchemy) visto che i webservice
gerstiscono basi dati spesso sparse su diverse tabelle.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150826/277bdba8/attachment.html>


Maggiori informazioni sulla lista Python