Offside
Corporate

Um olhar sobre nós na voz dos nossos parceiros - Testemunho da REN - Redes Energéticas Nacionais, pela voz de Miguel Silva.

Fora de Série

"Acho que devemos ser nós próprios e acima de tudo fazer mais e melhor em momentos particularmente difíceis, como este que atravessamos." Luís Seca (USE)

A Vós a Razão

"Estou plenamente convencido que o resultado da integração do LIAAD na rede INESC TEC é promissor porque, tal como nos sistemas complexos (...) "o todo é claramente maior do que a soma das partes", Pedro Campos (LIAAD)

Asneira Livre

"O HASLab integrou-se recentemente no INESC TEC. Variadas razões motivaram este casamento...", Alcino Cunha (HASLab)

Galeria do Insólito

Já ouviu falar do “Gabinete da Extinção”? Fica no INESC TEC! Vá ver com os seus próprios olhos!

Ecografia

BIP tira Raio X a colaboradores do INESC TEC...

Novos Doutorados

Venha conhecer os novos doutorados do INESC TEC...

Cadê Você?

O INESC TEC lança todos os meses no mercado pessoas altamente qualificadas...

Jobs 4 the Boys & Girls

Referência a anúncios publicados pelo INESC TEC, oferecendo bolsas, contratos de trabalho e outras oportunidades do mesmo género...

Biptoon

Mais cenas de como bamos indo porreiros...

Subscrever o BIP
 

Asneira Livre

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

(Alan Perlis)

Por 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.

*Colaborador no Laboratório de Software Confiável (HASLab)


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