Executando verificação de segurança...
11

O Brilhante Futuro do C++, A Nova Era Se Aproxima

Prepare-se, porque vem coisa grande por aí!

"C++ Moderno" - A Primeira Grande Revolução

Quando o C++11 e C++14 chegaram, viraram tudo de cabeça para baixo. Foi tão radical que até Bjarne Stroustrup, o pai da linguagem, comentou que parecia estar programando em uma linguagem completamente diferente!

E não é exagero! Pega qualquer código C++ de antes e depois dessas versões, e você identifica na hora a diferença. As variavéis automáticas em todo canto, os loops for-range substituindo aqueles iteradores verbosos, lambdas aparecendo em todo canto, e claro os smart pointers nos salvando dos perigos do gerenciamento manual de memória.

Essa transformação ficou conhecida como "Modern C++" e revolucionou como escrevemos código. Mas o que era moderno está prestes a virar "legado" novamente!

C++26 - A Segunda Grande Revolução

Pessoal, o C++26 está batendo na porta e vai ser tão impactante quanto foi a mudança de uma década atrás. Vamos aos destaques:

std::execution - O Novo Game-Changer

A biblioteca std::execution já está disponível para em muitas implementações e vai mudar completamente o jogo. Assim como os smart pointers resolveram o gerenciamento de memória, o std::execution resolve TANTO paralelismo QUANTO concorrência, que são problemas bem diferentes, vale ressaltar!

Imagina só: você escreve um código que roda em vários núcleos sem precisar ficar mexendo em threads ou locks. É real, é agora. E o melhor: mantém o princípio fundamental de "zero cost abstraction" do C++. Isso vai ser MASSIVO, porque multi-core não é mais luxo, é o paradigma padrão de desenvolvimento.

Não tô exagerando quando digo que empresas gigantes já estão usando isso em produção em produtos críticos!

Reflexão em Tempo de Compilação

Outra bomba: a reflexão em tempo de compilação foi aprovada na última reunião comitê para entrar no C++26! Isso é simplesmente revolucionário e vai mudar totalmente como codificamos em C++.

Finalmente teremos ORMs decentes em C++, de novo, com custo zero!

E tem mais!

Ponteiros com segurança reforçada, mais recursos funcionais, contêineres imutáveis, ranges aprimorados... Em poucos anos, todos esses recursos serão tão comuns quanto os do "Modern C++" são hoje.

O Que Isso Significa?

O C++ como conhecemos vai morrer! Este é provavelmente um dos melhores momentos da história para aprender C++ porque não é qualquer outra linguagem que promete ser o próximo C++, é o próprio C++26 que vai ser.

A próxima era do C++ está chegando, e quem pegar esse trem agora vai estar bem posicionado para os próximos anos. O ecossistema está evoluindo rapidamente, mas mantendo aquilo que sempre fez do C++ especial: abstrações de alto nível com zero custo.

Então, se você estava pensando em migrar para outra linguagem, talvez valha a pena dar uma segunda chance ao bom e velho C++. Ele pode já ser um ancião, mas nunca esteve tão jovem...

Um abraço e bons estudos!

Carregando publicação patrocinada...
1

Eu já percebi que você gosta bastante de linguagens de baixo nível ao ler comentários por aqui. O que você acha de Rust? Eu utilizo primordialmente TypeScript no meu dia a dia e estou nutrindo um interesse em aprender algo de baixo nível. Alguns dizem que Rust vai substituir o C++ e blá blá, aquele papo de sempre. Porém, nunca vi C++ sendo migrado para Rust .

Gostaria de saber mais de alguém já tem um costume em programar a baixo nível. Eu gosto de dizer que é como "programar a nível metal"

2

Respondendo de "curioso". Programo C++ a um bom tempo, apesar de estar acontecendo diversas melhorias no C++ desde o CXX11 até CXX20, o ecossistema não é "newbie friendly", e principalmente quando começamos fazer projetos "mirabolantes" que vão além do Terminal. A parte de existir milhares de build system, package managers e toolchains é o que gera essa confusão/frustação em iniciantes. Entretanto, graças a isso eu consegui aprender diversas coisas "bestas" que passam batido quando usamos linguagens de "alto-nível". Um exemplo com C# ( .NET )

dotnet new console
# pseudo-codigo adicionando dependencias pela CLI 
dotnet build --os android

Simples, rápido e fácil temos um build.

Eu não sou um grande fan do Rust, mas respondendo brevemente você terá o melhor dos dois mundos, uma linguagem com diversas possibilidades "baixo-nível" e a facilidade de ter um ecossistema similar de uma linguagem "alto-nível" ( package manager, build system, toolchains e etc )

Digitei bastante abobrinha, espero ter entendido meu ponto.

1
-4

Minha opinião já está meio implícita no texto, mas vou ser direto:

  1. Rust é quase puro hype, pouquissimas aplicações reais (tipo rodar um JS arbritário da Internet na máquina que tem todos os seus segredos) que tem alguma vantagem real sobre C++.

  2. O mundo é construido em C e C++, não em Rust. (não é sobre achar, mas sobre o que é)

-5

Na era a IA generativa, o hype é unicamente ecossystema Javascript. Não vejo futuro em C++ no que se refere a linguagem em sí; ele é complexa para iniciantes e conforme os mais velhos vão se aposentando, essas linguagens tendem a decair. É uma pena.

2

(quase) todos os interpretadores de JS são feitos em c++. std::execute é o tipo de coisa que vai deixar o JS que roda no browser muito mais eficiente. Alguém precisa fazer as camadas de baixo!!

1

Mesmo não fazendo parte do ecossistema, eu discordo. Linguagens de baixo nível nunca deixaram de ser utilizadas do meu ponto de vista. Seu proposito é ser extremamente performático, e para isso é necessário ter um controle granular da memória, dentre outras coisas. JavaScript não tem nada disso, é tudo automático e fica fácil de ter vazamento de memória. E mesmo que você faça tudo certinho, a linguagem por si só é pesada por abstrair coisas demais.

Vale lembrar que sistemas embarcados está sempre em alta, e somente com linguagens de programação de baixo nível permite um funcionamento preciso desses sistemas.

Por fim, este trecho "conforme os mais velhos vão se aposentando, essas linguagens tendem a decair. É uma pena." implica que a linguagem só é viva por ter gente das antigas usando. Discordo novamente, a linguagem tem uso por ser útil, e não por ser a única coisa que os veteranos sabem. Se fossem o caso, o que impede eles de aprender uma linguagem nova? JavaScript deve ser apenas uma conta de 1 + 1 para quem dominar o baixo nível do mundo da programação.

1

Concordo com o @clacerda, linguagens como o C++, que lentamente e com princípios sólidos vai se modernizando, sempre estará por baixo das linguagens de alto nivel como o JavaScript que justamente usa abstrações em C++ pra resolver cettas coisas.

O iniciante começa no JS, vai se aprofundando até chegar no C++.