Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    [C++/Python] Quale linguaggio per programmi complessi?

    Sono reduce da altri linguaggi di programmazione (Java, iniziato all'università e proseguito per diletto personale, ma solo nella base; PHP per lavoro, che conosco quanto basta per l'azienda )

    Ora, io e un gruppo di amici desideriamo metterci in "proprio", ovvero creare un nostro programma. Non abbiamo ancora scelto quale, ma visto che tutti lavoriamo nella programmazione sarà di certo abbastanza complesso. Il programma dovrà girare in locale, installabile come un exe, e quindi essere il meno pesante possibile.
    La nostra scelta è ricaduta sul C++, ma sentendo i commenti in giro vedo il Python come una risorsa in espansione. Entrambi i linguaggi non sono per noi conosciuti (anche se con le basi degli altri linguaggi non dovrebbe essere un vero problema impararli) e volevo quindi chiedervi in quale studio vi buttereste.
    Per esempio, se doveste creare un gioco complesso in codice, prendereste il C++ o il Python? E per quale motivo?

  2. #2
    Come al solito dipende dal tipo di applicazione.
    Utilizzando Python al posto di C++ guadagnereste molto in termini di produttività dato che il primo è n^x volte più produttivo del secondo, senza contare il vantaggio che guadagnerebbe un team (aka gruppo di persone che lavorano ad un progetto comune) di avere un codice più leggibile e meglio manutenibile.
    Altro fatto da tenere in considerazione è la velocità di apprendimento: partendo da zero in entrambi i casi dovete tenere presente che ottenere una padronanza adeguata di C++ richiede un tempo molto più lungo che in Python il quale, avendo gia delle basi di programmazione precedentemente acquisite, potrebbe cominciare a fruttare gia dopo averne acquisiti i concetti di base (questione di giorni e non sto scherzando).

    Dal canto suo C++ vanta una velocità n^x volte superiore rispetto a Python, cosa che nella programmazione di un videogame potrebbe rappresentare un parametro essenziale (es: utilizzo massiccio di grafica tridimensionale).
    Rappresentando inoltre praticamente lo 'standard de facto' per la programmazione di videogames, C++ potrebbe vantare un supporto maggiore di librerie grafiche ed affini (ma in questo non posso essere più preciso) e una comunità di sviluppatori più folta a cui poter chiedere supporto.

    Nella programmazione di videogame, nello specifico, molto spesso vengono utilizzati linguaggi di basso livello (es: C/C++) per scrivere l'engine e linguaggi di livello più elevato (Python, appunto, perl, ruby, e in maniera minore Java, ad esempio) per interfacciarsi e fare il lavoro sporco.

    Come utilizzatore Python non posso fare altro che consigliarti di dare un occhiata a pygame:
    http://www.pygame.org/news.html
    Se giri un po' per il sito ti sorprenderai delle sue potenzialità e ti renderai conto che scrivere giochi in puro Python è possibile. Tutto sta nel valutare a priori se il proprio progetto necessità effettivamente di alte velocità computazionali oppure no, e nella stragrande maggioranza dei casi non è così.

    my 2.5.0 cents
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Grazie per la risposta, direi che sei stato esauriente
    Per cominciare sarebbe quindi opportuno studiarci il Python (vista la semplicità e il poco tempo che richiede nello studio). Quando e se ci porteremo a livelli più complicati, di certo dovremo passare al C++, perchè a quel punto il rendimento sarà essenziale.
    Il sito che mi hai linkato, poi, è la soluzione ai nostri problemi grafici

  4. #4
    Grazie per la risposta, direi che sei stato esauriente
    Per cominciare sarebbe quindi opportuno studiarci il Python (vista la semplicità e il poco tempo che richiede nello studio). Quando e se ci porteremo a livelli più complicati, di certo dovremo passare al C++, perchè a quel punto il rendimento sarà essenziale.
    Se avrete davvero bisogno di performance potete tranquillamente scrivere le parti di codice che vi interessano in C ed interfacciarvi facilmente da Python.

    Il sito che mi hai linkato, poi, è la soluzione ai nostri problemi grafici
    Si, pygame è davvero molto bello (ci ho pacioccato poco ma ho intravisto le potenzialità).
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    I due linguaggi, Python e C++, interagiscono senza problemi? Perchè dalla tua risposta mi sembra di aver capito che è possibile fare una parte in Python e una parte in C++...
    Suppongo esistano librerie specifiche per questo. Se è così siamo a cavallo :master:

  6. #6
    I due linguaggi, Python e C++, interagiscono senza problemi? Perchè dalla tua risposta mi sembra di aver capito che è possibile fare una parte in Python e una parte in C++...
    Si, in entrambi i sensi.
    Esempio: puoi scrivere delle parti di codice in C (ove necessiti di velocità maggiore) ed interfacciarti da Python, o ancora, puoi utilizzare delle librerie C/C++ gia esistenti (e che magari non esistono in py), scrivere un wrapper ed interfacciarti da Python.
    Lo stesso può valere al contrario (embedding) ovvero da C puoi interfacciarti all'interprete Python.
    http://www.python.org/doc/ext/intro.html

    Qui alcune FAQ:
    http://www.python.org/doc/faq/extending.html

    Esistono cmq alcune alternative per evitare di utilizzare altri linguaggi, come psyco (http://psyco.sourceforge.net/) che genera codice asm dal bytecode python per incrementarne la velocità di esecuzione o pypy (http://codespeak.net/pypy/dist/pypy/doc/news.html).
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Grazie per le spiegazioni, hai risolto ogni mio dubbio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.