Originariamente inviato da serenasere24
Spero che la domanda non sia troppo generica.
Vorrei imparare a programmare bene ad oggetti, secondo voi qual'è il linguaggio migliore a questo scopo da un punto di vista "didattico"?
Per me un linguaggio è solo uno strumento, quindi non mi faccio problemi di "ideali", mi interessa solo avere un buono strumento che mi aiuti a concretizzare le idee che ho in mente, mi piace programmare per divertirmi e non penso che lo farò mai per lavoro, anche perché non sono laureata e dubito che con l'autodidattica si possa raggiungere un livello di conoscenza vasto come quello che si acquisisce all'università, studiando sistemi operativi, compilatori, algoritmi, matematica avanzata (tutte materie che mi affascino e studio a tempo perso ma non pretendo certo di arrivare ad un livello universitario) ecc..
Perciò mi limito ad usare la programmazione come uno strumento per divertirmi, per creare qualcosa che mi piace, quindi non mi interessa quale linguaggio è più richiesto dal mercato :P
Mi interessa soprattutto imparare bene i vari algoritmi e e strutture dati (liste, stack, algoritmi di sorting ecc..), perché lo trovo divertente, quindi non mi interessa neanche se il linguaggio ha già delle funzioni automatizzate per queste cose, così come per i design pattern (ho letto che Java ha alcuni design pattern già di suo). Insomma mi piace spremere le meningi, quindi non userei mai algoritmi e funzioni scritti da altri (certo se dovessi creare un prodotto commerciale non mi porrei certo questo problema e anzi userei il più possibile soluzioni già pronte, sarebbe assurdo riscrivere ciò che esiste già, anche perché spesso sono progetti che esistono da anni e sono portati avanti da tante persone esperte, e pretendere di poter fare da sola le stesse cose è una pazzia).
Ho poca esperienza con la programmazione, tutto ciò che ho fatto è un piccolo motore di ricerca in php, e una specie di platform tipo super mario in C++ più librerie Allegro, ma apparte questo la mia conoscenza è più teorica che pratica, tranne un po' di C e di C++.
La mia domanda è, per imparare bene la programmazione ad oggetti mi consigliate Java o C++? E che mi dite di C#? Dal momento che utilizzo Linux lo devo escludere a priori?
Un'ultima cosa, se un giorno volessi scrivere un videogioco in 3d, dovrei passare per forza al C++? A quanto vedo tutti i motori 3d più utilizzati sono in C++, secondo voi Java ha una possibilità in questo campo o è poco reattivo per poterci scrivere un videogioco (ovviamente mi riferisco a pc, non a cellulari o palmari)? In tal caso avrei difficoltà a passare da Java a C++?
Un'ultimissima XD cosa, in Java è possibile non utilizzare il Garbage Collector in alcuni casi? Ad esempio quando devo essere sicura che un oggetto dev'essere distrutto in un determinato momento e non posso permettermi che questo non avvenga, è possibile farlo?
Scusate per il poema XD un saluto e grazie per l'attenzione!