Oppure

Loading
06/08/13 8:06
Macca96
Ciao a tutti.
Python fin da subito si è rivelato un linguaggio molto versatile, potente e di semplice utilizzo. Però io credo che sia stato fortemente castrato dal fatto che funzioni tramite un interprete. Mi chiedo quindi, come mai non è stato progettato per essere compilato? Il linguaggio ne guadagnerebbe.
Perchè è stato scelto un interprete anziché un compilatore? Rimarrebbe comunque multipiattaforma, basterebbe compilare i sorgenti dei programmi per i vari OS.
Che ne pensate?
aaa
06/08/13 8:25
esiste py2exe, ma non sono informato su questo progetto, prova a guardare se ha comunque dipendenza da python oppure no. Comunque se hai bisogno di prestazioni e alta campatibilità tra piattaforme usi il C. Sinceramente non aprezzo affatto la sintassi del python ma se c' è a chi piace io dico contenti voi contenti tutti!
06/08/13 8:32
Doppio post, errore di rete.
Ultima modifica effettuata da 06/08/13 8:33
06/08/13 8:34
Macca96
grazie della risposta, conoscevo già py2exe, ma crea eseguibili di dimensioni bibliche per programmi scemi.
Io non cerco un compilatore. Mi chiedevo solo perchè intepretarlo, quando se lo si compila in un file eseguibile si sfruttano meglio le risorse del sistema.
Per esempio il C è compilato, ma gli eseguibili sono di dimensioni contenute e sono molto performanti. Perchè ciò non è possibile in Python?
aaa
06/08/13 8:43
perchè il C++ esiste da molto tempo, non avrebbe senso reinventare la ruota, pensa se tu dovessi scriverti tutti gli algoritmi che usi, anche solo per uno zip diventeresti matto. Se vuoi fare qualcosa di più performante non usi il python.
06/08/13 8:57
Macca96
Aspetta, forse non mi sono fatto capire, quindi ora ho fatto delle prove per degli esempi pratici:

Ho scritto due sorgenti che svolgono le stesse operazioni in due linguaggi defferenti, C e Python.
I programmi dovranno stampare dei banalissimi Hello World.

il file hello.c pesa 90byte
il file hello.py pesa 22byte

ho compilato il file C con GCC (Sto su linux)
ho compilato il file Py con PyInstaller

ho ottenuto quindi due eseguibili di linux:
quello ottenuto dal C pesa 8,5 KB
quello ottenuto dal Python pesa 697.8 KB

Ora la mia domanda è: Perchè se compilo con Python ottengo un file così grande? La compilazione non dovrebbe avvenire nello stesso modo con cui avviene nel compilatore C? I linguaggi sono diversi, ma le funzioni del programma che ho scritto sono le stesse, di conseguenza il file eseguibile dovrebbe avere la stessa sequenza di codice binario, ma così non è. Why?
aaa
06/08/13 9:04
Una parte importante di cui tener conto è l' ottimizzazione del codice da parte del compilatore/traduttore, inoltre un eseguibile compilato con gcc è codice macchina, e richiede pochissime risorse per essere utilizzato, un eseguibile creato con py2exe ha bisogno dell' ambiente python e delle sue librerie che deve richiamare continuamente.

P.S. è la stessa cosa che accade con gli eseguibili .NET, scritti in C#, pesano di più perchè serve il .NET framework, con il suo garbage collector e tutte le sue librerie.
Ultima modifica effettuata da 06/08/13 9:06
06/08/13 9:07
Macca96
Si, magari riguardo all'ottimizzazione da parte del compilatore hai ragione.
ma per creare l'eseguibile dal file hello.py non ho utilizzato alcuna libreria, ed il file è stand alone, funzionerebbe anche su un sistema(linux) sprovvisto di python
aaa