#009 - Duas ao mesmo tempo | Backend em baixo nível? | Strings em C

Semana no baixo nível: atualizações e assuntos que rolaram nos últimos dias na comunidade do desempenho

Você dá conta de duas ao mesmo tempo?… linguagens Link to heading

Duas linguagens ao mesmo tempo, dá pra aprender? Lá na comunidade rolou esse debate nos últimos dias

Veja no discord

Pessoalmente acredito que é sempre bom focar em uma linguagem de cada vez, especialmente no início enquanto ainda está se aprendendo lógica ou os fundamentos da programação. Mas se tratando de linguagens para propósitos diferentes (backend e processamento de dados, por exemplo), acho mais do que válido.

Uma boa forma de estudar é fazer Advent of Code da linguagem específica, como no exemplo abaixo que fizemos no canal o Advent of Code de Zig.

Outra forma legal de estudar e consumir guias, e ir criando o seu próprio como no exemplo do @Digimaloko e seu Guia de C. Que é inclusive nosso próximo tópico dessa semana.

Descomplicando strings em C (made in BR) Link to heading

Quem já mexeu com strings em baixo nível sabe que é dor de cabeça na certa. Mas nosso querido @Digimaloko tomou como missão descomplicar esse assunto e resumir tudo em um guia

[Veja no discord](Link do discord)

Um guia bem detalhado de C, principalmente se tratando de strings, seus padrões, convenções, diferentes implementações entre linguagens e muito mais coisas que qualquer pessoa que não mexe com baixo nível nunca vai ter que se preocupar.

Lendo esse guia vai sair sabendo muito mais sobre strings em C, vão lá conferir!

Backend em baixo nível, vale a pena? Link to heading

Sempre que sai um benchmark novo, esse assunto volta à tona — e vale a pena discutir. A decisão de escrever um backend em uma linguagem de baixo nível costuma ser delicada. Além do custo alto pra contratar devs proficientes, o trade-off nem sempre compensa. Em muitos casos, a linguagem de alto nível já entrega desempenho mais do que suficiente. Mas a pergunta que surgiu foi: por que uma empresa ainda escolheria C++ em vez de Go pra um backend?

Veja no discord

A resposta é técnica:

Linguagens de baixo nível oferecem controle absoluto sobre memória, alocação, paralelismo e uso de CPU. Em sistemas com carga extremamente alta, com bilhões de requisições/dia, onde cada microssegundo conta, pequenas otimizações viram diferença real de custo e escalabilidade.

Mas até você chegar lá, provavelmente já tem um negócio multimilionário e dinheiro para contratar 100 devs e refatorar toda sua base de código para assembly se quiser. Enquanto não está nesse patamar, melhor ficar com o que te permite uma iteração e pivotagem mais rápida, seja isso Python, JavaScript, PHP ou a linguagem que for (que provavalmente é de alto nível).

Caso tenha esse negócio, algumas das qualidades de linguagem que se destacam para desempenho:

  • Eficiência de recursos (menos consumo de CPU, RAM e energia por operação);
  • Confiabilidade sob carga extrema (menos GC pausando a thread, por exemplo);
  • Baixa latência (em sistemas real-time ou financeiros, isso é crítico);
  • Capacidade de tuning fino (memória, cache, syscall, threading model);
  • Redução de custo operacional em escala massiva (infra mais barata pra rodar o mesmo serviço).

No canal Link to heading

Não teve nava novo no canal (perdão, empresa tá puxada), mas tem o nosso Guia de estrutura de dados e algoritmos.

Disponível para membros (só acessar no Discord), e na HotMart também. O guia dá um caminho do iniciante ao avançado se tratando de estrutura de dados e algoritmos, com tópicos para serem estudados, referências confiáveis e também problemas para treinar (se você não praticou, não aprendeu).

Redes