O meu ponto aqui é que frequentemente o diagnóstico do problema é feito da maneira errada. É muito confortável olhar um sistema ruim e dizer que o problema é a linguagem. Você terceiriza a culpa para os desenvolvedores da linguagem/framework e ainda ganha argumento para reescrever tudo na sua linguagem favorita.
Sim eu entendo plenamente, principalmente programadores Júnior ou até mesmo Pleno. Como de fato não conhecem como as linguagens de programação funcionam a fundo (vivem aprendendo somente Frameworks), podem ter essa impressão de que: o problema do código deles estar lento, é a linguagem.
Mas nunca esquecer que a ordem de importância na optimização de código deve ser mais ou menos assim:
- Identificar parte do código que está lenta
- Refatorar código 2.1 Checar boas práticas 2.2 Buscar outras maneiras de fazer a mesma tarefa baseando-se em 2.2.1 Algorítimos especializados (não reinventar a roda) 2.2.2 Mineirar soluções parecidas no Stackoverflow ou até mesmo no ChatGPT3 2.2.3 Buscar em código aberto de outros projetos, soluções similares
- Buscar bibliotecas que tenham o mesmo fim
- Se já usa uma biblioteca e está lento ou continua lento 4.1 Buscar outras bibliotecas que tenham menor footprint 4.2 Criar sua própria biblioteca de maneira Open-Source, se caso não houver nenhuma outra alternativa na comunidade 4.3 Ou até mesmo não usar bibliotecas. Ás vezes, nossa primeira escolha é não reinventar a roda, mas existem situações onde que, para extrair a maior performance possível, você deve "enxugar" os "middlewares e pesos desnecessários" das bibliotecas disponíveis, para chegar a melhor performance.
- Trocar arquitetura Grande parte dos problemas se resolvem com a arquitetura adequada para aquela função de código.
- Microsserviços pagos Alternativas em outros serividores tipo API HTTP
- Criar seu próprio microsserviço em um ambiente especializado com menor footprint
- Trocar de linguagem de programação
- Usar linguagens de mais baixo nivel, como C e C++
- Criar sua própria linguagem de programação
- Escrever em Assembly
- Desistir do projeto kkkk
Brincadeiras à parte nos últimos tópicos, a questão é que a maioria dos problemas se resolvem até no passo 5!