Domanda c++ o python?

giovy2707

Utente Electrum
27 Giugno 2019
96
38
62
103
Ciao a tutti, sono uno studente universitario, e all'università ci insegnano il linguaggio C per questo motivo stavo pensando di creare un progettino per hobby e come linguaggio volevo usare il C++ in quanto già conosco le basi e visto che all'uni studiamo il C (che almeno a livello base è abbastanza simile al c++) sarebbe stato anche un buon modo per ripetere gli argomenti, così ho cercato su YouTube come fare interfacce grafiche e ho trovato un video che spiegava il perché era sconsigliato l'uso del c++ per piccoli progetti almeno che non fosse necessario poter interagire a basso livello col sistema operativo, e veniva consigliato come alternativa il Python, io in passato ho già usato il python e so quanto sia più semplice del c e c++, ma so anche che il python è molto più lento del c o del c++ essendo interpretato, ora volevo sapere da qualcuno più esperto di me:

  1. Quanto cambia nell'uso quotidiano la lentezza tra python e c++?
  2. Mi conviene davvero usare il python rispetto al c++? È veramente così ostico il c++ quando si parla di interfacce grafiche ecc...?
  3. Nel mondo del lavoro (italiano) python è abbastanza richiesto? Perchè vedo spesso che il python viene un pò snobbato dai programmatori...
Ringrazio in anticipo chi riesce a chiarirmi questi dubbi.
 
Quanto cambia nell'uso quotidiano la lentezza tra python e c++?

La lentezza si nota, ma dipende sempre da quello che ci devi fare: se ti serve una GUI statica, scrivere qualche file e basta allora è trascurabile, se invece devi fare operazioni crittografiche, di rendering o comunque più impegnative la differenza è abissale.

Mi conviene davvero usare il python rispetto al c++? È veramente così ostico il c++ quando si parla di interfacce grafiche ecc...?

Si, disegnare interfacce grafiche con C++ può essere ostico, specialmente senza usare librerie terze come Qt.

Nel mondo del lavoro (italiano) python è abbastanza richiesto? Perchè vedo spesso che il python viene un pò snobbato dai programmatori...

Non lo è: solitamente la conoscenza di Python viene messa in fondo alla lista come "nice to have" a meno di lavori di categoria molto specifica come l'IA dove è più popolare. Un motivo è che solitamente viene usato per automatizzare piccole procedure interne ed anche laddove sia richiesto per un progetto da rilasciare viene considerato semplice da imparare in breve tempo per un programmatore che ha già conoscenza in altri linguaggi.

Detto questo ci sono diversi altri linguaggi che potresti scegliere, se ti interessa interfaccia e velocità su Windows potresti optare per C#, VB, Delphi e altri che hanno un designer guidato e un ottima velocità.
 
  • Grazie
Reazioni: giovy2707
La lentezza si nota, ma dipende sempre da quello che ci devi fare: se ti serve una GUI statica, scrivere qualche file e basta allora è trascurabile, se invece devi fare operazioni crittografiche, di rendering o comunque più impegnative la differenza è abissale.



Si, disegnare interfacce grafiche con C++ può essere ostico, specialmente senza usare librerie terze come Qt.



Non lo è: solitamente la conoscenza di Python viene messa in fondo alla lista come "nice to have" a meno di lavori di categoria molto specifica come l'IA dove è più popolare. Un motivo è che solitamente viene usato per automatizzare piccole procedure interne ed anche laddove sia richiesto per un progetto da rilasciare viene considerato semplice da imparare in breve tempo per un programmatore che ha già conoscenza in altri linguaggi.

Detto questo ci sono diversi altri linguaggi che potresti scegliere, se ti interessa interfaccia e velocità su Windows potresti optare per C#, VB, Delphi e altri che hanno un designer guidato e un ottima velocità.
la mia idea sarebbe di creare un software per la produttività, quindi al massimo ci saranno dei bottoni,delle finestre di dialogo,qualche grafico ecc...

vorrei che il software fosse facilmente installabile sia su Linux che windows

usare librerie di terze parti non mi crea problemi
 
la mia idea sarebbe di creare un software per la produttività, quindi al massimo ci saranno dei bottoni,delle finestre di dialogo,qualche grafico ecc...

vorrei che il software fosse facilmente installabile sia su Linux che windows

usare librerie di terze parti non mi crea problemi

Se vuoi GUI desktop cross-platform ti consiglio una di queste combinazioni:
  • Python + libreria per GUI come wxPython
  • Java (probabilmente la scelta più popolare)
  • C++ Qt
  • Delphi / C++ (Embarcadero) con libreria di default VCL
Se ho capito bene essendo una sorta di gestionale puoi trascurare il fattore performance dato che per i dati con tutta probabilità ti appoggerai ad un DBMS esterno (MySQL, SQLite, mongo ecc) che sono tutti cross-platform, in C e super ottimizzati. Scegli quello con cui ti trovi più comodo.
 
  • Grazie
Reazioni: giovy2707
Ultima modifica da un moderatore:
C ++ ha molte funzionalità e ha anche una sintassi relativamente difficile. Non è così semplice scrivere il codice C ++.

Python è facile da scrivere e ha una sintassi chiara. Quindi scrivere programmi Python è molto più semplice rispetto a C ++.

Poi logicamente lo devi valutare sotto diversi punti di vista, anche tipo sulla portabilità per farti un esempio, C ++ non è portabile, ovvero dobbiamo ricompilare il codice su ogni piattaforma diversa. C ++ è principalmente 'Write Once, Compile Anywhere'.

Python è portatile. È anche multipiattaforma e possiamo eseguire programmi su qualsiasi piattaforma
 
  • Mi piace
Reazioni: giovy2707
Ciao a tutti, sono uno studente universitario, e all'università ci insegnano il linguaggio C per questo motivo stavo pensando di creare un progettino per hobby e come linguaggio volevo usare il C++ in quanto già conosco le basi e visto che all'uni studiamo il C (che almeno a livello base è abbastanza simile al c++) sarebbe stato anche un buon modo per ripetere gli argomenti, così ho cercato su YouTube come fare interfacce grafiche e ho trovato un video che spiegava il perché era sconsigliato l'uso del c++ per piccoli progetti almeno che non fosse necessario poter interagire a basso livello col sistema operativo, e veniva consigliato come alternativa il Python, io in passato ho già usato il python e so quanto sia più semplice del c e c++, ma so anche che il python è molto più lento del c o del c++ essendo interpretato, ora volevo sapere da qualcuno più esperto di me:

  1. Quanto cambia nell'uso quotidiano la lentezza tra python e c++?
  2. Mi conviene davvero usare il python rispetto al c++? È veramente così ostico il c++ quando si parla di interfacce grafiche ecc...?
  3. Nel mondo del lavoro (italiano) python è abbastanza richiesto? Perchè vedo spesso che il python viene un pò snobbato dai programmatori...
Ringrazio in anticipo chi riesce a chiarirmi questi dubbi.
Ogni linguaggio di programmazione ha il suo scopo, gestire interfacce grafiche non lo metterei proprio in cima alla lista tra gli scopi del C++, sebbene sempre possibile usarlo anche per questo.
Python sicuramente ti rende la vita più semplice visto che nel tuo caso non ti servono prestazioni particolarmente esagerate.
Entrambi i linguaggi *possono* essere cross platform, anche se C++ ovviamente va ricompilato nel momento in cui si cambia l'OS su cui va hostato il programma, ma se vogliamo dirla tutta anche Python probabilmente. Non penso che esista qualcuno che crea un interfaccia in Python e ne distribuisce gli script nudi e crudi, molto più realisticamente si compila anche il codice python in un binary eseguibile (Si, python si può compilare ed è molto comune farlo, in particolare se si vogliono migliorare le performance).

Per una UI locale semplice (nella tua situazione, ove le scelte siano solo tra python e c++) io personalmente opterei per Python compilato (se possibile userei Cython) o nel peggiore dei casi ad una buona libreria cross platform C++ abbastanza completa da portare a 0 la percentuale di tuo codice platform dependent, che quindi gestisce per te le varie implementazioni delle interfacce nell'OS di destinazione.

C'è anche la terza strada, quella MISC.
Python e C++ si possono usare anche insieme, puoi avviare una PythonApplication dal C++ usando Python.dll e poi usare entrambi i linguaggi, ogni linguaggio sfruttarlo per quello che fa meglio. Questa è una opzione un pò più avanzata ma anche più flessibile. Ho usato per anni questa modalità ed ha molti vantaggi. Puoi interfacciare i due codici sorgenti (gli scripts in python e quelli in C++). L'altra faccia della medaglia è che python in questo modo diventerebbe una Dep del tuo programma, quindi dovrai linkare staticamente o dinamicamente python con esso. Questa terza opzione te l'ho elencata giusto per completare il quadro ma io fossi in te andrei di pure python compilandolo.
 
  • Grazie
Reazioni: giovy2707