Artigos

Publicado em 04 de outubro de 2023 Atualizado em 04 de outubro de 2023

Compreender a programação com metáforas

Ver o código de forma diferente

Linhas de código

O que é a programação? Como é que a visualiza? Provavelmente um pouco como no filme Matrix (2000) das irmãs Wachowski: linhas de códigos diferentes que formam um mundo ou simplesmente um programa. Esta imagem não é a que mais se aproxima da programação. Não, há metáforas muito mais fortes para esta atividade, incluindo a massa.

Metáfora na informática

A questão da metáfora na informática não é uma abordagem nova. Para lidar mais eficazmente com as noções de interface, por exemplo, tem sido necessário pensar em conceitos. O "Windows" não é alheio às diferentes janelas que conduzem a navegadores de Internet, processadores de texto, software de videoconferência, etc. O sistema operativo foi concebido como uma casa que se abriria a diferentes pontos de vista e ferramentas informáticas.

Por isso, muitas das aplicações actuais tentam oferecer metáforas que atraiam os utilizadores. "Paper", uma aplicação de desenho para o iPad, dá a impressão de trabalhar com uma verdadeira folha de papel. Um software que permite ver os resultados financeiros de uma empresa será descrito como uma comunicação do seu pulso. É claro que uma empresa não é um ser vivo, mas jogar com esta imagem ilustra até que ponto o utilizador poderá seguir os dados quase em tempo real. Algumas pessoas tentam comparar a sua criação a uma cidade, uma fábrica ou um jardim.

Mas é preciso ter cuidado com essas metáforas, como salienta o especialista em software David B. Black. Black. A visão errada de um programa pode levar a erros graves. Entre outras coisas, ele desconfia das analogias feitas com as casas. Muitas pessoas intitulam-se "arquitectos" da sua aplicação. É verdade que este especialista concebe planos, mas para um objeto tangível que, um dia ou outro, já não pode ser alterado. É exatamente o contrário do software, que é invisível desde o início e tem de evoluir constantemente.

Quem vê a sua criação como uma fábrica está a correr riscos. Se as fábricas são capazes de produzir sempre a mesma coisa, um bom programa deve ser capaz de se adaptar às diferentes necessidades dos seus utilizadores.

A programação é como...

Assim, se a informática em geral utiliza metáforas, não é surpreendente que a programação também adopte analogias. Por exemplo, este site especializado em programação ágil (conhecido como Scrum) compara a abordagem a um parafuso que mantém os elementos unidos, a uma base sobre a qual se pode construir a longo prazo e a uma direção para a qual a equipa de programadores pode partir.

O ensino do código pode basear-se em várias comparações para refletir com os alunos:

  • Como a mecânica: aprender o funcionamento de uma linguagem de programação e a sua lógica

  • Como um organismo: compreender as subtilezas da estrutura de um código complexo

  • Como um cérebro : compreender a inteligência por detrás da programação

  • Como um fluxo que transforma: como o código pode ajudar a resolver problemas

  • Como uma cultura: em que contexto cultural se insere a programação?

Relativamente a este último ponto, o Professor Jon Corbett, da Universidade Simon Fraser, concebeu literalmente o código utilizando o Nêhiyawêwin, um dos dialectos Cree. A sua ideia era descolonizar a programação, que estava praticamente toda em inglês, para que pudesse ser disponibilizada às pessoas das Primeiras Nações. Ele próprio um Métis, apercebeu-se que a programação era uma forma de contar uma história que uma máquina de computador podia compreender. Assim, a sua linguagem de programação tem em conta o conceito de narrador e certos ritos ancestrais. Na sua versão do código, existe um equivalente a "queimar ervas para purificar o corpo", que corresponde a uma função de esvaziamento de memórias ocultas e físicas.

O código pode, portanto, ser explicado de muitas maneiras. Nesta página, podem ver-se exemplos de desenhos que especificam uma API (interface de programação de aplicações) ou um código JavaScript. A metáfora da lasanha é frequentemente utilizada para descrever a dificuldade de modificar o código. Como neste prato de massa, cada camada parece estar em ordem, mas adicionar ou remover coisas sem prestar atenção pode fazer com que a refeição seja esmagada. Tortellini é uma boa forma de explicar como a arquitetura de um programa é criada em pequenos pacotes de molho (código fonte) para conceber software. Tudo isto é basicamente regido pelo acrónimo SOLID, criado pelo engenheiro de software Robert C. Martin.

E se a metáfora da massa parece rebuscada, saiba que até é possível utilizar a cultura popular como analogia. O universo da Guerra das Estrelas pode ser utilizado para falar de variáveis (com as diferentes cores dos sabres da saga), o princípio dos laços para fazer rolar um dróide como o BB-8, etc.

Não há muitas comparações que estejam fora dos limites quando se trata de introduzir a programação. Tudo o que tem de fazer é encontrar a abordagem vencedora de acordo com os objectivos escolhidos e os alunos serão então capazes de discutir, refletir e agir em torno desta imagem dada pelo seu professor.

Foto: Maik Jonietz / Unsplash

Referências :

Black, David B. "Resumo: más metáforas de software levam a maus resultados". Blackliszt. Última atualização: 5 de junho de 2023. https://www.blackliszt.com/2023/06/summary-bad-software-metaphors-lead-to-bad-results.html.

Corbett, Jon. "Codificação Cree". Pinnguaq. Última atualização: 28 de abril de 2023. https://pinnguaq.com/fr/stories/cree-coding/.

Craig, William. "5 razões pelas quais as metáforas podem melhorar a experiência do utilizador". WebFX. Acessado em 29 de setembro de 2023. https://www.webfx.com/blog/web-design/5-reasons-why-metaphors-can-improve-the-user-experience/.

"A codificação Cree descoloniza a programação de computadores". SFU Research. Acedido em 29 de setembro de 2023. https://www.sfu.ca/research/scholarly-impacts/cree-coding-decolonizes-computer-programming.

"Como você usa metáforas para comunicar seu design de software a partes interessadas não técnicas?" LinkedIn. Última atualização: 1 de setembro de 2023. https://www.linkedin.com/advice/0/how-do-you-use-metaphors-communicate-your-software.

"Que o código esteja com você: ensinando código com Star Wars". Code Week. Última atualização: 4 de maio de 2023. https://blog.codeweek.eu/may-the-code-be-with-you-teaching-code-with-star-wars/.

"Uma imagem que vale mais do que mil programas. Maggie Appleton. Última atualização: 2021. https://maggieappleton.com/programming-pictures.

"Programar com massa". Patrick Corbett. Acedido em 29 de setembro de 2023. https://www.pmcorbett.tech/work/strained-pasta-programming/.

Slotte Dufva, Tomi, e Mikko Dufva. "Metáforas do código - estruturar e alargar o debate sobre o ensino de código às crianças". ResearchGate. Última atualização em setembro de 2016. https://www.researchgate.net/publication/308276346_Metaphors_of_code-Structuring_and_broadening_the_discussion_on_teaching_children_to_code.

"As metáforas do sistema podem ser poderosas". PremierAgile. Acedido em 29 de setembro de 2023. https://premieragile.com/system-metaphors-can-be-powerful/.


Veja mais artigos deste autor

Dossiês

  • Novas metáforas

Notícias de Thot Cursus RSS
Leitor de RSS ? :Feedly, NewsBlur

Superprof : a plataforma para encontrar os melhores professores particulares no Brasil e em Portugal



Receba nosso dossiê da semana por e-mail

Mantenha-se informado sobre o aprendizado digital em todas as suas formas, todos os dias. Idéias e recursos interessantes. Aproveite, é grátis!