Pular para o conteúdo

C++26 acaba de ser rejeitado... Veja por quê. #cpp #coding #programming

Ver no idioma original →

Autoria: Better Stack · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: C++26 Just Got Rejected… Here’s Why. #cpp #coding #programming · Canal: Better Stack · 01:35 · Assistir no YouTube

Tópicos: Engenharia de software com IA, Open source e ecossistemas de software

A votação final de C++26 não foi aprovada: recebeu 60% de votos favoráveis, abaixo dos dois terços exigidos, e 41% dos órgãos nacionais votaram contra. A principal controvérsia foi a inclusão de contracts, verificações executadas em tempo de execução. Um artigo escrito pelo criador de C++ e outros membros do comitê argumentou que a proposta tinha falhas fundamentais e representava uma ameaça à linguagem. Embora os críticos dissessem que se opunham apenas a contracts, a votação abrangia o padrão inteiro, e ainda não está claro o que acontecerá a seguir.

  • C++26 não passou na votação final dos órgãos nacionais de normalização.
  • O padrão precisava de dois terços dos votos favoráveis, mas recebeu 60%: 12 de 20 votos.
  • Nove de 22 órgãos nacionais votaram contra, ultrapassando o limite permitido de um quarto.
  • A principal fonte de controvérsia foi contracts, um recurso que permite adicionar verificações executadas em tempo de execução.
  • Um artigo chamado “P2900 contracts fundamental flaws” criticou o recurso e o descreveu como uma ameaça existencial para C++.
  • Os críticos afirmaram que contracts acrescentaria cerca de 56 páginas ao rascunho de um padrão ainda incompleto.
  • Embora alguns membros se opusessem apenas a contracts, a votação abrangia o padrão inteiro.
  • O resultado foi visto por alguns como um dia triste para a comunidade e, por outros, como sinal de que os órgãos nacionais estão atentos.
Início Capítulo Resumo
00:00 Resultado da votação de C++26 A votação final não atingiu os requisitos de aprovação e recebeu 60% dos votos favoráveis.
00:33 A controvérsia em torno de contracts O vídeo explica o recurso e apresenta as críticas feitas por membros do comitê.
01:05 Votação do padrão inteiro e próximos passos Apesar de alguns críticos se oporem apenas a contracts, a votação abrangia todo o padrão, e o desfecho permanece incerto.

C++26 acaba de falhar em sua votação final. — 00:00

Quase todo mundo está apontando para um único recurso: contracts. — 00:33

Eles disseram que não tinham nada contra o resto de C++26, apenas contra contracts. — 01:05

Um único recurso pode atrasar tudo. — 01:35

  • C++26 (conceito): É a versão do padrão C++ que não foi aprovada na votação final descrita no vídeo.
  • contracts (conceito): Recurso proposto para C++ que permite declarar verificações executadas durante a execução do programa.
  • P2900 contracts fundamental flaws (conceito): É o título do artigo que critica contracts e aponta falhas fundamentais no recurso.
  • Robert C Seacord (pessoa): Membro do comitê que publicou o resultado da votação de C++26.
  • Better Stack (empresa): Canal que publicou o vídeo sobre a votação de C++26.

00:00 O C++26 acabou de ser reprovado na votação final. E um dos documentos que argumentavam contra o recurso central dessa votação foi escrito pelo próprio criador do C++. Vamos falar sobre isso. Antes de um novo padrão do C++ se tornar oficial, os órgãos nacionais de normalização votam nele. Em 24 de outubro, o membro do comitê Robert C Seacord publicou o resultado: reprovado. Para ser aprovado, precisa do apoio de dois terços dos membros votantes. Recebeu 60%: 12 dos 20. E no máximo um quarto dos órgãos membros poderia votar contra

00:33 a proposta. Nove dos 22 votaram contra, ou seja, 41%. Então, o que deu errado? Quase todo mundo aponta para um recurso: contratos. Contratos são verificações que você escreve no seu código e que são executadas em tempo de execução, um pouco como asserções integradas. Parece inofensivo, certo? Mas, em agosto, o criador e outros quatro membros do comitê publicaram um documento chamado P2900, contratos: falhas fundamentais. Eles chamaram os contratos de uma ameaça existencial ao C++. Disseram que o recurso acrescenta cerca de 56 páginas ao rascunho do padrão

01:05 para uma versão que nem sequer está completa, e que é uma abordagem dos anos 1980 que ignora cerca de 50 anos de avanços. Bem, é um bloco e tanto. Agora, a parte maluca: eles disseram que não tinham nada contra o restante do C++26, só contra os contratos. Mas a votação abrange o padrão inteiro. Houve até uma petição pedindo que os órgãos nacionais votassem contra, e um documento em resposta argumentando que a petição estava errada. Não está claro o que vai acontecer agora. Seacord chamou a situação de uma espécie de dia triste para

01:35 a comunidade, enquanto outros dizem que isso prova que os órgãos nacionais estão realmente prestando atenção. Até as maiores linguagens são desenvolvidas por comitês, e um único recurso pode atrasar tudo. Se você quer mais dicas e truques de programação como este, não deixe de se inscrever no canal Better Stack.

Transcrição original

[00:00] C++ 26 just failed its final vote. And one of the papers arguing against the feature at the center of it was written by the creator of C++ itself. Let’s talk about it. Before a new C++ standard becomes official, national standards bodies vote on it. On October 24th, committee member Robert C Seacord posted the result, disapproved. To pass, it needs 2/3 of voting members in favor. It got 60% 12 out of 20. And no more than a quarter of member bodies were allowed to

[00:33] vote no. Nine out of 22 did, that’s 41%. So, what went wrong? Almost everyone is pointing at one feature, contracts. Contracts are checks you write into your code that run at runtime, a bit like built-in assertions. Sounds harmless, okay. But back in August, the creator and four other committee members published a paper called P2900 contracts fundamental flaws. They called contracts an existential threat to C++. They said it adds about 56 pages to the draft

[01:05] standard for a version that isn’t even complete, and that it’s a 1980s approach that ignores about 50 years of progress. Now, okay, a big block. So, the crazy part. They said they had nothing against the rest of C++ 26, just contracts. But the ballot covers the whole standard. There was even a petition urging national bodies to vote no, and a counter paper arguing that the petition was wrong. What happens now isn’t clear. Seacord called it sort of a sad day for

[01:35] the community, while others are saying it proves the national bodies are actually paying attention. Even the biggest languages are built by committees, and one feature can hold everything up. If you want more coding tips and tricks like this, be sure to subscribe to the Better Stack channel.