Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - C++14: le vostre idee
Forum - C/C++ - C++14: le vostre idee

Avatar
lumo (Member)
Expert


Messaggi: 413
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 13:28
Domenica, 28/08/2016
Visto che il discorso torna spesso tra i c++isti del del forum, apro una discussione sulla nuova serie di standard a partire da  C++11.
Qual è la vostra idea al riguardo?

Parto con la mia: il C++ è probabilmente il linguaggio in cui sono più produttivo e che conosco meglio. Penso anche però che dentro C++ ci siano più linguaggi insieme:
1) Si può usare il C++ come se fosse C, usando poco o niente delle sue features distintive
2) Si può usare il C++ come si faceva fino agli anni ~2000, ossia molto OOP in stile Java
3) Si può usare come si fa adesso, cioè non molto OOP, con grande uso di template e metaprogrammazione (vedi boost) e tecniche permesse dalle nuove evoluzioni del linguaggio.

L'idea che sento spesso da Stroustrup e altri, cioè quella di poter insegnare C++14 come se fosse un nuovo linguaggio e tralasciando molte vecchie pratiche secondo me è una cavolata, perché
1) Se dico di sapere il C++ devo saperlo TUTTO, i codici legacy usano molti puntatori e gestiscono manualmente la memoria, usano molta ereditarietà ecc ecc
2) Non mi è mai successo di riuscire ad usare solamente la nuova parte del C++, quasi sempre tocca sporcarsi le mani

Se già prima il C++ era un osso duro per la didattica (ora ti insegno i costruttori, ma aspetta, insieme al costruttore di default devi aggiungere il costruttore di copia, no aspetta, non devi passare i parametri per valore, usa il const reference, ah e adesso siccome voglio anche la semantica a=b aggiungi l'operatore di assegnamento...) adesso secondo me è veramente a livelli ridicoli (però se passi un rvalue fai una copia inutile, implementa il move constructor, impara a usare le move semantics ecc ecc).

Imparare un linguaggio vuol dire non solo imparare la sintassi, ma i pattern comuni propri a quel linguaggio, e C++ è polimorfo in questo senso, quindi molto difficile da maneggiare, sicuramente poco utile come primo linguaggio secondo me.

A voi.

PM Quote
Avatar
Template (Member)
Pro


Messaggi: 175
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 20:45
Domenica, 28/08/2016
Non conosco bene il nuovo standard del C++, quindi faccio un discorso di principio: insegnare solo le nuove features di un linguaggio è (tranne che in caso di fondamentale riscrittura del linguaggio medesimo) a mio avviso estremamente limitante e scorretto, perchè non si fornisce al discente la dovuta conoscenza di ciò che sta alla base dell'evoluzione attuale (elemento, questo, non sempre di valore meramente folkloristico) e soprattutto si propina un'interpretazione parziale del linguaggio, la quale nel caso del C++ davvero non può rendere giustizia alla sua ricchezza.


"Nel curriculum scrivete quello che sapete fare... e anche quello che non sapete fare! Tipo: "Già vescovo di Cracovia, partecipai alla Coppa America, vincendola!""
[...]
"Sto giocando al piccolo Dio e mi sta venendo pure alla grande."
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6109
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 20:19
Venerdì, 02/09/2016
Io sono per un approccio top - bottom (da sopra a sotto): si imparano i concetti ad alto livello, tralasciando i dettagli tecnici. In questa maniera uno studente non si fa scoraggiare e le probabilità che la materia diventi d'interesse aumentano. Poi dopo aver acquisito i concetti ad alto livello, si può cominciare a scavare le fondamenta per capire meglio come funziona tutta la "magia".

In questo caso, penso che non ci sia nulla di male ad imparare C++14 tralasciando le vecchie cose, e anzi penso che sia uno degli unici modi per il linguaggio di sopravvivere alla nuova generazione di programmatori che crescono a suon di Python, Swift e Javascript.

Detto questo penso che sia importante assicurarsi che un programmatore non si fermi al livello più alto del linguaggio, ma che una volta acquistata la padronanza dei concetti più alti, che si cominci ad imparare le fondamenta.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote