Joseph Cooney nos lembra que, em janeiro de 2005, a 37signals entrou em operação com um produto que foi construído em 579 linhas de código:
O senhor leu certo, não 60.000 ou 600.000, mas sim um projeto comercial escrito em menos de 600 linhas de código Ruby. Quando vi esse número pela primeira vez, fiquei incrédulo: já escrevi procedimentos armazenados que são mais longos do que isso. Meu projeto atual tem mais linhas de configuração do que isso. Até mesmo escrevi aplicativos de console no bloco de notas e compilei a partir da linha de comando com mais linhas do que isso, porque achei que eram tão pequenos que não precisavam de um arquivo .sln e .proj inteiro e, no entanto, aqui está 37signals em funcionamento com um produto que tem apenas 579 linhas de Ruby.
Como observou no blog do Rails, o lançamento original do produto foi coberto pelo criador da linguagem Ruby Matz’ em seu japonês nativo. Surpreendentemente, os fatos relevantes ainda são legíveis:
É claro que um simples número de linhas de código não é a história toda – na verdade, eles criaram toda a estrutura do Rails primeiro para dar suporte à criação de pequenos aplicativos como o lista ta-da. Nenhum dos códigos necessários do framework Rails, nem nenhuma das folhas de estilo necessárias, JavaScript, HTML e assim por diante, estão incluídos nesse número. Ainda assim, concordo com Joseph: é uma conquista impressionante e pode levar a alguns experimentos interessantes:
De vez em quando, tenho algumas ideias interessantes de produtos. Qual é a quantidade mínima absoluta de código que eu poderia escrever para fazer essas ideias funcionarem? Se eu estiver preparado para operar dentro das restrições da plataforma (seja ela qual for), quanto esforço isso me pouparia? Quantas “ideias interessantes” a mais eu poderia transformar em produtos funcionais se estivesse preparado para seguir essas restrições? Quantas coisas mais legais/úteis o senhor poderia construir se prometesse a si mesmo que cada uma teria apenas 600 linhas de código?
O que o senhor pode o senhor em 600 linhas de código? Pense nisso como um exercício de minimalismo. A linguagem ou o ambiente de sua preferência permite que o senhor tenha a liberdade de criar algo interessante e útil com essa restrição?