domingo, 13 de setembro de 2015

🧠 Structured Programming (Dijkstra) — A Revolução Silenciosa que Salvou o Software

 

Bellacosa Mainframe fala sobre o legado Dijkstra : Structured Programming

🧠 Structured Programming (Dijkstra) — A Revolução Silenciosa que Salvou o Software

☕ Um Café no Bellacosa Mainframe

Nos primórdios da programação, escrever código era mais parecido com montar uma gambiarra elétrica do que com engenharia. Fios cruzados, saltos imprevisíveis e um único erro podia derrubar tudo. Foi nesse caos que surgiu uma ideia simples — e revolucionária:

💡 Programas deveriam ser estruturados, previsíveis e compreensíveis.

O nome por trás dessa virada?


👉 Edsger W. Dijkstra — um dos maiores gênios da computação.


🏛️ Antes da Revolução: O Velho Oeste do Código

Nos anos 50 e início dos 60:
  • Programas eram gigantescos blocos lineares

  • Cheios de saltos incondicionais

  • Manutenção era um pesadelo

  • Bugs eram quase impossíveis de rastrear

O principal culpado? 😈

👉 O famigerado GOTO

Um comando que dizia:

“Pare o que está fazendo e vá executar ali no meio do programa.”

Resultado: o famoso spaghetti code 🍝


💣 A Carta que Mudou Tudo

Em 1968, Dijkstra publicou uma carta histórica:

👉 “Go To Statement Considered Harmful”

Essa publicação virou um terremoto intelectual na área.

Ele não estava apenas criticando um comando — estava propondo uma nova forma de pensar software.


🧱 O Conceito Central: Programas Devem Ter Estrutura

Structured Programming defende que todo programa pode ser construído usando apenas três estruturas de controle:

1️⃣ Sequência

Executar instruções na ordem.

A
B
C

2️⃣ Seleção (Decisão)

IF condição
A
ELSE
B
END-IF

3️⃣ Iteração (Repetição)

WHILE condição
A
END-WHILE

💡 Só isso. Sem saltos caóticos.


🏗️ O Impacto no Mainframe

https://i.ebayimg.com/images/g/UP4AAOSwjTlnBJCl/s-l1200.png
Folha de Codificacao COBOL
https://www.leapwork.com/hs-fs/hubfs/Blog%20Images/MicrosoftTeams-image.png?height=329&name=MicrosoftTeams-image.png&width=329
Terminal 3270
https://attachment.tapatalk-cdn.com/2988/202003/14238_34a44305c61df33e1c21eb07e30ba66d.png
Programa COBOL

Structured Programming influenciou diretamente:

  • COBOL moderno (COBOL-74 em diante)

  • Pascal (projetado para ensino estruturado)

  • C

  • Ada

  • praticamente todas as linguagens posteriores

No COBOL, surgiram práticas como:

  • PERFORM estruturado

  • END-IF, END-PERFORM

  • eliminação de GO TO sempre que possível

💬 Nos ambientes corporativos, isso foi decisivo para sistemas críticos sobreviverem décadas.


☕ Comentário Bellacosa Mainframe

Se você já abriu um programa legado cheio de:

GO TO ERRO-999
GO TO SAIDA
GO TO VOLTA-LOOP
GO TO TRATA-ABEND

Você sabe exatamente por que Dijkstra virou uma lenda 😅

Structured Programming não é frescura acadêmica.

👉 É o que permite um sistema bancário rodar 40 anos sem colapsar.


🕵️ Curiosidades e Bastidores

🧩 1) Dijkstra odiava computadores “bagunçados”

Ele acreditava que programação deveria ser uma disciplina matemática rigorosa.

Chegou a dizer que:

“Testar pode mostrar a presença de bugs, nunca sua ausência.”


✍️ 2) Ele escrevia à mão

Sim — muitos de seus algoritmos eram desenvolvidos no papel antes de qualquer implementação.


🧮 3) Também criou o algoritmo de caminho mínimo

👉 O famoso Algoritmo de Dijkstra, base de roteamento e GPS.


🧨 4) Nem todo mundo gostou da crítica ao GOTO

Programadores da época reagiram com:

  • indignação

  • sarcasmo

  • artigos contra

  • debates acalorados

Hoje parece óbvio. Na época, foi uma guerra cultural.


🐣 Easter Egg Mainframe

Mesmo em sistemas altamente estruturados…

👉 GO TO nunca morreu completamente.

Em COBOL legado, ele aparece como:

  • fuga de erro

  • tratamento de exceções improvisado

  • controle de fluxo antigo

  • patches históricos

É o equivalente ao:

“Não encoste nisso que está funcionando.”


🤫 Fofoquice Histórica

Dijkstra não gostava de popularização excessiva da programação.

Ele acreditava que:

👉 nem todos deveriam programar
👉 programação é atividade intelectual profunda
👉 más práticas se espalham rápido demais

Hoje, com milhões de devs no mundo… imagine o que ele diria 😄


🚀 Por que isso ainda importa HOJE?

Structured Programming é a base de:

  • Clean Code

  • Arquitetura de Software

  • Boas práticas corporativas

  • Programação orientada a objetos

  • Sistemas críticos

  • Segurança e confiabilidade

Sem essa revolução, software moderno seria inviável.


✅ Conclusão

Structured Programming não é apenas um capítulo da história.

👉 É o alicerce invisível de praticamente todo software sério já escrito.

No mundo mainframe, especialmente, ela foi a diferença entre:

💀 sistemas incontroláveis
e
🏦 infraestruturas que sustentam economias inteiras

Sem comentários:

Enviar um comentário