Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-06-2012, 15:35   #41
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da cj++ Guarda i messaggi
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
Direi che la confusione è pure ammissibile. Nel senso, come hai detto tu se non conosci i linguaggi, i framework e gli strumenti a disposizione difficilmente all'inizio riesci ad orientarti (è successo a tutti noi credo...).

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?
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 15:44   #42
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Secondo me fai molto male



Python non mi risulta avere framework grafici nativi. Quello che va più di moda non a caso è PyQt...
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...
QT è un framework assolutamente valido, e concordo al 100% sul fatto che sia molto più produttivo di java riguardo alla produzione di applicativi desktop. Semplicemente quest'ultimo non si è sviluppato nel tempo per fornire un supporto "pesante" a tale tipo di sviluppo, e quindi risulta anche normale un certo abbandono (se mi passate il termine) dell'ambiente desktop.
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).
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 15:46   #43
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Tommo Guarda i messaggi
Sto dicendo che la libreria di Java (o altri) di windowing è fatta meglio ed è più coerente rispetto alle 209348 che esistono per C++, imho... e soprattutto C++ è "troppo vecchio" per esprimere bene "le finestre", da cui le varie estensioni di Qt. Con gli altri linguaggi è più elegante, tutto qua.
Quando si parla per partito preso...
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...
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 15:59   #44
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
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".
Per esperienza personale trovo che chi si è imbattuto nel C++ riesca a capire l'importanza di rilasciare le risorse, cosa che moltissime persone cresciute con linguaggi gestiti nemmeno prendono in considerazione e considerano come delle semplici sviste.

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!
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 16:14   #45
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
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).
Non capisco perchè utilizzare Qt non sia programmare in C++. Alla fine sono sempre classi scritte in C++.
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).
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 16:14   #46
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Per esperienza personale trovo che chi si è imbattuto nel C++ riesca a capire l'importanza di rilasciare le risorse, cosa che moltissime persone cresciute con linguaggi gestiti nemmeno prendono in considerazione e considerano come delle semplici sviste.

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!
Non posso che darti ragione. Credo che il c++ come il c siano linguaggi che ogni programmatore che possa definirsi tale DEVE sapere, o almeno conoscere. Perchè ti insegna a programmare con cura, con attenzione.

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
}
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 16:26   #47
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Non capisco perchè utilizzare Qt non sia programmare in C++. Alla fine sono sempre classi scritte in C++.
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).
Aspetta, non reputarmi un detrattore del c++ (sempre se l'hai fatto). Non lo sono!
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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 17:50   #48
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
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.
E' questione di percezione. Ed è quello che, penso, ha confuso Squall. L'ambiente microsoft ti pone all'interno di un sistema chiuso fatto di linguaggi e librerie.

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.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 18:00   #49
Tommo
Senior Member
 
L'Avatar di Tommo
 
Iscritto dal: Feb 2006
Messaggi: 1304
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Quando si parla per partito preso...
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...
non volevo criticare C++ ci mancherebbe, è il linguaggio che uso il 99% del tempo
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
__________________
*ToMmO*

devlog | twitter

Ultima modifica di Tommo : 03-06-2012 alle 18:03.
Tommo è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 19:09   #50
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Originariamente inviato da bender86 Guarda i messaggi
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.
Concordo anche con quello che hai detto successivamente in merito alle librerie Linux e Windows,.
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.
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA
Venduto a : Baio77 --- tonymax --- kris89 --- steee
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 19:22   #51
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Originariamente inviato da cj++ Guarda i messaggi
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
Professione un domani, stavo pensando a ingegneria informatica o scienze informatiche che comunque non mi quadra per niente, lo stesso ingegneria per la poca programmazione presente dopo addirittura i 3 anni, ma non andiamo in OT.
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 , è roba difficile, o almeno vederseli da soli non richiede poco tempo.
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA
Venduto a : Baio77 --- tonymax --- kris89 --- steee
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 19:36   #52
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Secondo me fai molto male



Python non mi risulta avere framework grafici nativi. Quello che va più di moda non a caso è PyQt...
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...
Qt sarebbe male er quale motivo ? Non ho capito cosa intende con il preprocessor.
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.
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 19:52   #53
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Originariamente inviato da pabloski Guarda i messaggi
E' questione di percezione. Ed è quello che, penso, ha confuso Squall. L'ambiente microsoft ti pone all'interno di un sistema chiuso fatto di linguaggi e librerie.

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.
È proprio l'ambiente Miicrosoft per la sua chiusura che mi volevo astenere.
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 ???
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA
Venduto a : Baio77 --- tonymax --- kris89 --- steee
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 19:57   #54
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Qt sarebbe male er quale motivo ? Non ho capito cosa intende con il preprocessor.
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 .
QML è un linguaggio di markup... Però, dimmi una cosa, perchè vuoi passare dal c# al Java? Nel senso, quale motivazione ti spinge? Perchè dalle tue parole sembra troverai nel Java l'illuminazione, ma invece rispetto al c# rimarrai deluso (almeno secondo me)
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 20:30   #55
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
QML è un linguaggio di markup... Però, dimmi una cosa, perchè vuoi passare dal c# al Java? Nel senso, quale motivazione ti spinge? Perchè dalle tue parole sembra troverai nel Java l'illuminazione, ma invece rispetto al c# rimarrai deluso (almeno secondo me)
La portabilità come ho detto all'inizio, lo so che C# è molto potente ma non versatile, poi comunque Java lo dovrò imparare per forza perche come mi hanno detto prima C++ e Java sono d'obbligo, almeno per conoscienza basilare.

In questi 2 giorni credo che abbiamo fatto il record di risposte in una discussione e io di conoscienza .
__________________
Acquisti conclusi egregiamente con : TH4N4TOS --- Ramius83ITA
Venduto a : Baio77 --- tonymax --- kris89 --- steee
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 20:44   #56
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
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 ???
Mi è chiaro adesso. In pratica, seguendo i manuali ufficiali, eri portato ad usare le api .net e win32 a discapito della standard library del c++.

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.
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 21:01   #57
Squall 94
Senior Member
 
L'Avatar di Squall 94
 
Iscritto dal: Jul 2010
Città: Teramo
Messaggi: 1298
Quote:
Mi è chiaro adesso. In pratica, seguendo i manuali ufficiali, eri portato ad usare le api .net e win32 a discapito della standard library del c++.
Mi stai dicendo che quelle non sono le standard ?

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.
Quindi anche Qt avrà le sue librerie ?
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.
Squall 94 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 21:23   #58
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Mi stai dicendo che quelle non sono le standard ?
math e fstream lo sono

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Quindi anche Qt avrà le sue librerie ?
si, ma puoi usarle insieme alla stl del c++

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Se ho capito bene posso continuare ad usare quelle standard ma è meglio usare quelle di Qt, perchè ?
perchè uno degli obiettivi di qt è fornire funzionalità migliori rispetto alle librerie standard del c++

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
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 ?
internamente qt fa uso delle librerie standard del c++, ma le estende e, laddove necessario, le rende multipiattaforma

Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Non capisco l'esigenza di creare librerie proprietarie per un IDE, forse per legare l'utente all'uso di quell'IDE ?
qt non è un'ide, qt è un framework che offre una miriade di librerie che svolgono un mucchio di funzioni, tra cui la grafica che in c++ non esiste

lo stesso vale per le librerie windows, che sono state create per migliorare quelle del c++ ed offrire qualcosa in più
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2012, 22:13   #59
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Squall 94 Guarda i messaggi
Mi stai dicendo che quelle non sono le standard ?



Quindi anche Qt avrà le sue librerie ?
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 .
No aspetta, non confondere le cose. QT era, è e sempre sarà una libreria. Un framework. Ai ragazzi della Nokia non frega nulla di imporre la propria IDE (QT Creator) perchè tale IDE è e sempre sarà a meno di stravolgimenti legata al framework stesso.

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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2012, 09:35   #60
bender86
Member
 
L'Avatar di bender86
 
Iscritto dal: Mar 2008
Messaggi: 47
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
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".
Mi sembra un po' esagerato, usando decentemente STL e Boost C++ ha molte caratteristiche di alto livello, a differenza del C. Certo che se lo si usa come "C con le classi" allora hai ragione, il problema principale è che è molto complicato da imparare. Comunque è vero che esistono molti altri linguaggi più semplici.

Quote:
Originariamente inviato da pabloski Guarda i messaggi
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++.
Io ho visto più persone iniziare su Unix (in università) e poi chiedersi come usare fork e exec su Windows.
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:
Originariamente inviato da Squall 94 Guarda i messaggi
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.
Sbagli.
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:
Originariamente inviato da Squall 94 Guarda i messaggi
Ad esempio con Dev in C++ usavo Math.h, fstream, sono queste le librerie standard ?
Libreria standard C++:
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.
bender86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Nuovissimi Xiaomi 15T e 15T Pro con tagl...
Le agenzie federali americane potranno u...
Smartphone pieghevoli sempre più ...
LG svela le Easy TV, una nuova gamma di ...
L'equipaggio della missione Shenzhou-20 ...
Possibili detriti spaziali del razzo cin...
Amazon distrugge i prezzi: TV OLED LG, i...
Trump studia dazi fino al 100% per sping...
ASUS Vivobook Go 15 in offerta su Amazon...
Occhio a questi Mini PC e tablet in offe...
La navicella Dragon di SpaceX ha modific...
Il Gruppo Volkswagen taglia la produzion...
Amazon sconta gli spazzolini Oral-B iO: ...
Metal Gear Solid: nuova Collection in ar...
Amazon lancia i pareggi NO IVA: maxi sco...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:34.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v