Pular para o conteúdo

Decisões de desenho

Doze escolhas que definem a linguagem, com o que cada uma evita e o que cada uma custa.

Toda linguagem é um conjunto de escolhas, e cada escolha tem um preço. Esta página as lista com o preço junto — uma lista de decisões sem custo seria propaganda.

DecisãoEvitaCusta
dependência zero em execuçãoinstalação que quebra, rede fechada sem pacotereescrever o que o ecossistema Python já tem
// é comentário; divisão é ~/confusão com o comentário de C/JS// 3 parcelas divide — e o parser agora recusa
uma instrução por linhaa instrução solta que some caladanenhum — nada no repositório usava duas
o analisador cala quando não provao falso alarme que ensina a ignorardeixa passar o que não consegue provar
o campo vence o métodoo método que nunca rodav.nome() inalcançável se houver campo nome
record imutávelo objeto que muda por baixo de quem o guardouwith para cada mudança
mensagens em português, com DF_IDIOMA=eno erro de execução numa língua e o do check em outraa tradução é no desenho, e cobre parte
given compartilha escopo; cycle nãoo nome decidido em dois ramos que não existe depois
erro de sistema é da família certahandle RuntimeError pegando tudosaber o nome da família
concorrência sem sincronização automáticao custo de trava em todo acessoo check avisa, mas a trava é sua
@f() é fábrica, @f é aplicação@app.texto() recebendo a ação como padrão
o corpo de lambda absorve ternário e ??lambda x: v[x] ?? 0 que nunca usa o padrãoo pipeline continua precisando de parênteses