|
|
|
![]() |
|
Strumenti |
![]() |
#41 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Così hai letto, ma evidentemente chi ha scritto non aveva chiare le idee nemmeno lui...
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#42 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21805
|
Quote:
come ho già detto nei post precendenti io lavoro in c++ perchè non lavoro su pc ma se devo scrivere un programma per uso desktop dal c++ ci stò lontano come un appestato, fai così se ti piace la sintassi del c++ impara il c# la sintassi è simile ma la facilità del linguaggio è su un altro pianeta e puoi usare visual studio che è a dir poco ottimo con il c# (molto meglio degli ide commerciali da svariati k€ che uso io)
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#43 |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Io ho iniziato a programmare da relativamente poco cioè 7 anni... Quindi mi ricordo bene che quando inizai avevo voglia di fare... è inutile secondo me che stai a leggerti tanta teoria utile a risolvere problemi che nemmeno ti sei posto... e anche se te li porge il libro stesso difficilmente riuscirai a capirli... quindi il mio consiglio è inizia a scrivere i primi programmi (calcolatrice, equazioni di secondo grado, ecc...) e man mano vedrai che ti servono nuove nozioni per andare avanti (suddividere il progetto in piu files, interazione con l'utente e cosi via) allora inizia a leggere un po di teoria... Ovviamente anche solo per iniziare ti serve un libro un testo un qualcosa... Io tuttora quando devo affrontare un problema Leggo la guida/libro/capitolo/tutorial ecc... applico quello che ho imparato... Poi rileggo la guida/libro ecc... perchè alla prima lettura ti sfugge sempre qualcosa... quel qualcosa che impari sia necessario solo esercitandoti... spero di essere stato chiaro...
ps anche io ti sconsiglio c/c++ ma piuttosto Java, C#, Python....
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
![]() |
![]() |
![]() |
#44 | |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
Io sono solo un semplice studente, che ha usato in maniera abbastanza seria C# e sta iniziando ad usare C++ Ho trovato gdb di molto superiore al debugger per .Net di VS -- sono stato costretto ad abbandonare il debugger di VS ed usare WinDbg + SOS per C# Ho trovato dei profiler ottimi e gratuiti, ho trovato un memory checker migliore di quello che viene con .Net (il CLRProfiler) Mi sono ritrovato con un memory leak in un server complesso scritto in C# (sì, è possibile avere memory leak anche in C# ![]() L'heap aveva dimensioni di circa 600mb (il server fa un pò di cose, è normale avere heap anche senza alcun leak che superano i 400mb). Per ogni benedetta singola operazione, CLRProfiler andava in freeze per un paio di minuti Con valgrind trovare un leak in una programma C++, è stato nettamente più semplice Anche come complessità di linguaggio, onestamente, C# è un linguaggio complesso (dynamic typing, attributi, reflection, partial class, property, anonymous type, extension method, LINQ, async...) sono cose sì utili, ma non so se si può affermare che C# sia un linguaggio più semplice di C++ Parlo solo a livello di linguaggio, e non tutto il resto (STL vs BCL e così via) Altro esempio di cui posso parlare, sono i problemi di threading Questo server ad un certo punto andava in livelock, riprodurre il problema in locale non è stato semplice In C++ esistono vari strumenti per trovare problemi con i threads, io per .Net non trovai assolutamente nulla di quello che fa helgrind (tranne che creare un dump, ed ananlizzarlo con WinDbg + SOS (guarda sopra) cercando di capire da dove nasceva il livelock) Stessa situazione l'ho trovata con gli IDE VS non è così avanzato come IDE per .Net senza aiuti come ReSharper Sempre personalmente, ho trovato IDE come Eclipse tutt'altro pianeta comple completezza -- se poi consideri che Eclipse è gratuito mentre VS + ReSharper non sono certo gratis (ovviamente qua si parla per Java) So che a te potrà sembreare strano o forse ridicolo, ma tra VS Ultimate e KDevelop, trovo decisamente migliore KDevelop 4.5 + cmake + perf + valgrind, per C++ Sempre parlando per la mia esperienza personale, la vera differenza che sto trovando tra C# e C++ è solo e solamente: la gestione della memoria, e far attenzione alle promozioni dei tipi numerici Voglio aprire una piccola parentesi sulla gestione della memoria: E' vero che C# gestisce la memoria per te, ma la memoria è solo una parte delle risorse che un sw complesso si trova ad utilizzare C# infatti introduce un concetto che in C++ non esiste: i finalizer, e come per magia, ti ritrovi alla stessa situazione di C++ Guardacaso, il leak di cui parlavo prima, era in un finalizer, che veniva sì chiamato, ma il finalizer stesso conteneva un bug (il codice che ti costringe a scrivere il finalizer e l'interfaccia IDisposable, non è proprio magnifico, assolutamente no) Ah, sto scrivendo molti meno if(parametro == null) { ... } in C++ rispetto C# A me fa specie di vedere invece tanta gente che sconsiglia C++ --- perchè non capisco, cosa abbia di così mostruoso rispetto a C# Nota, non ho avuto mai problemi con il GC di .Net Sono passato a C++ per altri motivi, ciò che tu dici come orrori: strumenti di tutt'altro livello, una chiara visione di cosa fa veramente il codice, possibilità di gestire veramente il layout dei propri tipi, librerie per il multi threading più avanzate (Intel TBB, OpenMP, Concurrency Kit...), possibilità di utilizzare la programmazione generica con i template (i generics sono troppo limitati, e per avere qualcosa di simile ai template, devi usare la reflection, che è troppo lenta per tanti casi) e cost che è utilizzabile in codice reale rispetto al ridicolo readonly di C# Visto il tipo di applicativo (server) pagare tempo a compile time e non a runtime, è un vantaggio Ed altra cosa, delle persone che ho visto lamentarsi di C++, molte volte tentavano di usare C++ senza aver conoscenza di quello che facevano, o tentare di usarlo come C#/Java/altro In poche parole, non trovo nessun linguaggio attuale particolarmente bello, ma non capisco i grandi vantaggi che avrebbe C# su C++ Nel mio caso, ho trovato solo svantaggi, costi e limitazioni Con QT scrivi nelle stesse righe di codice, ciò che faresti con C# e WPF Un esempio ancora più incisivo, si può vedere dagli esempi di Windows 8 apps Per alcuni, lo stesso esempio è scritto sia in C++ che C#, e la differenza è veramente poca cosa Ecco perchè sono curioso di sapere la tua esperienza con C++
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 16-07-2013 alle 12:46. |
|
![]() |
![]() |
![]() |
#45 |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21805
|
non è che ho problemi con il c++ anzi, sicuramente è un enorme passo avanti poterlo usare al posto dell'assembler
![]() per casini di debugging intendo che il c++ è dir poco poco comunicativo sulla tipologia dell'errore e pure sulla sua posizione cosa che, per una persona inesperta è solo una complicazione inutile, si rischia di passare le ore per risolvere un banale errore poi tutte le funzionalità di cui parli sono molto più che funzionalità di base, l'utente in questione non ha ancora la minima esperienza di programmazione quindi meglio partire con qualcosa più semplice, tutto il resto imho parli di qt ecc ecc ma sono molte più complicate del sistema di progettazione visuale di vs con gestione degli eventi integrata (non che siano complicatissime vero ma sicuramente sono più complesse, anche se la mai conoscenza di qt è molto limitata avendole usate solo per un progetto e neanche in versione molto standard visto che erano sotto un middleware proprietario per la gestione di un hmi di veicolo abbastanza incasinata) poi la mia esperienza del c++ è parecchio diversa dalla tua, io non lavoro su pc ![]() ps guarda che non c'è tanta gente che sconsiglia a priori il c++ c'è tanta gente che lo sconsiglia come primo linguaggio c'è una sottile differenza (aka meglio farsi le ossa con qualcosa che non ti complica la vita e ti vincola più rigidamente per poi se necessario passare a qualcosa di più libero e lasco, ereditarietà multipla inclusa) pensa che imho uno dei linguaggi migliori per imparare è vba, facile da leggere, subito immediato e cmq moderatamente utile da conoscere
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 Ultima modifica di !fazz : 16-07-2013 alle 13:04. |
![]() |
![]() |
![]() |
#46 |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Concordo appieno con quello che dice !fazz... Non ho programmato in C++ ma mi sono trovato a compilare programmi già fatti e ho fatto diversi progetti in C... Avendo iniziato con Java era un vero incubo capire dov'è l'errore... e una volta che lo trovi capire perchè...
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
![]() |
![]() |
![]() |
#47 | |||
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
![]() Quote:
il c e il c++ sono più vicini al bare metal, cioè a come ragiona la macchina....ma imparare a ragionare come una macchina è un bello sforzo altre linguaggi di alto livello, hanno costrutti più simili al modo di ragionare dell'uomo imho dovresti partire con i secondi e poi andare dritto sui primi, perchè, piaccia o meno, nessuno porta la pagnotta a casa conoscendo un singolo linguaggio ti svelo un segreto? ultimamente tutti si strappano i capelli per dirci che dobbiamo programmare in javascript, perchè è figo, è bello, è potente....javascript ha un'infinità di limitazioni che lo rendono imbarazzante in certi contesti e quindi? quindi c'è un tool adatto ad ogni tipologia di problema e bisogna imparare a padroneggiarne un buon numero Quote:
però bisogna fare dei distinguo importanti....capire come funziona un sistema operativo è una faccenda più teorica che pratica capire come funziona la shell di windows, è una questione molto pratica, ma ha poco a che fare col c o col c++ capire e modificare i programmi più diffusi, beh, allora il c++ ( in particolare ) è un valido aiuto, perchè molti programmi di grosse dimensioni sono scritti in c++ |
|||
![]() |
![]() |
![]() |
#48 |
Member
Iscritto dal: Jun 2013
Città: Roma
Messaggi: 131
|
Quindi non ho ben capito, faccio bene o non faccio bene ad imparare linguaggi come C/C++? Oppure è una perdita di tempo perché oramai sono obsoleti ed esistono altri linguaggi tipo il python che ti permettono di fare cose più veloci e a breve sostituiranno quelli che ci sono ora
__________________
Andrew Martin: << One is glad to be of service >> Bicentennial Man [1999] |
![]() |
![]() |
![]() |
#49 | |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21805
|
Quote:
non esistono (o quasi) linguaggi obsoleti, ogni linguaggio ha pregi e difetti che devono fittare con i requisiti dell'applicazione
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
|
![]() |
![]() |
![]() |
#50 | |
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Quote:
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" |
|
![]() |
![]() |
![]() |
#51 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12844
|
C++ è oggettivamente BRUTTO a vedersi.
Basta guardare i type_traits e cosa diventa il codice usando librerie che abusano pesantemente di quello strumento (vedi le orribili boost che ogni tanto ti ritrovi tra i piedi in progetti anche piccoli). Illegibile al 100%. Un errore nei template e il compilatore (specie GCC) da un wall of text di cose inutili e che spesso non c'entrano niente con la vera natura dell'errore. Anzi fortunatamente nelle ultime versioni è migliorato parecchio. Inoltre non è sempre vero che è meglio perdere tempo in compilazione, perché è tempo perso per il programmatore, che magari aveva fatto una piccola modifica e voleva testarla rapidamente. Non per dire, ma io programmo tutti i giorni in C++, e non lo faccio di certo perché è un bel linguaggio, ma semplicemente perché nell'ambito in cui lavoro (networking real-time) è comodo avere a che fare con un linguaggio compilato e che offre un paradigma Object Oriented. E' questione di necessità prima e di gusti poi, non sempre puoi scegliere. Detto ciò, prima viene il problema e poi il linguaggio, mai il contrario. |
![]() |
![]() |
![]() |
#52 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#53 |
Member
Iscritto dal: Jun 2013
Città: Roma
Messaggi: 131
|
Ragazzi condivido tutto quello che è stato detto, però cmq alla fine da qualche linguaggio uno deve iniziare giusto? Quindi da dove inizi inizi così intanto uno entra nella mentalità della programmazione poi piano piano si farà un idea di quale sia quello che gli serve di più
![]()
__________________
Andrew Martin: << One is glad to be of service >> Bicentennial Man [1999] |
![]() |
![]() |
![]() |
#54 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
La logica algoritmica insegnata pedantemente e teoricamente, porta a disastri incredibili. Il modo migliore è cominciare a smanettare con un linguaggio molto espressivo e di alto livello. Una volta c'era il BASIC, il suo sostituto moderno è sicuramente Python. Ma questo discorso riguarda la logica. E' chiaro che se vuoi scendere in profondità nei dettagli, allora prendi un bel libro tipo Programming the 8086/8088 di Coffron ( vecchio, riguarda le architetture a 16 bit, ma è mille volte più chiaro di molti libri moderni ) e un'assembler tipo Nasm e ti metti a giochicchiare. Nel passaggio tra i due estremi, potresti studiarti il C giusto come antipasto ![]() |
|
![]() |
![]() |
![]() |
#55 | |
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
![]() Comincio io: Python!!! |
|
![]() |
![]() |
![]() |
#56 | |
Member
Iscritto dal: Jun 2013
Città: Roma
Messaggi: 131
|
Quote:
Si si cmq mi piace accedere nei dettagli in modo da capire il più possibile di come funzionano le cose e quel libro che mi hai dato sembra in tema, poi appena posso lo prendo, grazie ![]()
__________________
Andrew Martin: << One is glad to be of service >> Bicentennial Man [1999] |
|
![]() |
![]() |
![]() |
#57 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#58 |
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Vuoi iniziarea a programmare?
Inizia col python. |
![]() |
![]() |
![]() |
#59 |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Mi unisco al coro, vai con Python!
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
![]() |
![]() |
![]() |
#60 |
Member
Iscritto dal: Jun 2013
Città: Roma
Messaggi: 131
|
Oramai ho deciso credo, inizierò dal C
![]()
__________________
Andrew Martin: << One is glad to be of service >> Bicentennial Man [1999] |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:21.