You are here: Home Notícias & Eventos "Simplicity does not precede complexity, but follows it."

"Simplicity does not precede complexity, but follows it."

Por Alcino Cunha (Colaborador no Laboratório de Software Confiável - HASLab)
"Simplicity does not precede complexity, but follows it."

Alcino Cunha

Este é sem dúvida o meu epigrama favorito deste grande cientista da computação, o primeiro laureado com o Turing Award (a maior distinção que um cientista desta área de investigação pode aspirar a receber). A lista destas pequenas pérolas poéticas sobre programação (e muito mais) é extensa e reflete a grande sabedoria que advém de uma vida dedicada à causa. Pesquisem "Epigrams on Programming" no sítio do costume e deliciem-se com estas "asneiras livres" de altíssima qualidade.

É o meu favorito porque explica bem a força motriz por detrás do melhor que ciência nos tem dado. O caminho mais fácil é quase sempre o de acompanhar a complexificação dos sistemas, naturais ou artificiais, com a complexificação da teoria que os pretende explicar. Tantas vezes disfarçada de erudição, esta forma de ciência muitas vezes esconde mais do que explica, e acaba por levar a um ponto de saturação cognitiva que atrasa o progresso. Até que chega a ideia simples, unificadora, genial (de génios como Newton ou Turing), que de repente subjuga toda esta complexidade e a reduz à sua essência. O que era complexo de repente parece trivial e, libertos do nevoeiro que nos turvava a visão, podemos avançar para novos desafios.

É também o meu favorito porque explica muitas das minhas decisões, preferências e epifanias, quer pessoais, quer profissionais.

Membro orgulhoso do HASLab, investigo em Métodos Formais, área que há muitos anos procura dar algum sentido à palavra "Engenharia" na Engenharia de Software. Tal como nas outras engenharias, defendemos que se deve modelar e especificar antes de programar, ou como escreveu Leslie Lamport recentemente, simplesmente defendemos que se deve construir software como se constroem casas [1]. Para tal, recorremos a linguagens formais que nos permitam modelar e abstrair a complexidade do software, para mais facilmente podermos explicar e prever o seu comportamento. 

Porque nem todos podemos ser génios, muita da investigação nesta área padeceu do mal que descrevo acima: conforme a complexidade dos sistemas de software foi aumentando, também os métodos formais se tornaram cada vez mais complexos, criando barreiras de entrada muitas vezes inultrapassáveis para a maioria dos "engenheiros" de software, que assim preferiu continuar a ignorá-los. A minha própria crença na área foi ficando abalada e, quando ensinava métodos formais, sentia-me por vezes arauto de uma área moribunda e irrelevante.

Felizmente, há alguns anos descobri o Alloy, uma linguagem de modelação concebida por Daniel Jackson no MIT [2], caracterizada por uma simplicidade e elegância que facilita a abstração e a reflexão que se desejam numa fase de projeto de software. Permite-nos dizer muito com pouco, e rapidamente idealizar, explorar e validar diferentes soluções para o sistema pretendido. Encarnando o espírito do epigrama de Alan Perlis, o Alloy traduziu-se numa pequena epifania pessoal, pois fez-me acreditar que os métodos formais podem ser leves sem ser ocos, e assim aspirar a ter um impacto real na Engenharia de Software.

O HASLab encontra-se em processo de integração no INESC TEC. Variadas razões motivaram este "casamento". Pessoalmente, uma delas estava mais uma vez alinhada com este epigrama: a busca da simplicidade depois da complexidade. Neste caso, a simplicidade e eficiência dos processos organizacionais, que nos permitiria sacudir a complexidade burocrática que muitas vezes se interpôs no caminho da excelência científica. Agora esse caminho parece bem mais fácil!

Um abraço desde Braga.


[1] http://www.wired.com/opinion/2013/01/code-bugs-programming-why-we-need-specs/
[2] http://alloy.mit.edu/

About Us

Connect INESC TEC brings together the former employees of INESC TEC. We are dedicated to maintaining strong connections with former employees and here you can receive news about the Associate Laboratory and keep in touch with other ex co-workers.

Where are you now?

Read More