3 pontos por GN⁺ 2024-11-04 | 2 comentários | Compartilhar no WhatsApp
  • Começando o blog

    • Em 2022, comecei a desenvolver um aplicativo para preencher declarações alfandegárias.
    • Depois de avaliar várias linguagens e frameworks, decidi desenvolvê-lo com Ruby on Rails.
    • Como eu já conhecia Rails, consegui desenvolver 10 vezes mais rápido do que com outras opções.
  • Desenvolvimento da versão 2

    • Comecei a desenvolver a segunda versão do aplicativo usando Rust e SvelteKit.
    • No início foi rápido e bom, mas apenas 10% das funcionalidades necessárias foram implementadas.
    • Como não havia em Rust um framework comparável ao Rails, isso consumiu muito tempo.
  • Vantagens do Rust

    • Experimentei as vantagens do desempenho do Rust e da compilação sem erros.
    • Em Ruby, erros de tempo de execução aconteciam com frequência, o que me fez sentir a necessidade do Rust.
  • Mudanças no frontend

    • Fiquei insatisfeito com o frontend do Rails e decidi migrar para SvelteKit.
    • Consegui migrar algumas páginas rapidamente para a nova stack, mas o deploy ficou mais complexo.
  • A realidade do desenvolvimento

    • A parte em Rails continuou evoluindo com a adição de funcionalidades úteis.
    • Percebi que a migração para Rust e Svelte não entregava valor direto aos usuários.
  • A dificuldade da decisão

    • Decidi abandonar a nova stack e voltar para Rails.
    • Incentivei os membros da equipe a aprenderem Rails.
  • Vantagens do Rails

    • Rails é a base de muitas empresas bem-sucedidas e oferece muitas bibliotecas e um ecossistema amplo.
    • Ele permite focar no desenvolvimento do produto.
  • Lições aprendidas

    • Aprender novas linguagens e frameworks traz muitos insights.
    • O desenvolvimento de aplicações web exige muitas escolhas e concessões.
    • Voltar para Rails foi uma boa decisão e aumentou a produtividade.
  • Desvantagens do Ruby e do Rails

    • Problemas em tempo de execução podem ser resolvidos com testes.
    • Quando o código fica complexo, isso é um problema do desenvolvedor, e ele precisa ser bem organizado.
    • Rails é rápido o suficiente, e o desempenho pode ser melhorado com Turbo e caching.
  • Conclusão

    • Não existe linguagem ou framework perfeito; é preciso entender e aproveitar os pontos fortes e fracos de cada um.
    • Rails é uma boa escolha, e muitos outros frameworks também são excelentes.

2 comentários

 
lemonmint 2024-11-04

Reescreva em Ruby
Reescreva em Rails

 
GN⁺ 2024-11-04
Comentários no Hacker News
  • Rails, Django e Laravel estão muito à frente de outras stacks no desenvolvimento de apps web. Eles lidam com tarefas repetitivas, entendem bem os requisitos e não atrapalham na hora de construir a aplicação. Desenvolvimento web já é um problema resolvido, e as tecnologias relacionadas a JavaScript tendem a ser impulsionadas pelo capital das grandes empresas

  • Uso Rails há 17 anos e ainda adoro e prefiro. É fácil separar o código, então o cabeçalho dos arquivos não fica desnecessariamente longo. Ao separar lógica e marcação, dá para testar cada parte de forma independente, o que facilita rastrear bugs

  • Rust é uma linguagem feita por pessoas muito inteligentes, mas é tão focada em teoria dos tipos e alocação de memória que fica difícil de entender para desenvolvedores comuns. Mesmo lendo posts de blog sobre Rust, só entendo mais ou menos metade

  • As reclamações sobre Ruby e Rails diminuíram. Não existe linguagem ou framework perfeito; é preciso conhecer seus pontos fortes e fracos e saber lidar com isso

  • É difícil escrever rapidamente uma grande aplicação web em Rust. Grandes aplicações escritas em Rails não rodam rápido, e podem ter muitos bugs, além de serem difíceis de manter e escalar. Linguagens como Java, C#, e Go permitem concluir o trabalho tão rápido quanto Rails e executar tão rápido quanto Rust

  • Tecnologias como NextJS e SvelteKit são populares entre desenvolvedores JS porque resolvem os problemas da experiência de desenvolvimento de backend no Node.JS. Rails já oferecia, de forma inovadora, uma solução abrangente para construir aplicações em 2006

  • Estou testando AdonisJS como alternativa em TS ao Rails. É parecido com Rails ou Laravel e reduz o peso de ter que decidir cada parte da stack

  • Fico confuso com a opinião de que Rust não serve para backend web. Tive uma boa experiência em serviços pequenos, e embora a complexidade possa aumentar ao construir aplicações grandes, Rust traz a confiança necessária em codebases de grande escala

  • Estou tendo uma experiência parecida com Django, e os problemas de desempenho vêm principalmente das queries ao banco de dados, não tanto do próprio Django

  • Não estamos em 2010, então questiono por que usar Rails. Existem muitas alternativas, como Java (Spring), Go e Node. Usar Rust parece uma escolha tão estranha quanto usar C++