Logotipo IT Forum
IT Forum Instituto Itaqui Distrito Itaqui IT Invest
IT Forum - A Comunidade de Tecnologia se Encontra Aqui
  • Todas as notícias
  • Negócios
  • Liderança
  • CIO
  • Carreira
  • IA
  • Cibersegurança
  • Plataformas
  • ESG
  • Vídeos
  • Nossas colunas
  • Colunistas
  • Pesquisas
  • Prêmios
Revistas
  • IT Forum Líderes
  • Series
  • Histórias da TI
  • Ver todos
  • Todos os eventos
  • IT Forum Trancoso
  • IT Forum Forte
  • IT Forum Mata
  • Sobre o HIT
  • Todos os materiais
Todas as notícias Negócios Liderança CIO Carreira IA Cibersegurança Plataformas ESG Vídeos
Nossas colunas Colunistas
Pesquisas Prêmios
Revistas
Todos os videocasts E agora, TI? Entre Tech IT Forum Líderes Series
Todos os eventos Trancoso
Todos os materiais Todos os materiais
  1. Home
  2. Notícias
  3. Carreira
  4. 8 mentiras que os programadores dizem a si mesmos
carreira
Programação

8 mentiras que os programadores dizem a si mesmos

Publicado:
03/11/2019 às 17:31
Leitura
9 minutos

Os programadores têm orgulho de si mesmos por um bom motivo. Ninguém mais tem o poder de acessar um banco de dados e mudar a realidade. Quanto mais o mundo confia nos computadores para definir como o mundo funciona, mais poderosos os programadores se tornam.

Infelizmente, o orgulho termina com a queda. O poder que compartilhamos é real, mas está longe de ser absoluto, afinal, não existe um código perfeito. Às vezes cruzamos os dedos porque os computadores cometem erros. As máquinas também podem ser falíveis, o que todos sabemos por muita experiência em primeira mão.

Obviamente, muitos problemas decorrem de suposições que os programadores fazem e que simplesmente não estão corretas. Como Mark Twain disse: “Não é o que você não sabe que causa problemas. É o que você tem certeza de que não é verdade.”

Aqui estão algumas crenças falsas que nós, programadores, frequentemente fingimos ser verdadeiras.

1. Linguagens de programação são diferentes

Batemos nas mesas depois do trabalho. Escrevemos longos relatórios. Prometemos ao chefe que, desta vez, uma nova linguagem mudará tudo e um software maravilhoso fluirá dos teclados que todo o projeto será realizado um mês antes do prazo. No final, porém, colamos os dados nas variáveis ​​e testamos alguma lógica.

Os programadores veem a estrutura em seu código e sonham em acabar com qualquer ineficiência dele. Então eles imaginam elaborados castelos chamados “estruturas”, “andaimes”, “plataformas” ou “arquiteturas” e mexem com eles até oferecerem o suporte correto ao problema atual, para que tudo possa ser escrito em poucas palavras

No final, tudo isso é artifício. Licor estrutural que entorpece a dor da codificação da vida até que ela desapareça. Os computadores são construídos a partir de transistores e nenhuma quantidade inteligente de teorias pode ocultar o fato de que todo o nosso código se resume a um pouco de silício, escolhendo ir para a esquerda ou para a direita.

2. Estruturas estão melhorando

Talvez você tenha criado seu último aplicativo Web no React porque estava descontente com as páginas construídas no Vue. Ou talvez você reescreva tudo em algo menor, mais novo ou mais legal, como Marko, Glimmer ou Ghost? O programador está sempre procurando a estrutura perfeita, mas essa estrutura, como o fim do arco-íris, nunca aparece.

Ralph Waldo Emerson antecipou a vida do programador quando escreveu “Autossuficiência”, em 1841. “A sociedade nunca avança”, observou ele falando, claro, do curso das estruturas de programação. “Ele recua tão rápido de um lado quanto ganha do outro. Seu progresso é aparente apenas como os trabalhadores de uma esteira … Pois tudo o que é dado é tomado.”

E assim vemos repetidamente os desenvolvedores criarem novas estruturas para corrigir os problemas das estruturas antigas, introduzindo novas dificuldades ao longo do caminho. Se uma estrutura adicionar renderização do lado do servidor, ela atolará o servidor. Mas se tudo é deixado para os clientes, eles começam a ficar mais lentos. Cada novo recurso é uma troca entre tempo, código e largura de banda.

3. Nulo é aceitável

Descobrir como lidar com ponteiros nulos é um grande problema para o design de linguagem moderna. Às vezes, acho que metade do código Java que escrevo está verificando se um ponteiro é nulo.

A maneira inteligente como algumas linguagens usam um ponto de interrogação para verificar a nulidade ajuda, mas não elimina o problema. Várias linguagens modernas tentaram ultrapassar essa barreira, eliminando completamente o nulo. Se toda variável precisar ser inicializada, nunca poderá haver um nulo. Não há mais testes nulos. Problema resolvido. Hora do almoço.

A alegria dessa descoberta desaparece em várias linhas de um novo código, porque as estruturas de dados geralmente apresentam falhas sem informações. As pessoas deixam linhas em um formulário em branco. Às vezes, os dados ainda não estão disponíveis.

Se o elemento for uma sequência, você pode testar se o comprimento é zero. Se você trabalha bastante com as definições de tipo, geralmente pode criar algo logicamente correto para determinado problema, pelo menos até que alguém altere as especificações. Depois de fazer isso algumas vezes, você começa a desejar uma palavra simples que significa uma variável vazia.

4. Computadores podem entender escolhas humanas

A codificação de gênero e a escolha de pronomes é um grande campo minado para os programadores. Os computadores negociam listas fixas e menus bem definidos, e os seres humanos continuam mudando as regras.

Os cientistas da computação nunca resolvem realmente os problemas, apenas adicionam outra camada de indireção, neste caso, um ponteiro para um campo vazio onde a pessoa pode preencher sua escolha. Em seguida, algum palhaço vem e escolhe “sua majestade” como um pronome, o que faz com que algumas crianças riam e outros se sintam ofendidos. Mas voltar para uma lista fixa significa excluir algumas opções.

Esse modo de falha de design aparece repetidamente. Se você forçar todos a terem um primeiro nome e um sobrenome, alguns terão apenas um nome. Ou então, alguém que não quer ser conhecido por uma sequência de caracteres Unicode. E se alguém escolhe um novo emoji para o seu nome e o emoji não faz parte da lista final? Não importa o quanto você tente ensinar ao computador como ser flexível e aceitar caprichos e loucuras humanas, os humanos surgem com novas bombas lógicas que detonam o código.

5. Unicode significa comunicação universal

Há um comitê sério que se reúne com frequência tentando decidir quais emojis devem ser incluídos na lista definitiva de glifos que definem a comunicação humana. Eles também deixam de lado certos emoji, negando efetivamente os sentimentos de alguém.

A explosão de memes mostra quão fútil esse processo pode ser. Se o mundo considera os emoticons muito limitadores, incentivando-os a misturar texto com fotos de ícones culturais, como uma lista de emojis pode ser adequada?

Depois, há o problema das fontes emoji. O que parece fofo em uma fonte pode parecer covarde e suspeito em outra. Você pode escolher o emoji fofo, mas seu telefone enviará os bytes Unicode para seu amigo que tem um telefone de marca diferente e uma fonte que renderizará os bytes com a versão desagradável do emoji.

6. A linguagem humana é consistente

Uma das maneiras que os desenvolvedores criam é colocar um campo de texto e permitir que os humanos o preencham com o que quiserem. As seções de comentários em aberto são feitas para humanos e raramente são interpretadas por algoritmos, portanto não fazem parte do problema.

O problema real reside em campos estruturados com texto. Quando o meu GPS quer que eu escolha uma estrada que leva o nome de um santo, ele me diz para “virar para a Street Johns Road”. Os nomes das estradas com apóstrofos também fazem dar uma volta. É comum ver “St. John’s Road” soletrado como “Saint Johns”,“St. Johns”, “Saint John’s” e até da forma plural:“ Saint Johns”. Os Correios dos EUA têm uma lista de endereços sem caracteres extras e mantém um algoritmo elaborado para converter qualquer endereço aleatório na forma canônica.

7. Arquivos são consistentes

Parece que lembrar os dados deve ser algo que um computador possa fazer. Devemos ser capazes de recuperar os bits, mesmo que sejam preenchidos com muitas inconsistências lógicas, estilísticas, ortográficas, numéricas ou outras. Infelizmente, não podemos nem fazer isso.

Sempre que peço ao meu Mac que verifique o sistema de arquivos e corrija os erros, ele invariavelmente me informa sobre uma longa lista de “erros de permissão” que ele repara para mim. Como o software obteve permissão para alterar as permissões de acesso aos meus arquivos se eu não dei permissão para fazê-lo? Não me pergunte.

Esses são apenas dois exemplos de como os sistemas de arquivos não respeitam o pacto entre o usuário (a pessoa que fornece a eletricidade) e a máquina (um carente desesperado por eletricidade). Qualquer programador lhe dirá que existem centenas de outros exemplos de situações em que os arquivos não contêm o que esperamos que eles contenham. As empresas de banco de dados recebem muito dinheiro para garantir que os dados possam ser gravados de maneira consistente. Mesmo assim, algo dá errado e os consultores recebem ainda mais dinheiro para consertar o problema.

8. Estamos no controle

Gostamos de acreditar que nossas instruções estão dizendo ao computador, mas somos presos impotentes pegando o que as máquinas nos dão. O sistema operacional está no comando e pode ou não permitir que nosso código faça o que nós desejamos.

OK, e se compilarmos o kernel Linux do zero e instalarmos apenas o código que examinamos? Certamente estaremos no controle então. Não. O BIOS possui o primeiro controle sobre o computador e pode fazer clandestinamente alterações sutis e não tão sutis no seu código. Se você estiver executando na nuvem, o hipervisor terá ainda mais poder.

OK, e se substituirmos o BIOS por nosso próprio gerenciador de inicialização personalizado? Você está chegando mais perto, mas ainda há muito firmware enterrado dentro da sua máquina. Sua unidade de disco, placa de rede e placa de vídeo podem pensar por si mesmas e ouvem primeiro o firmware.

Não apenas isso, mas sua CPU pode ter um “Modo Deus Escondido”, que permite que outra pessoa assuma o comando. E esses são apenas os problemas com os chips oficiais que deveriam estar na sua caixa. Alguém pode ter adicionado um chip extra com uma agenda oculta.

Até esse pequeno pen drive possui um processador embutido com seu próprio código, tomando suas próprias decisões. Todos esses processadores incorporados foram pegos abrigando malware. O fato triste é que nenhum dos transistores nessa caixa embaixo da sua mesa informa você sobre isso.

 

Seta para cima
Mais lidas
Notícias

CDO tem papel fundamental na transformação digital de empresas

7 anos atrás

1
CIO

Envie alertas do Calendário Google para qualquer celular

14 anos atrás

2
Notícias

SEIAS moderniza gestão com Sonda Ativas

8 anos atrás

3
Notícias

Gestão de riscos atrai profissionais que buscam qualificação

9 anos atrás

4
Notícias

Em hackathon, Plug e Raízen desafiam desenvolvimento de soluções de investimento

9 anos atrás

5
Logo IT Forum
Newsletter
As melhores notícias de tecnologia B2B em primeira mão
Acompanhe todas as novidades diretamente na sua caixa de entrada.
Instagram Linkedin Facebook Tiktok Youtube
1 / 1
carreira
Programação

Nenhum autor cadastrado para este post.

Notícias relacionadas
Ver mais Seta para direita
Notícias relacionadas
Ver mais Seta para direita
Capital cognitivo híbrido, o próximo capital das organizações
Gestão
Capital cognitivo híbrido, o próximo capital das organizações

Heriton Duarte

1 mês atrás

Dilema da IA está entre escalar produtividade e preservar confiança
Inteligência Artificial
Dilema da IA está entre escalar produtividade e preservar confiança

Déborah Oliveira

1 mês atrás

“O varejo não compete mais por canal, mas por capacidade de movimentar produtos”, diz CIO da Motz
Inteligência Artificial
“O varejo não compete mais por canal, mas por capacidade de movimentar produtos”, diz CIO da Motz

Pamela Sousa

1 mês atrás

Xerox anuncia nova estrutura global para o mercado da Print
Negócios
Xerox anuncia nova estrutura global para o mercado da Print

Redação

1 mês atrás

Conectando a tecnologia e o futuro dos negócios

Insights e inovações para líderes no IT Forum.

Conteúdos

  • Notícias
  • Colunas
  • Pesquisas
  • Series
  • Revistas
  • Videocasts
  • Eventos

Notícias

  • Todas as notícias
  • Negócios
  • Liderança
  • CIO
  • Carreira
  • Inteligência Artificial
  • Cibersegurança
  • Plataformas
  • Sustentabilidade
  • Vídeos

IT Forum

  • Sobre nós
  • Envie seu Release
  • Mídia Kit
  • Contato
  • Expediente
  • Cultura
  • Distrito Itaqui
  • Anuncie
  • Notícias
  • Colunas
  • Pesquisas
  • Series
  • Revistas
  • Videocasts
  • Eventos
  • Todas as notícias
  • Negócios
  • Liderança
  • CIO
  • Carreira
  • Inteligência Artificial
  • Cibersegurança
  • Plataformas
  • Sustentabilidade
  • Vídeos
  • Sobre nós
  • Envie seu Release
  • Mídia Kit
  • Contato
  • Expediente
  • Cultura
  • Distrito Itaqui
  • Anuncie

Logo do IT Forum
Estr. Dr. Yojiro Takaoka, 4601 - Ingahi, Itapevi - SP, 06696-050
Icone Instagram Icone Linkedin Icone Facebook Icone TikTok Icone YouTube
  • Link Política de privacidade
  • Link Fale conosco
  • Link Termos de uso
  • Link Trabalhe conosco
Copyright © 2026 IT FORUM - Todos os Direitos Reservados