Sono un programmatore in C e C ++, anche se non mi attengo a nessuna delle due lingue e scrivo una combinazione delle due. A volte avere codice in classe, possibilmente con sovraccarico dell'operatore, o template e oh così grande STL è ovviamente un modo migliore. A volte l'uso di un semplice puntatore a funzione C è molto più leggibile e chiaro. Quindi trovo bellezza e praticità in entrambe le lingue. Non voglio entrare nella discussione di "Se li mescoli e li compili con un compilatore C ++, non è più un mix, è tutto C ++" Penso che tutti capiamo cosa intendo mescolandoli. Inoltre, non voglio parlare di C vs C ++, questa domanda riguarda interamente C ++ 11.
Il C ++ 11 introduce ciò che penso siano cambiamenti significativi nel modo in cui funziona il C ++, ma ha introdotto molti casi speciali, eccezioni e irregolarità che cambiano il comportamento di caratteristiche diverse in circostanze diverse, ponendo restrizioni sull'eredità multipla, identificatori che agiscono come parole chiave, estensioni di letterali stringa, acquisizione di variabili della funzione lambda, ecc.
So che ad un certo punto in futuro, quando dici C ++, tutti assumono C ++ 11. Proprio come quando dici C al giorno d'oggi, molto probabilmente intendi C99. Questo mi fa prendere in considerazione l'apprendimento del C ++ 11. Dopotutto, se voglio continuare a scrivere codice in C ++, ad un certo punto potrei dover iniziare a usare quelle funzionalità semplicemente perché i miei colleghi lo hanno.
Prendi C per esempio. Dopo così tanti anni, ci sono ancora molte persone che imparano e scrivono codice in C. Perché? Perché la lingua è buona. Ciò che significa buono è che, segue molte delle regole per creare un buon linguaggio di programmazione. Quindi oltre ad essere potente (che è facile o difficile, quasi tutti i linguaggi di programmazione lo sono), C è regolare e ha poche eccezioni, se presenti. C ++ 11, tuttavia, non la penso così. Non sono sicuro che le modifiche introdotte in C ++ 11 stiano migliorando il linguaggio.
Quindi la domanda è: perché dovrei imparare C ++ 11?