PDA

Visualizza la versione completa : Ha ancora senso imparare il C/C++ ?


Arcane
27-08-2008, 18:23
Tralasciando il fatto che questi linguaggi vengono ancora insegnati nelle università, secondo voi hanno ancora un futuro ? Ha senso impararli ?

Voglio dire, da quel che vedo, i linguaggi che vanno per la maggiore sono python, java e vb.net, perchè hanno l'indubbio vantaggio della velocità ....per sviluppare un' applicazione in C, ad esempio, ci vogliono sicurmente molte più righe di codice e di conseguenza molto più tempo..

Il C/c++ d'altra parte ha delle maggiori prestazioni....ok.....ma con i megacomputer che abbiamo al giorno d'oggi si sente davvero la differenza ? E' un grosso problema se un programma occupa 100mb di ram piuttosto che occuparne 50 ?

Faccio questa domanda perchè sono attratto da questi linguaggi "old style", ma non vorrei che impararli sia solo una perdita di tempo...

Metallica
27-08-2008, 18:29
Beh, se devi scrivere un driver di una periferica farlo in Java non ha molti vantaggi...

pallinopinco
27-08-2008, 18:40
Secondo me non ha senso impararli come primi linguaggi di programmazione, sono inadatti ai principianti, poco produttivi ed in alcuni casi spingono verso delle worst practices da evitare quando si passa a linguaggi più "moderni".

Ha invece senso imparararli se si opera (o si intende/si è costretti a farlo) con codice legacy o con codice che deve essere necessariamente scritto in C (sistemi embedded, device drivers, etc.). Ma in questi casi le competenze necessarie per operare in quei contesti sono nettamente più "sostanziose" rispetto al conoscere la sintassi e le peculiarità del C.

Caiodark
27-08-2008, 19:20
Dipende dal contesto in cui vai ad operare.
Sono più di 12 anni che lavoro nel ramo del software gestionale e non mi è mai capitato di dover scrivere una riga in C/C++ o di vedere aziende che li chiedesse come requisiti.
Ci sono altri ambiti in cui il C è richiesto perché non c'é alternativa o va ancora per la maggiore (kernel programming in linux per fare un altro esempio).

In un corso di ingegneria informatica ha senz'altro senso imparare il C perché gli orizzonti sono più aperti ed un laureato non deve necessariamente finire a fare il programmatore per una azienda sparagestionali in VB6.

Se ti stai avviando a diventare un programmatore gestionale o web probabilmente con il C e C++ non c'avrai mai a che fare.

Solo una piccola nota sul fatto del numero delle righe di codice, ci sono casi in cui poter determinare a priori la vita di una variabile (o di un oggetto) porta ad un risparmio di righe rispetto a linguaggi che sfruttano il garbage collector. Sono casi particolari... ma neanche tanto :D

billiejoex
27-08-2008, 19:40
Originariamente inviato da Arcane
Tralasciando il fatto che questi linguaggi vengono ancora insegnati nelle università, secondo voi hanno ancora un futuro ? Ha senso impararli ?

Voglio dire, da quel che vedo, i linguaggi che vanno per la maggiore sono python, java e vb.net, perchè hanno l'indubbio vantaggio della velocità ....per sviluppare un' applicazione in C, ad esempio, ci vogliono sicurmente molte più righe di codice e di conseguenza molto più tempo..

Il C/c++ d'altra parte ha delle maggiori prestazioni....ok.....ma con i megacomputer che abbiamo al giorno d'oggi si sente davvero la differenza ? E' un grosso problema se un programma occupa 100mb di ram piuttosto che occuparne 50 ?

Faccio questa domanda perchè sono attratto da questi linguaggi "old style", ma non vorrei che impararli sia solo una perdita di tempo...

Secondo me una migliore domanda è se e quanto ha senso usarli anzichè impararli.
Ad oggi vi è veramente un mucchio di gente che si ostina ad utilizzarli anche per i task più semplici (operazioni ricorsive, scripting) per il solo fatto che "sono veloci" senza chiedersi se l'applicazione che intendono sviluppare tale velocità la richiede effettivamente (e.g. algoritmi) o no (GUI, semplici applicazioni di rete, in definitiva la maggiore parte delle applicazioni che ci sono in giro).

Impararli ha sicuramente senso.
Gli stessi linguaggi ad alto livello da te citati sono scritti in C/C++ e in C/C++ sono estendibili. Determinati campi del software semplicemente non possono fare a meno di C e C++. Il punto è che se in tali campi non rientri è semplicemente sconveniente utilizzarli.

Poi una pratica che sta prendendo sempre più piede è quella di utilizzare un linguaggio di alto livello come linguaggio principale e integrare C/C++ solo nelle parti critiche in cui essi sono effettivamente richiesti per motivi di velocità.
Un programmatore con una buona dimestichezza in Python e C, ad esempio, per me ha una marcia in più rispetto ad un altro che ha una ottima dimestichezza col solo C. Ha in mano due linguaggi che riempiono l'uno le lacune dell'altro e con cui può fare virtualmente tutto quello che gli pare.

Andrea Simonassi
28-08-2008, 07:36
Ormai i linguaggi che vanno per la maggiore sono altri. Nel 99% dei casi non li userai.

Ma ciò che impari imparando il C++ non lo butti via, io ho imparato con questi linguaggi, se ne sei attratto vedrai che non ti deluderanno...

Poi per lavoro li ho usati molto raramente e di solito per mia iniziativa, nessuno mi ha mai chiesto "fammi questo" e per "fare quello" mi è mai venuto in mente di farlo in C. Mi è stato chiesto di usare PHP , C#, Java ... e in tutti questi casi nel giro di un paio di giorni ho iniziato a programmare senza problemi senza dovere fare corsi o studi intensi (a parte una veloce lettura di un manuale del tipo Programming in XYZ )

Imparare un altro linguaggio non è mai un problema, questo perchè quando conosci un linguaggio completo come il C++ non hai difficoltà ad imparare altri linguaggi (con lo stesso paradigma :D ... se dovessi imparare LISP diventerei pazzo).

Il difficile è poi imparare le librerie ma per questo ci sono i manuali.

Quindi inizia pure con il C, impararlo bene ci vuole poco, passa poi al C++ per il paradigma a oggetti. Questo ti faciliterà poi nel passare a linguaggi che vanno per la maggiore.

Loading