PDA

View Full Version : [OT] Quale compilatore C++ installare?


cos1950
15-03-2014, 11:54
Ho iniziato a programmare in C++ (usato sempre solo C classico di K&R, su compilatori datati DOS a 16 bit); ho installato DevC++, ma poi ho scoperto che è ormai obsoleto e pieno di problemi... quindi chiedo a chi è esperto di indicarmi un buon compilatore recente, robusto e dotato di IDE
Grazie

AnonimoVeneziano
15-03-2014, 13:05
Ho iniziato a programmare in C++ (usato sempre solo C classico di K&R, su compilatori datati DOS a 16 bit); ho installato DevC++, ma poi ho scoperto che è ormai obsoleto e pieno di problemi... quindi chiedo a chi è esperto di indicarmi un buon compilatore recente, robusto e dotato di IDE
Grazie

Visual Studio 2013 è il compilatore ufficiale per Windows e comprende un IDE.

Senza IDE c'è MinGW che è praticamente GCC ma per windows che richiede però un IDE separato. Idealmente ci potresti affiancare un buon editor di testo come Sublime Text o un IDE come QT Creator o Eclipse

Ciao

Agat
15-03-2014, 13:16
MinGW + IDE tutto in blocco vai di codeblocks :D

Freaxxx
15-03-2014, 14:19
DevC++ era vecchio già 10 anni fa, vorrei capire come fa la gente che inizia adesso a conoscere DevC++, davvero non lo dico per andare contro chi pone questo genere di domande, ogni buona domanda è sempre benvenuta, ma è uno dei misteri della community, community italiana di programmatori in particolare, che ogni volta che si parli di compilatori C o C++, salti fuori DevC++, e succede sempre . Come parlare della 2 cavalli ogni volta che si parla di ultimi modelli di auto sul mercato.

Per semplicità e facilità d'uso io suggerisco sempre QtCreator, basta scaricare l'installatore dal sito del progetto Qt http://qt-project.org/downloads, scarica il file nominato Qt Online Installer for Windows . Nota che QtCreator è parte del normale pacchetto che Qt distribuisce agli sviluppatori, se vuoi ti scarichi solo QtCreator e il compilatore MinGW ( dal menu dell'installer: Qt->Tools ), altrimenti puoi anche scaricarti le varie librerie dal menu che vedrai quando avvierai l'installatore.

cos1950
15-03-2014, 19:08
DevC++ era vecchio già 10 anni fa, vorrei capire come fa la gente che inizia adesso a conoscere DevC++, davvero non lo dico per andare contro chi pone questo genere di domande, ogni buona domanda è sempre benvenuta, ma è uno dei misteri della community, community italiana di programmatori in particolare, che ogni volta che si parli di compilatori C o C++, salti fuori DevC++, e succede sempre . Come parlare della 2 cavalli ogni volta che si parla di ultimi modelli di auto sul mercato.

Per semplicità e facilità d'uso io suggerisco sempre QtCreator, basta scaricare l'installatore dal sito del progetto Qt http://qt-project.org/downloads, scarica il file nominato Qt Online Installer for Windows . Nota che QtCreator è parte del normale pacchetto che Qt distribuisce agli sviluppatori, se vuoi ti scarichi solo QtCreator e il compilatore MinGW ( dal menu dell'installer: Qt->Tools ), altrimenti puoi anche scaricarti le varie librerie dal menu che vedrai quando avvierai l'installatore.

Ehm... nella scuola dove sto, utilizzano ancora DevC++ :D
A me serve qualcosa di semplice per iniziare... poi vorrei passare, ma a tempo debito, a qualcosa per programmare sotto Windows (classi e MFC), non so se ce la farò a partire dall'SDK (WinMain e CallBack, che dovrebbero dare una visione + in profondità dei dettagli di programmazione) o andare direttamente all'evoluzione successiva con CWinApp e via discorrendo... anzi a questo proposito chiedo consiglio (come su tutto :D)...

Chiedo scusa se dico qualche fesseria, ma qui sono veramente a zero, me la cavo molto meglio con il C di K&R

cdimauro
15-03-2014, 19:13
Visual Studio 2013 è il compilatore ufficiale per Windows e comprende un IDE.
Assolutamente. Per Windows non c'è niente di meglio. ;)

cos1950
15-03-2014, 20:36
Assolutamente. Per Windows non c'è niente di meglio. ;)

Ciao... quel vecchio progetto di implementare le specifiche VESA per la SuperVGA dos-like è ancora in sospeso, ho trovato abbastanza documentazione ma non mi decido ad occuparmene, preso da HTML, CSS3 e Javascript

Ma visual Studio 2013 è a pagamento? Una versione Edu quanto costa?

cdimauro
15-03-2014, 21:11
Ciao... quel vecchio progetto di implementare le specifiche VESA per la SuperVGA dos-like è ancora in sospeso, ho trovato abbastanza documentazione ma non mi decido ad occuparmene, preso da HTML, CSS3 e Javascript
Beh, è anche roba molto vecchia. Personalmente non ci perderei tempo, anche se preferirei di gran lunga smanettare con VESA et similia piuttosto che con quella robaccia. :D
Ma visual Studio 2013 è a pagamento? Una versione Edu quanto costa?
La versione Express è gratuita, anche per usi commerciali, e va benissimo per la stragrande maggioranza dei progetti. ;)

Freaxxx
16-03-2014, 06:58
Ma che razza di corso è ? sembra che tu stia parlando dagli anni 90.

MFC è uno dei framework più vecchi di casa Microsoft in assoluto, praticamente era vecchio già all'uscita di XP.

Ma sul serio esiste questo corso ? Guarda che spendi tempo su qualcosa che oggi giorno non serve a nulla o quasi; solo grandi aziende o vecchi framework con anni di storia usano ancora MFC.

Comunque sia VS express è scaricabile gratuitamente ma dopo 30 gg c'è la registrazione obbligatoria.

cos1950
16-03-2014, 10:04
Ma che razza di corso è ? sembra che tu stia parlando dagli anni 90.

MFC è uno dei framework più vecchi di casa Microsoft in assoluto, praticamente era vecchio già all'uscita di XP.

Ma sul serio esiste questo corso ? Guarda che spendi tempo su qualcosa che oggi giorno non serve a nulla o quasi; solo grandi aziende o vecchi framework con anni di storia usano ancora MFC.

Comunque sia VS express è scaricabile gratuitamente ma dopo 30 gg c'è la registrazione obbligatoria.

Guarda, io sono rimasto agli anni 90 appunto, a quel tempo abitavo a Roma e collaboravo con Eidos sistemi di formazione nella realizzazione di CBT con l'authorware TenCore (a quel tempo in quel settore era all'avanguardia) e con ToolBook della Asymetrix; avevamo deciso di aprire alla programmazione sotto Windows e comprammo MSC 7.0 che aveva l'SDK, implementava le MFC e permetteva di usare la programmazione C e C++ sotto windows e constava ricordo di 17 manuali, di cui 2 dedicati alle MFC; si cominciava a parlare di ole e dll.
Quasi contemporaneamente mi trasferii in Sardegna per ragioni di lavoro e pian piano persi i contatti...
Cerca di farmi capire cos'è accaduto :D

a mio modo di vedere, l'evoluzione ha solo creato strati di software che nascondono i dettagli a chi lavora nel campo della programmazione, e quindi in qualche modo fa diventare programmatori ed analisti + potenti ma sempre + dipendenti da chi ti nasconde i dettagli... certo è un'evoluzione necessaria, dietro c'è un lavoro di centinaia di anni-uomo e non è pensabile per un operatore del settore ripercorrere tutta la strada fatta da centinaia di software house con migliaia di programmatori... detto questo, ammesso che sia sostenibile, chiedo a tuo modo di vedere qual è l'approccio + "economico" al problema? Cioè se voglio programmare sotto Windows in C/C++ conservando abbastanza aderenza con il nucleo hardware quindi soddisfacenti "contatti" con il Kernel (per una possibile conoscenza di sistema) cosa si deve fare? Qual è il percorso migliore?
Non c'è nessun corso MFC, qui la realtà è ancora + arcaica... magari ci fosse :D ma mi pongo il problema che qualcosa si faccia, nel migliore dei modi... qui si balbetta in C e siamo ancora alle frequentazioni esclusive con il pacchetto Office (ECDL) spacciandole per studio dell'Informatica...

Freaxxx
16-03-2014, 16:30
Guarda, io sono rimasto agli anni 90 appunto, a quel tempo abitavo a Roma e collaboravo con Eidos sistemi di formazione nella realizzazione di CBT con l'authorware TenCore (a quel tempo in quel settore era all'avanguardia) e con ToolBook della Asymetrix; avevamo deciso di aprire alla programmazione sotto Windows e comprammo MSC 7.0 che aveva l'SDK, implementava le MFC e permetteva di usare la programmazione C e C++ sotto windows e constava ricordo di 17 manuali, di cui 2 dedicati alle MFC; si cominciava a parlare di ole e dll.
Quasi contemporaneamente mi trasferii in Sardegna per ragioni di lavoro e pian piano persi i contatti...
Cerca di farmi capire cos'è accaduto :D

a mio modo di vedere, l'evoluzione ha solo creato strati di software che nascondono i dettagli a chi lavora nel campo della programmazione, e quindi in qualche modo fa diventare programmatori ed analisti + potenti ma sempre + dipendenti da chi ti nasconde i dettagli... certo è un'evoluzione necessaria, dietro c'è un lavoro di centinaia di anni-uomo e non è pensabile per un operatore del settore ripercorrere tutta la strada fatta da centinaia di software house con migliaia di programmatori... detto questo, ammesso che sia sostenibile, chiedo a tuo modo di vedere qual è l'approccio + "economico" al problema? Cioè se voglio programmare sotto Windows in C/C++ conservando abbastanza aderenza con il nucleo hardware quindi soddisfacenti "contatti" con il Kernel (per una possibile conoscenza di sistema) cosa si deve fare? Qual è il percorso migliore?
Non c'è nessun corso MFC, qui la realtà è ancora + arcaica... magari ci fosse :D ma mi pongo il problema che qualcosa si faccia, nel migliore dei modi... qui si balbetta in C e siamo ancora alle frequentazioni esclusive con il pacchetto Office (ECDL) spacciandole per studio dell'Informatica...

MFC nella comunità di programmazione è famoso anche per aver introdotto molti al pattern/design MVC ( Model-View-Controller ) e quindi molti programmatori hanno preso quella forma mentis . Il problema di molti programmatori è uscire da un certo schema e non lasciarsi andare all'abitudine.

Stessa cosa dicasi per COM ( Component Object Model ) che per molto tempo è stato praticamente la soluzione "di default" per IPC sotto Windows senza che i programmatori neanche ne vedessero 1 solo punto negativo, ed invece oggi si scopre che forse COM non è neanche una valida opzione da prendere in considerazione; stessa cosa dicasi per quello che fu, e che è ancora per pochissimi, CORBA .

qui si sintetizzano molti dei problemi di questo genere di IPC e perché oggi COM/CORBA siano praticamente relegati nella nicchia http://stackoverflow.com/questions/3835785/why-has-corba-lost-popularity

questo per dire che MFC, come altri framework, non veniva soltanto usato per insegnare come fare una GUI, ma di riflesso dava anche una formazione e un modello mentale di riferimento; e su piattaforme chiuse e controllate con una azienda come Microsoft alle spalle poteva anche essere un buon investimento, una azienda del genere male che vada deve offrire supporto pluriennale per ogni prodotto, e se più prodotti funzionano in base allo stesso design meglio ancora.

Il problema è che Microsoft le cose le pianifica molto male ( a mio modesto avviso ), d'altra parte giò nell'era di XP esistevano vari dispositivi touch, con varie periferiche di input e display ad alte risoluzioni, da una azienda come Microsoft mi sarei aspettato un server grafico ( per dirne una ) decente e non arrivare a Windows 8.1 che i driver per l'input sono quello che sono e lo scaling non esiste; ma questa forse è un'altra storia, o forse ci dovremmo aspettare un ennesimo nuovo framework con Windows 9.

La storia in breve e in maniera semplicistica si compone così:

- MFC dalla loro introduzione fino a XP sono il framework di riferimento
- dopo XP si parla di .Net, di C# e di WPF http://en.wikipedia.org/wiki/Windows_Presentation_Foundation almeno fino a Windows 7
- Con Windows 8 c'è il framework RT o Windows Runtime XAML Framework http://en.wikipedia.org/wiki/Windows_Runtime_XAML_Framework

e tra Windows Vista e Windows 8 si è anche trovato il tempo di far nascere Silverlight e di farlo morire dopo neanche 1 anno, il famoso framework che doveva fare da ponte tra desktop e web, essere la soluzione per qualunque interfaccia, e dopo neanche 12 mesi già tutto iniziava a scemare e non è mai stato un progetto realmente decollato.

In tutto questo marasma di nomi nuovi e nuovi frameworks, le Win32 API sono sempre incluse, praticamente rimangono sempre il livello più basso in comune con un po' tutte le tecnologie, da .Net alle WPF, da XP a 8, trovi sempre le Win32 API. Il problema delle Win32 API e il motivo per il quale esistono altri framework sopra di esse, è che sono abbastanza complicate da gestire e poco programmatore-friendly, a volte le ho trovate anche poco documentate .

In generale dovresti usare il framework di riferimento per la piattaforma che vuoi usare, se però vuoi usare le Win32 preparati a tanto lavoro e a tanto tempo da investire.

In questi anni Microsoft non ha offerto un gran supporto né al C né al C++, ha fatto un re-boot di Java che è C# e spinge tanto su quello, specialmente con il framework .Net .

Sul discorso dell'accesso a basso livello, non è solo un fatto di censura da parte della casa madre, purtroppo è un male ( dal punto di vista del programmatore ) quasi necessario, d'altra parte le DirectX sono nate proprio per questo, per separare l'hardware dal programmatore e lasciarlo operare in una "sandbox", con benefici per la sicurezza, per l'hardware e for anche per l'utente stesso. Il vero problema è che poi tutto è mosso dal kernel e dai driver, e non è che Windows sia esattamente famoso per le prestazioni del kernel o per la bontà dei driver . Il modello in teoria funziona, in pratica l'azienda risponde picche per metà perché tanto il mese dopo esce l'hardware più figo e il driver ottimizzato non arriva mai. Idem con Windows, sviluppare il kernel costa, sviluppare software di qualità costa, tanto vale mettere mezza feature ad ogni Windows e continuare a patchare in eterno e continuare a confinare tutto sempre di più.

Il futuro di Microsoft ad oggi, dal lato desktop, è basato su C# e .Net , con C# ci fai di tutto sulle piattaforme Microsoft, dagli smartphone al desktop all'enterprise, con il massimo del supporto che l'azienda può offrire e .Net è l'insalata/fritto-misto per tutte le occasioni, un framework gigantesco con il quale fare tutto e andare a colpo sicuro.

è possibile interfacciare applicazioni C# e qualsiasi framework C# con C e C++ tramite CLR/CLI, ma non è una operazione semplice il più delle volte e richiede un minimo di pratica, molto spesso non ne vale neanche la pena. Un po' come in Java che metteva a disposizione le JNI e JNA, non so quanti usassero certe soluzioni a meno di non esserci costretti.

Fatti i dovuti raffronti, l'unica reale alternativa a C# + .Net è il framework Qt, che è open source e LGPL, quindi con licenza che anche nella versione gratuita ti lascia creare e vendere anche applicazioni commerciali, e anche qui trovi un framework che copre praticamente tutte le comuni necessità, dal networking alle GUI, con ottimi tool di sviluppo, per esempio c'è un tool per disegnare interfacce compreso in QtCreator che è l'IDE fornito con il framework o che puoi anche scaricare a parte. L'IDE di per se è semplice e ben fatto e offre anche tante funzionalità come il supporto a cmake, git, svn e tantissime altre customizzazioni, kit e toolchain.
Il vero plus di Qt è che è multipiattaforma, con Qt se crei qualcosa puoi facilmente portare il tuo programma su qualsiasi desktop in uso oggi, anche considerando tutte le varie versioni dei vari MAC o Windows in uso, con Qt trovi sempre un modo di creare il tuo programma 1 volta, e ricompilarlo, a volte con piccoli accorgimenti e differenze dovute alla piattaforma stessa come il cambio del compilatore, su altre piattaforme.con poco o un quasi nullo sforzo.

Se proprio ti va di fare tutto a basso livello prova le Win32, ma sappi che non è la strada che Microsoft vuole farti prendere, e questo potrebbe essere un pessimo investimento. C# è l'opposto ed è il poker per qualsiasi cosa Microsoft abbia commercializzato da Xp in poi, in qualsiasi ambito ( consumer ed enterprise ), Qt è la soluzione per fare quello che ti pare, a meno che non sia qualcosa di estremamente specifico per la piattaforma, come un modulo kernel o un driver; con Qt c'è già una libreria o un supporto per quello che vuoi fare e una comunità molto attiva.

cdimauro
16-03-2014, 17:49
Comunque sia VS express è scaricabile gratuitamente ma dopo 30 gg c'è la registrazione obbligatoria.
La registrazione serve soltanto a ricevere il seriale valido. Il prodotto rimane in ogni caso gratuito. ;)

sottovento
16-03-2014, 17:51
Ho iniziato a programmare in C++ (usato sempre solo C classico di K&R, su compilatori datati DOS a 16 bit); ho installato DevC++, ma poi ho scoperto che è ormai obsoleto e pieno di problemi... quindi chiedo a chi è esperto di indicarmi un buon compilatore recente, robusto e dotato di IDE
Grazie

Scusa la curiosita': quale compilatore K&R usavi sotto DOS 16 bit?

cos1950
17-03-2014, 07:39
Scusa la curiosita': quale compilatore K&R usavi sotto DOS 16 bit?

MIcrosoft C 6.0 (l'ultimo usato) ma in precedenza anche la versione 5.0 e 4.01

poi anche TurboC 2.0

Daniels118
17-03-2014, 13:27
Se non vuoi abbandonare il Dev-C++ sappi che ne esiste una versione aggiornata marcata Orwell che è compatibile con Windows 8 a 64 bit.

sottovento
17-03-2014, 19:21
MIcrosoft C 6.0 (l'ultimo usato) ma in precedenza anche la versione 5.0 e 4.01

poi anche TurboC 2.0
Scusa, ma... erano tutti compilatori ANSI, non K&R.
Che ricordi, non accettavano la sintassi K&R...

vendettaaaaa
17-03-2014, 20:28
Se non vuoi abbandonare il Dev-C++ sappi che ne esiste una versione aggiornata marcata Orwell che è compatibile con Windows 8 a 64 bit.
Ma lasciamolo andare sto Dev-C++...

cos1950
17-03-2014, 22:54
Scusa, ma... erano tutti compilatori ANSI, non K&R.
Che ricordi, non accettavano la sintassi K&R...

mah, per quello che ne so, erano Ansi ma anche K&R... gli esempi proposti da K&R nel suo celebre libro fungevano tutti e non solo per quello... certamente molte funzioni erano non standard e vorrei vedere... ma il set delle funzioni standard c'era tutto...

cos1950
22-03-2014, 14:31
Guarda, io sono rimasto agli anni 90 appunto, a quel tempo abitavo a Roma e collaboravo con Eidos sistemi di formazione nella realizzazione di CBT con l'authorware TenCore (a quel tempo in quel settore era all'avanguardia) e con ToolBook della Asymetrix; avevamo deciso di aprire alla programmazione sotto Windows e comprammo MSC 7.0 che aveva l'SDK, implementava le MFC e permetteva di usare la programmazione C e C++ sotto windows e constava ricordo di 17 manuali, di cui 2 dedicati alle MFC; si cominciava a parlare di ole e dll.
Quasi contemporaneamente mi trasferii in Sardegna per ragioni di lavoro e pian piano persi i contatti...
Cerca di farmi capire cos'è accaduto :D

a mio modo di vedere, l'evoluzione ha solo creato strati di software che nascondono i dettagli a chi lavora nel campo della programmazione, e quindi in qualche modo fa diventare programmatori ed analisti + potenti ma sempre + dipendenti da chi ti nasconde i dettagli... certo è un'evoluzione necessaria, dietro c'è un lavoro di centinaia di anni-uomo e non è pensabile per un operatore del settore ripercorrere tutta la strada fatta da centinaia di software house con migliaia di programmatori... detto questo, ammesso che sia sostenibile, chiedo a tuo modo di vedere qual è l'approccio + "economico" al problema? Cioè se voglio programmare sotto Windows in C/C++ conservando abbastanza aderenza con il nucleo hardware quindi soddisfacenti "contatti" con il Kernel (per una possibile conoscenza di sistema) cosa si deve fare? Qual è il percorso migliore?
Non c'è nessun corso MFC, qui la realtà è ancora + arcaica... magari ci fosse :D ma mi pongo il problema che qualcosa si faccia, nel migliore dei modi... qui si balbetta in C e siamo ancora alle frequentazioni esclusive con il pacchetto Office (ECDL) spacciandole per studio dell'Informatica...

comunicazione di servizio, non diretta ai gentili utenti "in chiaro" di hwupgrade...

Pidocchiosissimo individuo, trombone assurdo con 40 anni di ricerche nel tuo settore buttate nel cesso... non credevo che tu fossi così verme da ficcare il naso anche qui per riferire ai tuoi degni compari di furfantate... vergognati!! E tu volevi che io prendessi parte alle vostre seghe mentali da Liberi mezzi muratori?

fine del comunicato, chiedo scusa agli ignari e incolpevoli frequentatori "in chiaro" di hwupgrade...

mone.java
22-03-2014, 14:36
comunicazione di servizio, non diretta ai gentili utenti "in chiaro" di hwupgrade...

Pidocchiosissimo individuo, trombone assurdo con 40 anni di ricerche nel tuo settore buttate nel cesso... non credevo che tu fossi così verme da ficcare il naso anche qui per riferire ai tuoi degni compari di furfantate... vergognati!! E tu volevi che io prendessi parte alle vostre seghe mentali da Liberi mezzi muratori?

fine del comunicato, chiedo scusa agli ignari e incolpevoli frequentatori "in chiaro" di hwupgrade...


Non l'ho capita...

cos1950
22-03-2014, 14:38
Non l'ho capita...

ed è comprensibile... infatti con hwupgrade centra ben poco... chiedo scusa...

mone.java
22-03-2014, 15:26
Allora colgo l'occasione per chiedere che fine hanno fatto elementi come: cionci, tigershark, pgi-bis, il tizio con il simbolo di windows (777... una cosa del genere), e tanti altri che erano assidui frequentatori del forum e che non vedo più.. Mi ricordo nel 2008, quando mi iscrissi, che mi leggevo le conversazioni ma senza partecipare troppo... però mi ricordo questi nomi e sicuramente ce ne sono anche altri...

Qualcuno di voi sa che fine hanno fatto?

cdimauro
22-03-2014, 22:20
Esatto.
comunicazione di servizio, non diretta ai gentili utenti "in chiaro" di hwupgrade...

Pidocchiosissimo individuo, trombone assurdo con 40 anni di ricerche nel tuo settore buttate nel cesso... non credevo che tu fossi così verme da ficcare il naso anche qui per riferire ai tuoi degni compari di furfantate... vergognati!! E tu volevi che io prendessi parte alle vostre seghe mentali da Liberi mezzi muratori?

fine del comunicato, chiedo scusa agli ignari e incolpevoli frequentatori "in chiaro" di hwupgrade...
Cosimo, ma che è successo? Io non ho letto nulla qui che potesse far pensare a qualche problema.

cos1950
24-03-2014, 09:27
Esatto.

Cosimo, ma che è successo? Io non ho letto nulla qui che potesse far pensare a qualche problema.

ti dico in pvt

Daniels118
24-03-2014, 09:54
Eh no, vogliamo saperlo anche noi! Mi hai incuriosito!