Magia Negra no Encadeamento de Padrões do Python 3.10: Explorando `__subclasshook__`

2025-08-22

Este artigo explora as capacidades inesperadas que surgem da combinação do emparelhamento de padrões do Python 3.10 e o método `__subclasshook__` das Classes Base Abstratas (CBAs). Usando habilmente `__subclasshook__`, o autor demonstra 'sequestrar' o emparelhamento de padrões, permitindo a definição personalizada de quais tipos coincidem e até mesmo a correspondência com base em atributos de objetos, não apenas tipos. Embora mostre funcionalidades poderosas, como a criação de correspondências personalizadas, o autor adverte fortemente contra o uso desta técnica em código de produção devido à sua natureza imprevisível e potencialmente prejudicial.

Leia mais

A Influência Surpreendentemente Profunda de Linguagens de Programação 'Mortas'

2025-07-16

Este artigo explora o impacto surpreendentemente significativo de linguagens de programação historicamente influentes que não são mais amplamente utilizadas, como COBOL, ALGOL, APL e BASIC. Ao examinar seus antecedentes, contribuições e razões para o declínio, o autor revela sua influência duradoura em linguagens modernas. Exemplos incluem as estruturas de dados de registro do COBOL, o escopo léxico e a programação estruturada do ALGOL e o processamento de matrizes do APL. O artigo destaca a importância do estudo da história da linguagem de programação e as contribuições frequentemente ignoradas de linguagens que nunca alcançaram popularidade generalizada.

Leia mais

Origens mal compreendidas da OOP: corrigindo o registro

2025-05-10

Este artigo desmascara o equívoco comum de que Alan Kay inventou tanto a programação orientada a objetos (OOP) quanto o conceito de objetos. Na realidade, a linguagem Simula foi um precursor significativo da OOP, fato reconhecido pela equipe do Smalltalk. Embora Kay tenha cunhado o termo "objetos", ele mais tarde se arrependeu, enfatizando a passagem de mensagens como a ideia central da OOP. O artigo explora ainda mais as contribuições únicas do Smalltalk para a OOP, particularmente seu princípio de design de tratar tudo como um objeto e seu mecanismo inovador de tratamento de mensagens. O autor argumenta que a evolução da OOP não foi um evento singular, mas uma confluência de ideias e necessidades, com diferentes desenvolvedores entendendo e aplicando a OOP de maneiras diferentes em vários contextos.

Leia mais
Desenvolvimento

A curiosa história dos comentários JavaScript: por que `<!--` e `-->` funcionam

2025-03-12

Este artigo desvenda a curiosa história por trás do uso de `` como caracteres de comentário em JavaScript. Inicialmente, para garantir compatibilidade com navegadores mais antigos, os desenvolvedores envolviam seu código JavaScript em comentários HTML dentro de tags ``. Surpreendentemente, os navegadores modernos ainda suportam essa sintaxe devido a problemas históricos de compatibilidade de navegadores e ao compromisso do comitê de padronização de 'não quebrar a web'. O artigo explica como essa sintaxe funciona e por que `-->` deve aparecer no início de uma linha.

Leia mais
Desenvolvimento

Aplicando a Hierarquia de Controles à Engenharia de Software

2025-03-08

Um engenheiro mecânico apresentou ao autor a Hierarquia de Controles (HoC), um conceito crucial na segurança do local de trabalho. O autor aplica HoC à engenharia de software, analisando um incidente de banco de dados de produção causado por uma consulta incorreta dez anos atrás. O artigo explora a aplicação de eliminação, substituição, controles de engenharia, controles administrativos e equipamentos de proteção individual (EPIs) para mitigar riscos no desenvolvimento de software. As vantagens, desvantagens e limitações de cada nível são discutidas – por exemplo, políticas de acesso muito rígidas podem retardar a resolução de problemas. O autor enfatiza a necessidade de considerar de forma holística o impacto dos controles na segurança do sistema, evitando a introdução de novos riscos.

Leia mais
Desenvolvimento