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

enrico franchi enrico.franchi a gmail.com
Lun 13 Lug 2015 17:49:08 CEST


2015-07-12 18:42 GMT+01:00 Carlos Catucci <carlos.catucci a gmail.com>:

> Chiamare Go da Python. Cosi' le parti critiche potrebbero essere gestite
> da Go e le cose che faccio meglio in Python le faccio in Python appunto.
>

Mah, dipende cosa vuoi fare, davvero. Allora... in Go 1.5 sara' piuttosto
facile chiamare Go da C (e non solo C da Go), il che fa pensare che
chiamarlo da Python non sara' un gran sbattimento.
La questione e' l'opportunita': non ho ancora guardato la draft dell'1.5 in
questo dettaglio... ma in generale Go e' concepito come linguaggio per
sviluppare sistemi piuttosto che come linguaggio per implementare librerie
per altri sistemi. Molti dei punti di forza di Go non hanno facili map 1:1
in altri linguaggi e di conseguenza non mi e' chiaro quale sia il punto di
fare esattamente quello.

Io credo che quello che puoi facilmente fare e' invece separare a livello
di architettura invece che a livello di codice. E.g., hai un set di API
rest servite da Go e un layer sottile in Python che chiama le API. Poi,
detto fra noi... sta roba viene fatta meglio ammazzando suddetto layer e
facendo tutto con opportuno javascript.

Diciamo che il problema e' che non ho identificato molti problemi che
Python risolve meglio di Go, con alcune eccezioni, e se guardi la lista
delle eccezioni non e' che si presti molto a fare quello che vuoi fare:
* calcolo scientifico (a la notebook + pandas + roba sottostante): diciamo
prototipi di da data scientist
* gui apps

Il resto per me lo fa oggettivamente meglio Go. Hai un hit relativamente
piccolo in termini di produttivita' sul codice, piu' che compensato da
tutto quello che riguarda le operations (dal deploy in su). Per il resto...


-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150713/ee51a3b1/attachment.html>


Maggiori informazioni sulla lista Python