Speedrun Todo-List
Em um post no Twitter, foi proposta uma competição para verificar em qual linguagem/framework é possível construir um aplicativo de tarefas mais rapidamente. O post original pode ser encontrado aqui.
Inspirado por esse desafio, consegui criar minha própria versão do aplicativo que inclui as seguintes funcionalidades:
- Adicionar tarefas
- Remover tarefas
- Renomear tarefas
- Alterar o estado das tarefas
- Diferenciação visual para diferentes estados de tarefa
- Persistência utilizando local storage
- Transições de entrada e saída
- Animações que respondem à adição e remoção de tarefas
Tudo isso foi realizado em apenas 5 minutos e 44 linhas de código JavaScript, totalizando um tamanho de arquivo gerado de 5.35 KB.
Imagine o quão mais rápido poderia ter sido se eu fosse capaz de digitar de forma minimamente ágil.
Embora este exemplo não seja comparável a um aplicativo real em termos de complexidade, ele serviu para demonstrar que, entre os frameworks JavaScript disponíveis atualmente, o Svelte possibilita a construção do melhor aplicativo de forma mais rápida, utilizando menos linhas de código. Além disso, por exigir menos linhas de código mantendo uma sintáxe simples ele é mais fácil de manter, oferece uma experiência de desenvolvimento mais agradável, possui menos dependências, resulta em um build de menor tamanho e requer menos tempo de compilação, tudo isso sem comprometer o desempenho.
Em primeiro lugar parabéns por sua implemtanção, mas..
Demonstrar que, entre os frameworks JavaScript disponíveis atualmente, o Svelte possibilita a construção do melhor aplicativo de forma mais rápida, utilizando menos linhas de código. Além disso, por exigir menos linhas de código mantendo uma sintáxe simples ele é mais fácil de manter, oferece uma experiência de desenvolvimento mais agradável, possui menos dependências, resulta em um build de menor tamanho e requer menos tempo de compilação, tudo isso sem comprometer o desempenho.
O exemplo apresentado destaca algumas vantagens do framework Svelte, mas é importante ter cuidado ao fazer generalizações baseadas em apenas um único teste. A performance do Svelte nesse caso específico não necessariamente se aplica a todos os tipos de projetos.
Primeiramente, como você escreveu, o exemplo não é diretamente comparável a aplicativos mais complexos do mundo real. A agilidade na construção e a quantidade reduzida de código em um exemplo simples não garantem que o Svelte superará outros frameworks em projetos mais complexos.
Além disso, afirmar que o Svelte leva a um desenvolvimento mais rápido e requer menos linhas de código deve ser entendido dentro de um contexto. Um desenvolvimento mais rápido, não depende apenas da quantidade de código, mas de diversos outros fatores.
A ideia de que a sintaxe do Svelte simplifica a manutenção e proporciona uma experiência de desenvolvimento mais agradável é subjetiva, pois diferentes desenvolvedores têm preferências diversas.
Também é válido lembrar que a afirmação sobre menos dependências e 'bundle' menor no Svelte pode ser verdadeira em alguns casos, mas isso depende das exigências específicas do projeto. Projetos mais complexos podem exigir certas dependências ou recursos que o Svelte não lida nativamente enquanto outros frameworks o façam.
Finalmente, é completamente possível que neste exemplo, um desenvolvedor habilidoso utilize JavaScript Vanilla, e obtenha um código mais curto e rápido que a implementação usando qualquer framework, isso não significa que frameworks são inutéis e que é muito melhor usar js puro.
Em conclusão, é essencial evitar generalizações e considerar o contexto geral. Benchmarks como esse, são no geral inúteis.