|
|
|
![]() |
|
Strumenti |
![]() |
#41 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Per il resto secondo me Squall94 ha la cosiddetta cotta giovanile per il java e il c++ (visto che fin dall'inizio, consigli a parte, sapeva da subito che voleva andare a cozzare su questi due linguaggi). Io ho cominciato con il java, giusto per chiarire, mi sono fatto le ossa con il c++ (per più di due anni) e son maturato con il c# (sono un programmatore amatoriale, giusto per chiarezza). Detto questo, credo che chiunque ami programmare se ne vedrebbe bene dal farlo in c++ se può evitarlo. E con questo non sto sminuendo il c++, credo sia un linguaggio fenomenale, ma semplicemente è troppo di basso livello per poter essere utilizzato come linguaggio da "tutti i giorni". Infine, ultimo spunto per la discussione, credo che tarpare le ali al c# (come ha fatto Squall94) sia sbagliato. Il c# è un linguaggio altamente produttivo, migliore del java dal mero punto funzionale in quanto si ispira ad esso e lo migliora in tutto. Ha lo svantaggio di non avere la diffusione del fratellone (Java) e questo è l'unico suo punto debole perchè per il resto attualmente lo reputo uno de migliori linguaggi sulla piazza (nella sua tipologia, intendiamoci). Voi cosa ne pensate? ![]() |
|
![]() |
![]() |
![]() |
#42 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Detto questo, QT è il mio unico framework quando voglio programmare in c++, è efficiente, prestazionale e completo ma crea una struttura al di sopra del c++ che ti porta ad estraniarti dal c++ stesso. Intendiamoci, programmare in QT non è programmare C++, non nel senso comune del termine, perchè ti assuefa alle sue classi, al suo modello di sviluppo, e ti estranea da quello che effettivamente è il c++. (Opinione personalissima eh, e mi piacerebbe sentire la vostra al riguardo, per un bel confronto). |
|
![]() |
![]() |
![]() |
#43 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Java ha qualcosa di analogo a QML? A me sembra che di recente il mondo che ruota intorno al C++ abbia ripreso un bel po' di spinta. Qt sono sicuramente un framework notevole quanto a completezza e supporto multipiattaforma, ma non dimentichiamo che anche Microsoft con l'introduzione Windows 8 ha parlato più di C++ che di .Net... |
|
![]() |
![]() |
![]() |
#44 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Troppe volte mi sono imbattuto in server che avevano esaurito il pool di connessioni perchè tanto c'è il Garbage Collector quindi la connessione al db la si può anche lasciare aperta, troppe volte ho vito file rimasti aperti in scrittura, file a cui il programma in fasi successive prova ad accedere ovviamente ottenendo un bell'errore, ma tanto c'è il GC che qualche volta fa in tempo a chiuderti il file prima dell'accesso successivo! |
|
![]() |
![]() |
![]() |
#45 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
E il preprocessore è stato usato in maniera intelligente per creare dei metadati. Windows 8 con Metro alla fine non fa altrettanto? Oppure vogliamo dire che il "vero" C++ è quello schifo che possiamo ottenere con MFC? Il C++ con l'ultima revisione dello standard si è dato una bella rinfrescata, andando a copiare a man bassa dalle funzionalità disponibili in C# (auto, lambda, future, nested constructor). |
|
![]() |
![]() |
![]() |
#46 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Detto questo, se un programmatore conosce il modus operandi del c/c++, passando ad un linguaggio a più alto livello non può che guadagnarci (a meno che non si entri nei campi per i quali il c++ è imprescindibile). Infine piccola parentesi riguardo alle "risorse". Nel C# vi è un comando ben preciso per gestire tali situazioni, perfino una interfaccia dedicata (IDisposable). Il comando è il : Codice:
using(risorsa) { bla bla bla } |
|
![]() |
![]() |
![]() |
#47 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Io credo che il c++ sia la migliore strada per imparare la programmazione. Dopo (e solo dopo!!) credo si debba pensare ad altri linguaggi, magari di più alto livello. Imparare il c++ ti insegna come funziona il motore sotto al cofano, ti insegna a comprendere i piccoli ingranaggi della programmazione, però non ti fornisce un modo davvero efficace per portarlo a termine. L'MFC è un incubo, se vuoi la mia opinione, solo credo che il framework QT, non essendo standard, tenda ad estraniarti dalla programmazione C++. In C# come in ogni linguaggio della CLI hai una libreria condivisa, ed essa è imprescindibile. In QT invece essa non è parte integrante del c++, non è uno standard, giusto per capirsi, per questo dico che la programmazione QT è uno "strato" al di sopra al c++. Se io scrivo una classe in ottica QT non userò mai la classe String (per dirne una), userò la QString (essendo ben più funzionale) e lo stesso si può dire per molte altre classi e strutture. Hanno perfino realizzato una macro per il for_each, giusto per capirsi. E' questo che voglio dire, QT è quello che sarebbe dovuto essere C++, ma purtroppo non lo è... Ultima modifica di [Kendall] : 03-06-2012 alle 17:55. |
|
![]() |
![]() |
![]() |
#48 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
In ambiente unix, invece, siamo da sempre abituati a considerare l'ambiente di programmazione come un insieme di tanti pezzi che vengono fatti lavorare insieme. Chiunque abbia lavorato in c++ sotto windows si trova stranamente confuso quando scopre che WinMain e tutti le funzioni win32 non sono in realtà parte dello standard c++. Si potrebbe fare un esperimento, prendendo un programmatore alle prime armi ed insegnarli la programmazione su qt. Probabilmente concluderebbe che qt e c++ sono un blocco unico. Ci sono molti esempi di framework che tendono a creare un superset del c++. Banalmente anche boost è una cosa del genere. Immagina di dover studiare il c++ e boost contemporaneamente e avere a disposizione un manuale che ti rimanda alle classi boost invece di quelle della stl del c++. Alla fine ti convincerei che c++ e boost sono un componente unico. E' il bello ( o forse il brutto, non so ) del c e del c++. Sono linguaggi nati per essere estesi, mentre altri linguaggi, tipo java, sono nati non solo per fornire policy e costrutti ma pure tutte le classi che servono nel 90% degli usi. Basta guardare la libreria java per capire che ti serve ben poco di esterno per realizzare una qualsiasi applicazione ( spesso basta la sola libreria java ). Chiaramente chi viene da un'esperienza di programmazione "chiavi in mano" ( tipo java, win32/c++, ecc.... ) trova alquanto strana che il c++ "liscio" non offra certe api che si credeva appartenere invece proprio al linguaggio. Ultima modifica di pabloski : 03-06-2012 alle 17:55. |
|
![]() |
![]() |
![]() |
#49 | |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
![]() E' solo che per farci UI boh, non mi sembra adatto. ma non ho mai provato Qt! Comunque, aggiungo che in termini di qualità il modo migliore per scrivere un'UI è usare le librerie "native" del sistema in questione (es: Cocoa su Mac, WPF/win32 su Windows, il DM che capita nella distro su Linux), possibilmente studiandosi il "linguaggio di interazione" (tutte le gestures etc che l'utente si aspetta che funzionino, tipo Mela+W o il drag & drop o il pinch to zoom su touch)... ma non sono un UI programmer, quindi è una mera opinione ![]() Ultima modifica di Tommo : 03-06-2012 alle 18:03. |
|
![]() |
![]() |
![]() |
#50 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Quello che ho detto anche prima ma mi sembra sia sfuggito è che sarebbe inutile usare Visual C++ per scrivere in C++ nativo, il suo primo utilizzo credo sia proprio quello di scrivere C++ sulla piattaforma .NET, correggetemi se sbaglio. Per la sintassi di Java, C# e C++ si hai ragione, l'ho detto proprio prima in merito all'acquisizione di dati e il rilascio in eventuali TextBox, in C# devono essere convertiti per essere caricati in memoria e poi riconvertiti per la stampa. |
|
![]() |
![]() |
![]() |
#51 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Pazienza ce l'ho, troppa. Risultati ? Beh penso che per il prossimo anno Java l'avro assimilato per bene visto che adesso mi trovo bene con classi e sottoclassi, ma questa sembra essere la base, i problemi sono gestione di problemi eventuali e controlli, la si che ci sta da perderci tempo, senza qualcuno che mi corregga sarà una bella impresa, anche se ci sono i forum, questi ti fanno arrivare a una soluzione non in tempi brevi, specialmente se devo risolvere un problema per un programma abbastanza complesso ( ne dubito per ora ). Mi potresti spiegare " software engineering ", so cosa significa ma cosa intendi ? Se è come la penso io per il momento non credo sia necessario. In C ci avviciano troppo a cose difficili, adesso mi devo preoccupare di sapermi muovere su Java e di migliorare un po' il C++, anche se quelle cose mi incuriosiscono proprio, è la che ti fai delle domande e vuoi le risposte a tutti i costi ![]() Gestire problemi di memoria, thread e quant'altro ...... non mi ci fa pensà, se mi ci focalizzo ora ci metto un secolo per muovermi poi su altri linguaggi ![]() |
|
![]() |
![]() |
![]() |
#52 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
PyQt sarebbe Python su Qt ? Qt mi fa scegliere C++, Qt, QML ( mai sentito ), GLSL e General che sarebbe un file di testo. Stessa cosa per Metro, cos'è ? Spiegami pure cos'è Js+HTML5, sto cercando già troppe cose, alla fine del thread vorrei avere idee chiare ![]()
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA Venduto a : Baio77 --- tonymax --- kris89 --- steee Ultima modifica di Squall 94 : 03-06-2012 alle 19:39. |
|
![]() |
![]() |
![]() |
#53 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Ad esempio con Dev in C++ usavo Math.h, fstream, sono queste le librerie standard ? Se è così allora tutte quelle che ho usato in C# fanno parte del .NET, ora o accetto di aver perso tempo ma comunque a scuola lo dovevo fare, oppure ci trovo qualcosa di positivo, ma dove ??? ![]() |
|
![]() |
![]() |
![]() |
#54 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
|
|
![]() |
![]() |
![]() |
#55 | |
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
In questi 2 giorni credo che abbiamo fatto il record di risposte in una discussione e io di conoscienza ![]() |
|
![]() |
![]() |
![]() |
#56 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
In questo caso mi è anche chiaro perchè ti sembrasse un c++ strano quello di visual c++. Se aggiungiamo .net, di c++ rimane solo la sintassi, le classi e le parole chiave, mentre la stl viene completamente sostituita dalle librerie .net. E' la stessa cosa che ti troveresti a fare con c++/qt. Ovviamente la stl puoi benissimo usarla, ma in genere si preferisce usare ciò che offre qt ( perchè offre di più e di meglio ). L'unica differenza è che qt gira su windows, linux, macos e altri sistemi operativi meno conosciuti. |
|
![]() |
![]() |
![]() |
#57 | ||
Senior Member
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
|
Quote:
Quote:
Se ho capito bene posso continuare ad usare quelle standard ma è meglio usare quelle di Qt, perchè ? Poi mi sembra strano, cioè c'erano già librerie che facevano il loro lavoro, perchè riscrivere tutto ? Oppure sono state solo modificate o addirittura migliorate ? Non capisco l'esigenza di creare librerie proprietarie per un IDE, forse per legare l'utente all'uso di quell'IDE ? Mi sembra lavoro in più, è ovvio che c'è una spiegazione ![]()
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA Venduto a : Baio77 --- tonymax --- kris89 --- steee Ultima modifica di Squall 94 : 03-06-2012 alle 21:03. |
||
![]() |
![]() |
![]() |
#58 | |||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
math e fstream lo sono
si, ma puoi usarle insieme alla stl del c++ Quote:
Quote:
Quote:
lo stesso vale per le librerie windows, che sono state create per migliorare quelle del c++ ed offrire qualcosa in più |
|||
![]() |
![]() |
![]() |
#59 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Riguardo al riscrivere classi e funzionalità, il tutto ha senso... Perché? Perchè loro hanno costruito una piattaforma. Non possono basarsi su strumenti di altri ergo devono imbastire una infrastruttura tale da fornire tutte le funzionalità base, e queste devono essere tali per tutto il ciclo di vita del framework (o per gran parte). Per questo il team di QT ha riscritto una marea di classi. Per creare una loro base e una loro piattaforma di programmazione. E' per questo che dicevo che programmare in QT non è programmare in C++, non interamente almeno. |
|
![]() |
![]() |
![]() |
#60 | ||||
Member
Iscritto dal: Mar 2008
Messaggi: 47
|
Quote:
Quote:
Non ci si scappa, nella libreria standard C++ non c'è niente su GUI, processi, rete... Quindi per usare GUI, processi, rete... bisogna rivolgersi a librerie non standard. Quote:
Visual C++ è un IDE per C++, supporta il linguaggio standard e l'estensione per .NET. Non ha niente di meno di altri IDE per C++ (anzi è considerato uno dei migliori IDE disponibili). In C++ standard non permette di disegnare l'interfaccia grafica, ma nessun IDE lo permette dato che l'interfaccia grafica non fa parte del C++ standard. Se decidi di usare Qt puoi disegnare le finestre con Designer e programmare con Visual C++, oppure fare tutto con QtCreator. Quote:
http://www.cplusplus.com/ http://en.cppreference.com/w/ Boost (la prima libreria che devi guardare se quello che ti serve non è nello standard): http://www.boost.org/ Qt: http://qt-project.org/doc/qt-4.8/ Comunque se il tuo obiettivo principale era trovare un linguaggio portabile forse dovresti davvero provare qualcosa di più alto livello, come Java, Python o Ruby. |
||||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:34.