[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