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 classi, possibilmente con sovraccarico dell'operatore o modelli e l'STL così eccezionale è ovviamente un modo migliore. A volte l'uso di un semplice puntatore a funzione C è molto più leggibile e chiaro. Quindi trovo la bellezza e la praticità in entrambe le lingue. Non voglio entrare nella discussione di "Se li mescoli e compili con un compilatore C ++, non è più un mix, è tutto in C ++" Penso che capiamo tutti cosa intendo mescolandoli. Inoltre, non voglio parlare di C vs C ++, questa domanda riguarda C ++ 11.
C ++ 11 introduce ciò che penso siano cambiamenti significativi nel funzionamento di C ++, ma ha introdotto molti casi speciali, eccezioni e irregolarità che cambiano il modo in cui le diverse caratteristiche si comportano in circostanze diverse, ponendo restrizioni sull'ereditarietà multipla, identificatori che agiscono come parole chiave, estensioni di stringhe letterali, cattura della funzione lambda, ecc.
So che ad un certo punto in futuro, quando dirai C ++, tutti supporteranno C ++ 11. Proprio come quando dici C al giorno d'oggi, probabilmente stai parlando di C99. Questo mi fa pensare all'apprendimento di C ++ 11. Dopotutto, se voglio continuare a scrivere codice in C ++, a un certo punto potrei iniziare a usare quelle funzioni semplicemente perché i miei colleghi hanno.
Prendi C per esempio. Dopo 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 sono), C è regolare e ha poche eccezioni, se ce ne sono. C ++ 11 tuttavia, io non la penso così. Non sono sicuro che le modifiche introdotte in C ++ 11 migliorino il linguaggio.
Quindi la domanda è: Perché dovrei imparare C ++ 11?