A lição das letras verdes na tela preta

Não tem muito tempo, os desenvolvedores pensavam o software como uma peça única. Um codebase que abordava os detalhes de negócio de uma empresa na tentativa de ser visto como a silver bullet.

O problema dessa abordagem era o conflito de representação de conhecimento, reflexo da representação de muitos domínios e os conflitos de nome no dicionário de domínio. Muitas das vezes um problema que aparenta estar solucionado quando se sobrecarrega o objeto de responsabilidades, claramente quebrando o principio de responsabildiade única – SRP.

Outro problema era a complexidade de manter todas as regras de negócio e relaciona-las de maneira controlada, algo que também é reflexo de conflitos de domínios. O pattern de strategy e outros tantos pareciam oásis no deserto.

E um último problema dos que selecionei para falar aqui, o isolamento do software em si. Havia o desejo do isolamento como pratica comercial e quem perdia era o cliente, impossibilitado de migrar caso o quisesse, ou tendo que encarar muita dificuldade para ter dois softwares colaborando num mesmo problema. Isso era possível, mas a um custo mais alto que o necessário, que o diga os integradores de software(eu fui um).

Enquanto o mundo do software fechado se debatia e controlava os interesses dos clientes ao mesmo tempo em que SIM, resolvia os problemas deles, inclusive aqueles que não existiam antes de adotar a solução, o mundo open source se desenvolvia consciente de outras praticas.

No open source existe um software que alguns chamam de lugar (de tanto tempo que já passaram nele) e que apresenta todas as características que desejo abordar.

O CLI, o terminal bash, zsh ou outros, e os softwares cli.

SRP
Os softwares desenvolvidos para cli no UNIX são criados a partir de bibliotecas de responsabilidade única, de domínio isolado, especialistas e por isso, reutilizáveis. Algo que só é possível por causa da filosofia open source, afinal, quem escreveria código proprietário reutilizável pelos concorrentes?

Micro serviços
Como os softwares e bibliotecas seguiam SRP é fácil entender que eles poderiam ser utilizados para compor tarefas maiores. No terminal, por exemplo, ler um arquivo linha a linha, contar as ocorrências de certas palavras e anotar o resultado num arquivo pode envolver 4 softwares ou apenas 1.

Integração
Que carinhosamente podemos chamar de pipe e direcionadores das std (in, out, err). Eles padronizaram a maneira como se faz a integração entre os software de cli. Esse é um sonho da indústria tornado real no UNIX com a simplicidade de alguns caracteres.

Certo, mas por que falar disso?

Além do claro sucesso dessas abordagens no mundo UNIX, todas elas, sem exceção, foram ou estão sendo adotadas pela indústria de software proprietário.

Em especial o conceito de micro serviço que vêm apontando para a função do programador/integrador como cada vez mais importante.

Talvez a próxima grande onda de software esteja saindo do open source novamente, ou talvez elas sempre tenham nascido por lá, entre uma tela preta e outra.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s