Sou programador em C e C ++, embora não me atenha a nenhuma das linguagens e escreva uma mistura das duas. Às vezes, ter código em classes, possivelmente com sobrecarga de operador ou modelos, e o ótimo STL é obviamente uma maneira melhor. Às vezes, o uso de um ponteiro simples da função C é muito mais legível e claro. Então, encontro beleza e praticidade nos dois idiomas. Não quero entrar na discussão de "Se você os mistura e compila com um compilador C ++, não é mais uma mistura, é tudo C ++". Acho que todos entendemos o que quero dizer com mistura. Além disso, não quero falar sobre C vs C ++, esta questão é sobre C ++ 11.
O C ++ 11 apresenta o que eu acho que são mudanças significativas na forma como o C ++ funciona, mas introduziu muitos casos especiais, exceções e irregularidades que alteram o comportamento de diferentes recursos em diferentes circunstâncias, colocando restrições à herança múltipla, identificadores que agem como palavras-chave, extensões de literais de string, captura de variável de função lambda, etc.
Eu sei que em algum momento no futuro, quando você disser C ++, todos assumirão o C ++ 11. Assim como quando você diz C hoje em dia, você provavelmente quer dizer C99. Isso me faz pensar em aprender C ++ 11. Afinal, se eu quiser continuar escrevendo código em C ++, em algum momento talvez precise começar a usar esses recursos simplesmente porque meus colegas o fizeram.
Veja C, por exemplo. Depois de tantos anos, ainda há muitas pessoas aprendendo e escrevendo código em C. Por quê? Porque a linguagem é boa. O que significa bom é que, segue muitas das regras para criar uma boa linguagem de programação. Portanto, além de ser poderoso (fácil ou difícil, quase todas as linguagens de programação são), C é regular e possui poucas exceções, se houver. C ++ 11, no entanto, acho que não. Não tenho certeza de que as alterações introduzidas no C ++ 11 estejam melhorando a linguagem.
Portanto, a pergunta é: Por que eu aprenderia C ++ 11?