É interessante analisar o efeito que uma linguagem de programação tem sobre a mente do programador, principalmente a sua capacidade de influenciar a maneira como enxergamos um problema. A diferença na sintaxe e os recursos disponíveis afetam a forma como pensamos e nos comunicamos, inclusive no mundo real.
O mesmo problema pode ser solucionado de várias formas diferentes, dependendo da linguagem de programação adotada. Certamente a abordagem escolhida para resolver um problema utilizando Ruby não será a mesma se você usar Java.
Outro fator que exerce uma grande influencia sobre a forma como resolvemos os problemas e pensamos é o domínio do aplicativo. Somos tentados a utilizar o mesmo vocabulário do cliente no código. O meu conselho é tirar o máximo de vantagem desse efeito. Pode ser realmente produtivo “falar” a mesma língua que o cliente também dentro do código. Por exemplo, se o cliente explicar uma funcionalidade dessa maneira:
Quando todas as unidade de um produto se esgotarem em uma das lojas, então o sistema deve solicitar mais 10 unidades do mesmo produto para a fábrica.
Seria muito bom se o código produzido fosse algo parecido com isso:
if product.sold_out?
Factory.order 10, product, :to => store
end
É óbvio que não esperamos que o cliente entenda o código e muito menos que ele altere algo por conta própria, mas nós programadores podemos nos beneficiar muito disso.
Não importa se você está escrevendo um código simples como o exemplo acima ou se construiu uma DSL para se aproximar ainda mais da linguagem do cliente. O importante é estreitar a comunicação entre os envolvidos. Assim o seu cérebro estará livre para se concentrar no que realmente interessa: a solução de problemas.
Mas como japonês lê da direita para a esquerda, vai pensar assim:
Factory.order 10, product, :to => store if product.sold_out?:)
O vício de pensar conforme a linguagem é realmente uma coisa chata. A mais de um ano estou full time com Ruby e mesmo assim ainda tem horas que me pego pensando PHP. =/
Marcelo Silveira,
Tenho medo só de pensar em como deve ficar o seu código…
Traduzindo, DDD
:)
Quem vem de uma linguagem como o java, como eu, escrever uma linha de código dessa, que parece bastante com uma frase do cliente, isso é simplesmente incrível!
“Oque faz um programador, não é a linguagem que usa.”
Randal L. Schwartz
Isso faz todo programador refletir, na minha humilde opinião além de usar a “lingua” do cliente a linguaguem de programação escolhida influe muito na solução e no resultado que o cliente espera.