Savius ha scritto:414N ha scritto:Java è sì un linguaggio ad oggetti, ma viene compilato in un bytecode che viene eseguito da una macchina virtuale, percui la vedo dura avvicinarlo al controllo hardware di suo.
Devo aver travisato la tua risposta a wakkokid. Chiedo venia.
Savius ha scritto:Ma infatti non ho mai detto il contrario, dico solo che la programmazione ad oggetti ha dalla sua parte, la caratteristica di essere facilmente utilizzata per controllori hardware, grazie a questa particolarità è possibile sviluppare software che possa gestire apparecchiature quali ad esempio lettori MP3 etc.
Se stai parlando di software che deve finire su microcontrollori, la vedo dura anche per i linguaggi ad oggetti. In certi casi, è già tanto se si ha a disposizione il C. Se, invece, ti stai riferendo al software di controllo di dispositivi esterni lato PC, beh, qui tutti i santi aiutano.
Savius ha scritto: Ma qui stiamo parlando di "programmazione", quindi è bene fare le opportune considerazioni sui diversi approcci alla programmazione e su quale sarebbe il modo migliore per conoscere questa "attività". Mi trovo d'accordo su tutto quanto detto da Masalapianta, se vuoi veramente imparare a programmare, conoscere veramente l'ABC della programmazione, non puoi approcciarti direttamente alla programmazione ad oggetti senza passare prima per quella imperativa. Quindi ricapitolando: se vuoi programmare per hobby o per semplice interesse, allora va bene qualsiasi tipo di linguaggio, ma se vuoi imparare "veramente" a programmare, allora devi seguire le tappe descritte anche da Masalapianta.
Ma dove sta scritto che bisogna per forza passare dall'approccio imperativo per arrivare all'approccio ad oggetti? Solo perché storicamente è stato così, non vuol dire che sia il miglior metodo per imparare qualcosa di nuovo per chiunque. Senza parlare degli altri approcci alla programmazione neanche citati in questo thread, quali l'approccio dichiarativo, l'approccio ad agenti ecc.
Forse è meglio che ci mettiamo d'accordo sul termine "programmazione". Io per programmazione intendo l'attività che porta a tradurre una specifica data da un linguaggio (meglio formale) ad un altro, comprensibile da una macchina.
Penso che i bravi programmatori siano quelli che riescono a catturare le dinamiche delle specifiche ed a tradurle al meglio per la macchina che dovrà rispettarle, che questo comporti usare un linguaggio di basso livello o un miscuglio di n linguaggi di alto/basso livello.
La peggior cosa che un programmatore possa fare è "fossilizzarsi" su un linguaggio di programmazione o su un solo approccio alla programmazione, ignorando o ritenendo inferiori gli altri linguaggi/approcci rispetto al suo "preferito". E, naturalmente, è così che funziona nella stragrande maggioranza di aziende italiane
Offtopic: Purtroppo anche a Bologna non è che ci si frusti le mani a far pratica. Il colmo è stato un corso di "laboratorio di ingegneria del software", che, delle 9 ore settimanali, prevedeva 3 ore in laboratorio e 6 di teoria/lezione in aula
Savius ha scritto:Sugli aspetti teorici noi siamo più incentrati su quelli delle grammatiche, sui linguaggi (non quelli di programmazione), ad esempio abbiamo esami quali: Informatica Teorica, Linguaggi di Programmazione in cui si studiano gli automi, le grammatiche etc
Pensa te, sto proprio litigando con la macchina di Turing per l'esame di linguaggi 