[Python] .net e visual studio open source e versione community

Vincenzo Campanella vinz65 a gmail.com
Gio 22 Gen 2015 12:20:00 CET


Il 22.01.2015 11:39, enrico franchi ha scritto:
> Dopo di che... non parlerei di codice "scritto in Visual C++". 
> Semplicemente se scrivi codice C++ *standard* che fa uso di una 
> libreria non presente su una certa piattaforma, beh, quel codice non 
> potrai compilarlo su quella piattaforma finche' non trovi quella 
> piattaforma.

Sarò limitato io, ma non ho mai conosciuto sviluppatori che 
utilizzassero VC++ e scrivessero codice standard e cross platform; ho 
conosciuto sviluppatori che scrivono codice cross platform in C e C++, 
ma nessuno di loro usa VC++, che anzi aborriscono in quanto il codice 
che genera di default non è esattamente pulito (eufemismo), salvo quando 
devono scrivere del codice che sicuramente girerà solo su macchine Windows.
Da qui la mia affermazione.
Io comunque VC++ non l'ho mai utilizzato (ho iniziato con C su 
CodeWarrior, bei tempi che furono...), per cui riferisco per sentito 
dire (cose cui comunque credo data la storica tendenza di M$ a cercare 
di creare e imporre degli standard tutti suoi, vedi per esempio la fu 
macchina virtuale Java di M$ o Internet Exploder per quanto concerne le 
pagine web).

> Ma non vedo assolutamente perche'. Questa distinzione e' tutta tua. Ci 
> sarebbe prima di tutto da aprire una piccola parentesi su quanto sia 
> scorretta la pratica comune di parlare di "linguaggi compilati" e 
> "linguaggi interpretati"; per il resto "cross-platform" non e' in 
> relazione con compilazione vs. valutazione. Prova a rifletterci: salta 
> fuori che niente sarebbe cross-platform se fosse come dici e tutto lo 
> sarebbe solo in potenza.

Guarda che io non ho detto che c'è una correlazione fra l'essere 
interpretato o compilato e l'essere cross platform.
Io ho solo detto che C e C++ sono compilati (e su questo non ci piove), 
per cui fra la scrittura del codice e la sua esecuzione sul computer 
(indipendentemente dal sistema operativo) c'è un passo in più rispetto a 
quello che c'è in Java o Python, fra l'altro non un passo di poco conto. 
E su questo penso si possa essere d'accordo.

> Anche qui, ovviamente dipende. Sempre dicendo cose note a tutti: Java 
> e' notoriamente un casino maggiore per quanto concerne 
> l'interfacciamento ai servizi e alle librerie del sistema operativo in 
> tutti i casi in cui suddetti servizi e librerie non sono state ficcate 
> nella JVM o nello standard di Java (o almeno fornite come estensione). 
> Cioe' e' proprio un casino: tra l'altro e' tipicamente anche il caso 
> in cui si rompe di brutto la decantata portabilita' di Java. E chi 
> gliene fa una colpa eh....
>
> Python ovviamente e' una cosa a simile/dissimile. Da un lato 
> interfacciare Python a servizi e librerie del sistema operativo e' 
> parecchio piu' facile che farlo per Java, se non altro usando CPython 
> (vuoi che scrivere moduli Python in C e' piu' facile che usare JNI) o 
> addirittura grazie a ctypes.

Qui casca l'asino: in linea di massima la portatilità di Python e Java è 
sì più immediata rispetto a C/C++, però la loro portatilità è limitata 
da quanto la macchina virtuale è in grado di fare e ti consente di fare, 
mentre su C/C++ questo problema non esiste (tant'è che il workaround si 
basa su C e C++); quindi il tutto dipende sempre da che software devi 
creare.
Comunque, sempre per quanto ne so, comunque, anche in Java è possibile 
includere moduli scritti in C/C++.

> Infatti, io non direi che il punto di scrivere roba cross platform e' 
> interfacciarsi a servizi e librerie dell'os... tutt'altro.

Non ho detto nemmeno questo, ho solo scritto che le cose si fanno più 
"toste" quando c'è da interfacciarsi direttamente al sistema operativo, 
a meno che tu non abbia un layer che funga da intermediario.

Ciao
vince


Maggiori informazioni sulla lista Python