|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
visual studio supporta una batteria di linguaggi tra cui c# e c++ cli e non cli quest'ultimo è un normalissimo c++ Quote:
xna è usato principalmente per giochi indie sotto windows e, in genere, accoppiato a c# Quote:
Quote:
Quote:
se prendi Codice:
int main() { cout << "Ciao mondo!" << endl; return 0; } questo però è un problema di api ( cioè le funzioni che il sistema operativo offre ai programmatori ) e non di linguaggio tutti i costrutti del c++ funzionano in visual c++ e tutte le funzioni dell'api standard del c++ sono supportate |
|||||
![]() |
![]() |
![]() |
#22 | ||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
c++ è un'estensione del c
Quote:
Quote:
eclipse è il più complesso di tutti inoltre sia eclipse sia netbeans supportano pienamente java Quote:
quelle però non sono librerie del c++ ma di windows, così come qt e gtk sono librerie grafiche per linux che non hanno niente da spartire con c++ da c++ puoi chiamare qualsiasi funzione presente in qualsiasi libreria, per cui ti sembrerà che il linguaggio cambia a seconda delle librerie che usi ma non è così netbeans ed eclipse ( sotto linux ) usano il compilatore gcc per il c++ quali librerie usare lo deciderai tu nel programma, a parte la libreria standard del c++ che viene usata di default solamente le funzioni presenti nella libreria standard vanno considerate funzioni del c++, tutte le altre cose che hai visto sotto windows vengono importare dalle librerie windows ( gdi soprattutto ) ma non fanno parte del c++ Quote:
eclipse e netbeans supportano di tutto, ma sono solo ide, il resto dipende dai compilatori e dalle librerie che importerai nei tuoi programmi |
||||
![]() |
![]() |
![]() |
#23 | |
Member
Iscritto dal: Jul 2011
Messaggi: 246
|
Quote:
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto. CONCLUSO POSITIVAMENTE CON: oldfield |
|
![]() |
![]() |
![]() |
#24 | ||
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
![]() Quote:
Non avendo niente da spartire con il C++ è una cosa che non lo rende flessibile, cioè se faccio un programma in C# o Visual C++ usando gli open dialog di Windows con tutte le sue personalizzazioni, in linux me lo scordo. Lo stesso con calendari, gestioni di date personalizzate ecc. Vorrei usare il C++ con librerie che siano compatibili con entrambi, ho visto vari problemi nell'installare il Framework.NET su Linux, sempre se mamma Microsoft lo permetta, se non lo permette è ancora peggio. Riassumendo per il C++ che oggi ho messo troppa carne al fuoco ![]() Scusate ma adesso ho troppe cose per la testa, ho perso il filo. |
||
![]() |
![]() |
![]() |
#25 | ||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Riguardo Visual C++, invece, il problema non è in C++ ma nell'api win32. Un programma scritto in C++ per windows ( che sia scritto con visual c++, dev, codeblocks non cambia la sostanza ) non è portabile su linux senza modifiche. Ma questo non perchè Visual C++ è un C++ diverso da quello tradizionale ( infatti implementano lo stesso linguaggio ). Il problema sta nell'uso di funzioni specifiche di windows che non esistono su linux. Vorrei che fosse chiaro che ( a parte C++ .net che effettivamente è un C++ diverso ), il C++ di Visual C++ è lo stesso C++ di gcc ad esempio. Solo che mentre in Java e C# si usa sempre la standard library ( perchè contiene quasi tutto quello che serve ), in C++ si usano moltissimo librerie esterne ( perchè quella standard non contiene roba grafica, audio, animazioni, ecc... ). Quote:
una libreria che gira su linux e windows è qt...è decisamente completa, non manca nulla e ti permette di far girare gli stessi programmi sia su windows che su linux Quote:
Quote:
Quindi l'obiettivo è scegliere una libreria che esista su windows e linux. Una famosa è qt, ma ci sono wxwidgets, ultimate++, fltk. QT è la più completa sicuramente ed è quella migliore se vuoi creare programmi in c++ che girano senza modifiche sotto windows, linux e macos. |
||||
![]() |
![]() |
![]() |
#26 | ||
Senior Member
Iscritto dal: May 2001
Messaggi: 12846
|
Quote:
Ripeto: puoi creare codice C++ nativo con Visual Studio. Se non ne sei convinto forse dovresti semplicemente studiare di più. Quote:
Comunque sembra che le Windows Forms siano supportate da mono: http://www.mono-project.com/WinForms Comunque se vuoi qualcosa di nativo e portabile puoi optare per le librerie Qt come già ti hanno detto, che non sbaglio sono usabili tranquillamente con Visual Studio (se non erro serve un plugin). |
||
![]() |
![]() |
![]() |
#27 | ||||
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Indendevo questo quando ho detto : Quote:
Quote:
Già quì devi fare un bel pò di lavoro, contando anche la gestione dei dati immesi, specialmente se sono numeri. In C / C++ e in C# questo è diverso, dovrebbe esserlo anche per Visual C++ usando IL Framework.NET che mi server per forza. La soluzione che mi avete proposto voi 2 è la libreria Qt per risolvere tale problema, così posso avere lo stesso codice usando la libreria senza cambiare le cose. Quote:
Purtroppo è un inciampo perchè noi che siamo giovani ci ritroviamo con un mondo immenso dove dobbiamo saper scegliere, qualcuno di voi l'ha vissuta graduale e si è evoluto con calma diciamo. Noi quando programmiamo non c'interessiamo alla memoria che sprechiamo, ne tantomeno alle risorse salvo progetti grandi, nessuno ci da delle linee guida e tantomeno è facile farci caso visto l'hardware che ci ritroviamo oggi. La nostra generazione saranno i programmatori del domani e stai tranquillo che se non ci viene insegnata la programmazione in modo corretto un sistema operativo tra 30 anni non si avvierà nemmeno con la mia configurazione ![]() |
||||
![]() |
![]() |
![]() |
#28 |
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
Scusate se mi intrufolo, ma devo ringraziarvi per le utilissime indicazioni che state dando!!!
![]() Sono un programmatore vengo dal lontano Borland Turbo C passato poi al Borland C++ per arrivare al Visual Basic 5.0 poi 6.0 e al Visual C++ 6.0 sono dopo molti anni approdato al C# 4.0 e ero incuriosito sulle potenzialità di portabilità del codice. Anni fa (2003) avevo sentito parlare di .NET e del pseudo codice IL e dei primi tentativi di rendere .NET multi-piatta. Non ero assolutamente a conoscenza che questi sforzi avevano partorito l'open-source "mono". Ottimo spunto per approfondire lo studio di questo sistema. Comunque seguo con molto interesse ogni spunto di questa discussione, essendomi interessato anche (sporadicamente) di Java (sono un po in dietro conosco solo la 6 SE).
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb |
![]() |
![]() |
![]() |
#29 | |||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Chiaramente, dovendo usare qt, perchè non usare qtcreator visto che è fatto apposta? Così esporti verso linux pure i file di progetto e usi lo stesso ambiente su tutte le piattaforme. In questo senso non risulta difficile vedere visual c++ come un'ide a senso unico, legato a doppio filo con windows, .net e tutto il resto. E' questione di gusti in fondo. C'è chi ama scrivere a mano pure le applicazioni grafiche. Ma ovviamente l'usare un'ide ha come scopo quello di semplificare la vita e non complicarla ![]() Quote:
Quote:
Quote:
![]() Quote:
Altrimenti Vista chi l'avrebbe potuto scrivere? ![]() Ultima modifica di pabloski : 02-06-2012 alle 20:37. |
|||||
![]() |
![]() |
![]() |
#30 | ||||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
![]() Quote:
![]() Quote:
![]() Quote:
se proprio vuoi usarlo, allora scrivi il software sotto linux/mono e poi testalo su .net il viceversa può essere costarti la riscrittura di parte del codice e la scoperta che avevi usato questa o quella funzionalità che in mono è buggata o nemmeno supportata. |
||||
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Benvenuto al nuovo utente allora, impariamo un po' tutti
![]() Allora Quote:
L'unica cosa buona di Visual Studio è la facilità, ma a costo di farmi piacere il peggior IDE voglio cambiare musica ![]() |
|
![]() |
![]() |
![]() |
#32 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
![]() Per quanto mi riguarda, anche se scrivo C++ 100% cross platform, VC++ rimane il miglior IDE in assoluto a parte qualche difettuccio, specie coi plugins, e se si sa quello che si fa è assolutamente falso che VC++ lega in qualsiasi modo a Windows... e la situazione su linux è abbastanza disastrosa dalle prove che ho fatto. Ok, a parte VC11 express, che produce solo app metro ![]() PS: se ti interessa davvero il crossplatform e vuoi scrivere in un linguaggio moderno, e soprattutto vuoi scrivere programmi che usano l'interfaccia di sistema, C++ non è affatto il più adatto. C++ è adatto per giochi, simulazioni, middleware, sistemi operativi etc, ma per la tipica roba in cui clicchi tasti va da "terribile" a "quasi decente" ![]() Vedo che qui è stato consigliato Qt, ma personalmente l'idea che una libreria contenga un proprio preprocessor per "rimediare" alle carenze del linguaggio mi incute terrore mistico. Per cui, ti consiglierei linguaggi che comprendono quantomeno nella libreria standard un qualsiasi windowing, tipo Java, python, o pure JS+HTML sul web, etc. E se proprio hai deciso di imparare C++, acchiappa SFML e fai un videogioco! Ultima modifica di Tommo : 02-06-2012 alle 21:50. |
|
![]() |
![]() |
![]() |
#33 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Quote:
se vuoi usare una qualunque altra libreria grafica, visual studio non ti aiuta in nessun modo, devi fare tutto da codice ( creare le finestre, creare ed aggiungere i bottoni, ecc... ) |
||
![]() |
![]() |
![]() |
#34 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
|
|
![]() |
![]() |
![]() |
#35 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Tutti su Visual C++ e XNA. Torniamo a noi, mi stai dunque dicendo che il Java sarebbe una valida alternativa perchè reca meno problemi di compatibilità, non lasciando comunque una buona conoscienza di C++ che può sempre servire. Fin quì penso che tutto fili ![]() Voglio imparare Java proprio per questo, per C++ non dimenticherò mai la sintassi come pure il C#. Aggiungere Java e farlo meglio dei 2 secondo me è un'ottima scelta. Se ho afferrato bene Java usa la sua VM che deve essere presente nel sistema operativo, così basta avere quella che interpreta il codice sorgente e siamo a posto. Ma è davvero così anche per Linux ? Se io scrivo un sorgente in un file di testo, su Linux verrà compilato correttamente oppure si posso incontrare problemi ? È questo che mi preoccupa ... |
|
![]() |
![]() |
![]() |
#36 | ||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Quote:
Si, è così anche per linux. Un sorgente java si compila in bytecode su windows così come su linux. Non c'è nessunissima differenza. |
||
![]() |
![]() |
![]() |
#37 | ||
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
Ovviamente su XBox. Altrove, usano la libreria PS sulla PS, DX sul pc etc. Ma si, molto probabilmente l'ide che hanno usato è VC++ per tutte. Quote:
Per rispondere alla domanda su Java, la JVM è preinstallata su tutti gli OS eccetto iOS (quindi ti giochi del tutto iPhone) e le console. La JVM non usa assolutamente il "file di testo". Il compilatore javac genera un file bytecode che poi viene eseguito dalla JVM nello stesso modo su tutti gli OS. Quindi si, idealmente "compile once run everywhere"... in pratica spesso ci sono problemini assortiti, quindi sarebbe meglio controllare che tutto funga dappertutto. Ultima modifica di Tommo : 02-06-2012 alle 23:37. |
||
![]() |
![]() |
![]() |
#38 | ||
Member
Iscritto dal: Mar 2008
Messaggi: 47
|
Un po' di commenti in ordine sparso.
C++ è un linguaggio standardizzato, Visual C++ è un IDE, un programma che permette di scrivere codice, che include anche un compilatore C/C++, è sviluppato dalla Microsoft. GCC è un altro compilatore C/C++/altri linguaggi sviluppato dalla FSF. Esistono moltissimi altri IDE e altri compilatori. C++/CLI è l'implementazione di C++ per la piattaforma .NET, che permette di programmare in modo indipendente dal linguaggio. Visual C++ supporta sia .NET che la programmazione nativa in C, C++. Su .NET girano molti altri linguaggi: C#, F#, Python, Ruby, Ada, Lisp, Prolog, Fortran, Cobol, Haskell... Nell'ambito di C e C++ Visual C++ supporta più o meno completamente lo standard. Credo supporti completamente C89 e C++98, e parzialmente C99 e C++11. Poi offre estensioni allo standard nell'ambito dello stesso linguaggio. Il discorso è identico per GCC, che non supporta completamente gli standard (anche se forse un po' di più di Visual C++) ed offre delle estensioni, e anche per gli altri compilatori. La sintassi di C#, C++, Java (e altri linguaggi) è ispirata a quella del C (anche ci sono comunque molte differenze). Ma la sintassi è solo una piccola parte di un linguaggio, tutto il resto può essere completamente diverso. Non credere di passare agevolmente da un linguaggio all'altro solo perché entrambi usano le graffe per delimitare i blocchi. Per lo stesso motivo dire che C++ è un'estensione del C è corretto (quasi, a meno qualche differenza) ma anche ingannevole. Sono linguaggi molto diversi, soprattutto si usano in modo completamente diverso (idiomi). Nessuno standard C o C++ dice niente riguardo alle interfacce grafiche (ma anche alla programmazione di rete, gestione processi, database, audio...). Quindi non c'è modo di scrivere un'interfaccia grafica in C/C++ standard. I vari sistemi operativi che implementano un'interfaccia grafica offrono anche delle API (ovviamente non standard) per usarla. Su Windows ci sono le API Win32 (che danno accesso a tutte le funzionalità del sistema, tra cui la grafica), su sistemi che usano il server X (Linux ad esempio) c'è la libreria XLib, su OSX c'è Cocoa (credo si chiami così, mai usato). Poi su Windows (ma anche su Linux) si possono usare i WinForm della piattaforma .NET, se presente. Quindi quando dici: Quote:
Quote:
Esistono diverse implementazioni per ogni linguaggio/piattaforma. Ad esempio per .NET c'è il framework Microsoft che funziona su Windows, Mono che funziona su Windows, Linux e forse altro, DotGnu e altri. Per Java c'è la JVM di Oracle, quella di Apache, tempo fa quella di Microsoft, il compilatore GCC (con GCC si può compilare Java in codice nativo) e altre. Per C/C++ c'è il compilatore Microsoft, quello Borland, quello Intel, GCC, CLang, qualche interprete (esatto, interpreti C/C++) e moltissimi compilatori proprietari. |
||
![]() |
![]() |
![]() |
#39 |
Member
Iscritto dal: Sep 2005
Città: Barcelona
Messaggi: 200
|
L'ennesimo thread sull'argomento...
Ho l'impressione che la confusione sia dovuta dalla poca conoscenza dei linguaggi, dei tools e delle differenze fra loro. 1. Programmare è un hobby o vuoi farne una professione? Nel secondo caso, potresti orientarti verso i linguaggi piu richiesti ed abituarti a tecniche di software engineering (TDD, ...). 2. Quanto tempo puoi dedicare giornalmente allo studio del linguaggio? Ci son linguaggi, come il C, che richiedono inevitabilmente spender ore su GDB e sulla teoria di sistemi operativi (non puoi lavorare in C senza saper la differenza fra lo stack e l'heap). 3. Quanto in fretta vuoi ottener risultati visibili? Quanta meno pazienza hai, quanto piu di alto livello sceglielo... Per quanto riguarda gli IDE... a meno che tu non faccia programmi realmente grossi, spesso un editor di testo con highlight è piu che sufficiente. Ed abituati a compilare/linkare da linea di comando. Non hai idea di quanti programmatori C non sappiamo creare un makefile a mano ![]()
__________________
Code without tests is broken by design. |
![]() |
![]() |
![]() |
#40 | ||
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
![]() Quote:
Js+Html sul web è d'obbligo essendo l'unico standard supportato dai browser... Inoltre secondo me è molto più produttivo utilizzare Qt che non Java per creare programmi desktop. Mi assumo pienamente la responsabilità di quello che dico. Inoltre grazie a QML, Qt sono andate oltre il classico sviluppo di applicazioni GUI. L'unico altro framework paragonabile è WPF. Java non mi sembra offra altrettanto. Oltretutto ci sono già esempi di Qml su Metro. Senza contare che volendo si può fare un'applicazione Android con Qt... |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:37.