Sexta-feira. Os delírios de um programador

Olá Habr! Às vezes, pensamentos diferentes começam a vagar na cabeça. Eu gravei alguma coisa. Acabou algo como uma história. Não julgue estritamente - é apenas uma fantasia.

imagem

Danças estranhas


Sexta depois do trabalho. Eu estou em uma boate. Ele convidou uma garota com um nome agradável Alla, e dançamos uma composição bastante agradável.

"Então, quem você trabalha, Michael?"

Essa questão sempre surge no curso da comunicação, às vezes mais cedo, às vezes mais tarde. E sempre duvido do que dizer. Porque se eu disser que sou programador, o relacionamento terminará rapidamente.

E não é que as meninas tratem mal os programadores. Tudo é exatamente o oposto, especialmente recentemente. As porcas financeiras começaram a apertar e o dinheiro fácil gradualmente começou a desaparecer da economia. Tornou-se claro para as meninas que em TI elas são espirituosas, confiáveis, não são muito limitadas por problemas materiais e, portanto, não são caras gananciosos.

Geralmente não é sobre programadores, mas especificamente sobre mim.

Aqui está como vai.

Sou programador.
- Programador ?! Os olhos de Alla se arregalam. - Diga-me, isso é provavelmente tão interessante. Eu não entendo nada em computadores.

Antiga como a recepção mundial, sobre a qual Carnegie escreveu, está sinceramente interessada e conversando com o interlocutor. As meninas usam de bom grado. É claro que funciona e, contra a minha vontade, dou outro passo em direção a uma noite solitária.

- O que você acha Alla, quantos computadores estão trabalhando nesta sala agora?

Alla olha em volta, seu olhar para no laptop do DJ.
Bem, um DJ.
- Você não levou em conta alguma coisa. Vamos contar. Existem cerca de cem pessoas nesta sala agora. Todo mundo tem um telefone celular. Em um telefone moderno, como regra, existem 4-8 núcleos principais de computação, 2-3 núcleos auxiliares, outro processador para bluetooth e Wi-Fi, outro processador serve um módulo celular, dois processadores criptográficos em dois cartões SIM, provavelmente existe um coprocessador para música, bem, um ou dois para algumas funções desconhecidas. Total - uma média de cerca de 15 processadores por telefone. E a pessoa ainda tem vários cartões bancários - cada um com um processador de criptografia, uma pulseira de fitness ou um relógio, e há alguns núcleos, novamente o mesmo bluetooth, fones de ouvido sem fio ... Bem, um total de 25 processadores por pessoa é um número bastante honesto. Total, temos 25 * 100 - 2500 processadores.
Uau.

Alla está intrigada. Aqui eu parava e transferia a conversa em uma direção diferente. Mas eu já sofri.
"Mas isso não é tudo." Todas essas luzes coloridas ao redor são feitas por equipamentos de iluminação. Em cada luminária inteligente, pelo menos um processador mais dois ou três processadores no controle de luz - outros 20 processadores no plus. O som também não pode prescindir do processamento digital - equalizadores, amplificadores e mais 10. Na parede, penduram duas TVs - outra dúzia de núcleos. Bem, não se esqueça do sofisticado laptop para DJ - acho que podemos adicionar mais 15 núcleos ...

E ainda mais no mesmo espírito ... O conhecimento de Alla está caminhando para o final inevitável. Como regra, ainda consigo dizer que os programas para esses processadores contêm milhões de linhas de código. Que cada um desses processadores execute esses programas a uma velocidade média de um milhão a um bilhão de operações por segundo. Que todos os processadores estejam conectados por canais de alta velocidade e, em um instante, cada um troque informações entre si, igual a uma boa biblioteca.

Então digo que os microprocessadores são os únicos amigos e ajudantes de uma pessoa, com a possível exceção de um cachorro e um cavalo. Alla finalmente conclui por si mesma que sou louca e, com uma desculpa plausível, desaparece da minha vida.

Eu não sou louco. Eu sou um programador que está tentando ser sincero.

Por que sou programador


Gostei desde a infância. E eu nem pensei que você poderia se tornar outra pessoa. Não houve experiências dolorosas sobre vocação, preferências profissionais, carreira futura e ganhos possíveis. Era como se um riacho invisível me pegasse gentilmente e fosse confortável nele. Esse fluxo era tão amplo que o movimento quase não era sentido, embora agora seja claro que, graças a ele, superei uma enorme distância acadêmica, que por si só não podia ser dominada.

Só agora você está começando a entender mais ou menos a origem dessa estranha corrente. Naquele momento, a civilização estava dando uma grande virada. Talvez o mais importante em sua história.

Mais recentemente, a humanidade adorou o espaço. Meu pai se tornou engenheiro de aviação. Todos os olhos estavam fixos no céu. Todos captaram os sinais dos satélites e os sorrisos dos astronautas. Lunokhods, vôos de sondas para Vênus e Marte. A nebulosa de Andrômeda Efremov. Nuvens de Magalhães de Lem.

E então de repente algo aconteceu. O mesmo Lem escreve para a Cyberiad. Todo mundo está falando sobre inteligência artificial, robôs. De repente, um homem parou de olhar para o céu e começou a se conectar com canais de gigabit. Do nada, um novo cosmos interior começou a aparecer, absorvendo recursos humanos e, o mais importante, cativando mentes e corações. Esse cosmos acabou não sendo menos. E o mais importante, era muito mais acessível. Era um espaço pessoal para todos.

Há mais uma razão. Todos os adolescentes são instintivamente atraídos pelo poder. Todo mundo tem seu próprio entendimento de força, então alguém vai para a seção de karatê, alguém vai para gangues de rua, alguém compra uma motocicleta.

Eu senti que o poder real está oculto na TI. Pressionando os botões na ordem correta e observando cuidadosamente os pontos no monitor, ALL pode ser alterado.

Sobre poder


Normalmente, sentia o poder da TI inconscientemente, mas havia um momento em que o sentia de forma clara, clara e inequívoca. Isso aconteceu quando comprei o primeiro MP3 player.

Em nossa juventude, ouvimos Tsoi. Nós o ouvimos empolgados, sempre e em toda parte. Na maior parte, essas eram gravações. Os gravadores soviéticos mastigavam sem piedade e apagavam a fita magnética. Copiamos um do outro, de bobinas, de outras fitas, de onde poderíamos. Não havia outro caminho. Como você cuidadosamente não salva o filme, a cada reprodução, a voz de Tsoi ficava cada vez pior.

E agora, muitos anos depois, baixei o arquivo para um MP3 player e Choi parecia uma qualidade com a qual só poderíamos sonhar antes. E o mais importante - com o tempo, essa gravação digital nunca poderia ser pior NUNCA. Este pensamento passou pela minha mente desde os primeiros acordes que ouvi. Soprou algo eterno.

As idéias da imortalidade digital têm mais de um dia. E os problemas enfrentados pela ciência nesse caminho também são bastante marcados. É necessário ter um poder de computação selvagem, mesmo para os padrões atuais. É necessário resolver os problemas de autoconsciência, eros, motivação, livre arbítrio. Não se deve tropeçar nos paradoxos da clonagem e na sala chinesa. Tudo isso é incrivelmente difícil, quase impossível. Mas as apostas são insanamente, impossivelmente altas.

Enquanto a TI ainda está flertando com medicina e biologia. Há uma competição falsa, que tornará a vida de uma pessoa mais longa e feliz. Enquanto a medicina está liderando. Implantes, próteses, células-tronco, hormônios, farmacologia. Bilhões são gastos em tudo isso. A TI de bom grado coloca um ombro e serve. Mas após a digitalização bem-sucedida da mente, todas essas florestas ridículas para o castelo de cristal da consciência desaparecerão em um instante. Farmácias, hospitais, motéis e laboratórios desaparecerão. Assim como após o advento dos MP3 players, a fita e o vinil desapareceram em massa.

E Choi nunca mais morrerá.

Sobre a fundação


A TI tem poder, mas ela mesma não fica no ar. A TI conta com os fundamentos da ciência. Eu acho que as únicas pessoas a quem os programadores devem se ajoelhar humildemente são matemáticos e físicos. Esses são caras de verdade. Eles se tornam realidade e lutam pelos segredos da natureza, não pela vida, mas pela morte.

:) Mas nós, confiavelmente protegidos dos perigos desta batalha pela barreira de nossa própria ignorância colossal, podemos apenas adivinhar que tipo de entulho está acontecendo lá. Podemos adivinhar em instalações militares, como túneis em anel de vários quilômetros e tanques subterrâneos de mil toneladas. De acordo com fórmulas sangrentas estranhas, às vezes voando por trás de uma cerca, e semelhante a feitiços antigos. E em livros de não ficção escritos claramente chapados em minutos de uma breve trégua.

Então, em um desses livros, li que cada vez mais físicos estão se afastando da interpretação de Copenhague da mecânica quântica, usando o conceito de colapso da função de onda. E ele aceita a chamada interpretação de Everett, implicando o surgimento de universos paralelos. Para uma pessoa comum, isso significa o seguinte.

Por exemplo, você gosta de Galya e Zina. E você não é capaz de fazer uma escolha com quem viver a vida. De acordo com as últimas tendências físicas, você não precisa se desesperar. E você tem que entrar furtivamente no laboratório mais próximo e, em segredo absoluto, sob a proteção da noite, fazer o experimento clássico de passar um elétron por duas fendas lá. Ao mesmo tempo, diante do retrato de Schrödinger, faça o terrível juramento de que, se o elétron passar pela fenda A, você fará uma oferta a Gale e, se for pela fenda B, então a Zine. De acordo com as mais recentes premissas científicas, é isso que acontecerá. No momento do experimento, o Universo se dividirá e, em um deles, você registrará a passagem de um elétron através do slot A e, consequentemente, viverá uma vida com Galya. Em outro universo, você registra a passagem de um elétron pelo espaço B e vive uma vida com Zina.

Além disso, você não será preso por poligamia, já que a polícia, o tribunal e a promotoria também irão se separar e não perceberão nada.

Por tudo isso, qualquer um pode ter um teto. Mas não com programadores. Porque o programador vê nisso o princípio de operação da função usual fork do sistema (), que é executada em seu computador 10.000 vezes por dia. Além disso, agora ficou na moda usar qualquer coisa, de códigos-fonte a clusters. Você não gosta de algo. Você disse crack-pex-forc. E você já vive em seu próprio universo pessoal. E faça o que quiser lá.

Caros matemáticos e físicos. Não olhes para nós. Talvez estejamos um dos poucos que realmente o entendem. Que seja um pouco à sua maneira, mas também profundamente. E com a mesma admiração pelo grande mistério.

Sobre a compreensão


Programadores geralmente são pessoas inteligentes. E eles podem entender quase tudo. Até as coisas mais estranhas.

A natureza das pessoas é incompreensível. A princípio, eles inventam coisas inexistentes por tédio. Então, com um esforço gigantesco e incrível da mente, ele se força a acreditar na realidade dessas coisas inexistentes. Então manifestar os milagres do heroísmo vive pelas leis desses mundos estranhos.

Quase sempre, essas alucinações são coletivas. Para apoiar a ilusão, as pessoas se reúnem para festivais, reformas, conferências, role-playing games e outras reuniões. Sob essas condições, a mente finalmente se rende, aceita as regras do jogo e capta um burburinho de novos quebra-cabeças e paradoxos lógicos.

Os programadores geralmente são as mesmas pessoas e, portanto, se comportam exatamente da mesma forma, com uma pequena exceção. Não precisamos fazer esses esforços titânicos pela imaginação, visualização e fé no que está acontecendo. Todo o mal que só pode aparecer na imaginação das pessoas realmente existe nos sistemas de software. Além disso, não apenas existe, mas também realiza serviço comunitário. É difícil chegar a um conceito que os programadores não usem como metáfora para criar código de programa.

Anjos, demônios, átomos, objetivos, mestres, escravos, mestres, assistentes, filas, listas, fadas, escritores, leitores, semáforos, guardiões, construtores, destróieres, construtores, destruidores, fábricas, mundos, geradores, iteradores, estruturas de estruturas, estruturas de array, ponteiros inteligentes, ponteiros estúpidos, coletores de lixo, coletores de lixo, portas, pontos de conexão, threads, threads, pais, filhos, eventos, assinantes desses eventos, diretórios, decoradores, controladores, modelos, analisadores, formulários, aranhas, ouvintes, padrões, codificadores, decodificadores, criptografadores, decodificadores, bloqueios, teclas, abertas, fechadas, divididas, sinais, ruídos, stubs, tampas, substitutos, substitutos, ...

Isso é chamado de Programação Orientada a Objetos.

Sobre um bom software


Em geral, sou fã de OOP. De alguma forma, aconteceu que, quando comecei a programar, era a abordagem mais avançada. Agora eles me garantem constantemente que é muito melhor despejar todo o estado do programa em um cadáver imutável e depois zombar dele com a ajuda de funções puras. Algo me impede de acreditar que essa é a melhor abordagem. Pelo menos para sistemas bastante complexos. Embora talvez eu esteja ficando velho, e essas pessoas estejam certas. Porque eles têm coisas realmente bonitas.

Quando você fala sobre qualidade em TI, conclui que não se trata de plataformas, tecnologias e linguagens de programação. É sobre pessoas. E o fato de que todas as grandes e belas coisas são feitas sozinhas e em silêncio, e todas as feias e podres são obtidas como resultado de votação e consenso.

Quando vejo um produto bom e confiável, por trás dele sempre vejo a imagem de apenas uma pessoa, mas torcendo pela causa de todo o coração. Pode ser um programador, engenheiro, cientista, gerente ou até mesmo o chefe e o proprietário da empresa. À noite, ele não consegue adormecer, pensando na solução mais eficaz e bonita para o problema. Então, cansado dos pensamentos, adormece ansiosamente, mas depois de algum tempo ele pula da cama e escreve algo em um pedaço de papel. E assim aparece uma ideia que muda o mundo.

Assim, surgiu a linguagem Pascal, quando Wirth e seu assistente escreveram o compilador Pascal NO MESMO PASCAL E MÃOS aplicaram a fonte do compilador a si próprio. Aqui está uma história verdadeiramente mística, como a de Munchausen, que se puxou pelos cabelos do pântano.

Ou a história da linguagem Java, que mudou para sempre o cenário da programação, assumiu todo o horror do desenvolvimento da empresa e ainda carrega tudo isso com honra. Tudo começou com o fato de vários engenheiros da Sun terem sido levados a uma caneta com estúpidas soluções técnicas e organizacionais.

Bons exemplos podem ser encontrados no software de aplicativo e nos gadgets que oferecem uma sensação de beleza e confiabilidade. Eu tive um Nokia-E51 por algum tempo. Não vou dizer mais nada, quem sabe, ele entenderá. Tiro o chapéu para quem não dormiu à noite e fez essa coisa boa.

Sobre software ruim


Quando vejo um produto ruim, com erros e desajeitado, às vezes me parece Junior, dando os primeiros passos na programação real, e talvez não inspirado pela idéia de que tudo precisa ser testado. Às vezes - um gerente de produto iniciante, cuja primeira panqueca sai irregular devido à falta de experiência. Todas essas são situações normais. Mas muito mais frequentemente, uma imagem completamente diferente aparece no olho interno.

Parece que ele ainda não é um número financeiro antigo, mas cansado, que, para algumas dívidas, conseguiu uma empresa de TI. As coisas nesta empresa são assim e daquilo, nem trêmulas nem rolam. E então ele se senta em um restaurante de elite, pega um palito de dente em implantes e pensa devagar - é possível extrair algumas centenas de milhares de dólares dessa imunda imunda ou ainda trocá-lo por uma participação em uma cadeia de hipermercados. Ele decide assumir o controle e envia uma carta de seu smartphone, com o objetivo de aumentar os lucros, reduzir custos e tudo mais.

Os gerentes dessa empresa se apresentam, dividindo heroicamente e prosaicamente um orçamento com vazamento, pressionando um contra o outro o que já aconteceu ou é apenas uma suposta responsabilidade.

Em geral, engenheiros bons e talentosos parecem estar, mas muito cansados ​​de prazos e recados sem sentido de ninguém.

Existem tantas pessoas que se fundem em uma massa cinzenta e sem rosto que passa à velocidade de um avião. Mas se eu quiser, posso parar esse filme maluco em qualquer quadro, olhar nos olhos de todos e perguntar ... O que perguntar, eu não sei. E quem sou eu para perguntar.

Afinal, eu sou um deles.

Parar de programar?


Mas mesmo às vezes se encontrando em condições muito desconfortáveis, os programadores não desistem de programar. Portanto, além de deprimente nas empresas, há ALGO. E isso é algo que eles não trocam por nada.

Meus amigos geralmente se oferecem para relaxar na natureza e convidam para caçar ou pescar. Como posso rir disso, mas eles continuam insistindo.

Michael, isso é legal. Depois de capturar as primeiras lanças, você não será arrastado para longe da vara de pescar. Você simplesmente não entende o que é emoção de caça!

Eu apenas entendo Eles NÃO ENTENDEM o que está acontecendo quase todos os dias na tela do meu computador.

Encontrar um bug em um programa é como caçar uma fera. Mas apenas muito mais interessante. A diferença é que a busca de um animal eletrônico ocorre no espaço dos estados e é muito maior que uma floresta comum. Mesmo um kilobyte de memória pode produzir espaço maior que o número de átomos no universo. E o programa pode conter até vários milhões de linhas. Só economiza que o cérebro humano tenha aproximadamente o mesmo espaço de estados. Eles convergem em batalha - o cérebro e o código do programa, e quem vencerá nunca é conhecido.

Mas o cérebro não está sozinho - ele tem aliados. O primeiro aliado são as ferramentas.Programas que ajudam a pesquisar, depurar e quebrar outros programas. O arsenal do caçador eletrônico tem tudo isso. E armadilhas onde o jogo imprudente pode chegar. E os radares que vasculham o espaço dos estados em busca de presas. E uma peneira fina através da qual você pode peneirar todos os grãos de areia na floresta eletrônica. E um cronômetro que mede quanto tempo e que animal gasta sem força. E um descobridor que verá até as faixas mais fracas nos campos da memória eletrônica. E um bando de galgos virtuais, encurralando o erro.

O segundo aliado são as regras que todos os programadores são obrigados a seguir, mesmo os hackers mais maliciosos. Você pode criar uma mina que não funcione de acordo com as regras, o que enganará até o sapador mais experiente, mas então há uma alta probabilidade de você explodir. Tudo segue as regras e sempre - caso contrário, você não pode sobreviver neste mundo complexo. Isso é ridículo, mas existem até regras para criptografar informações, e não apenas regras, mas padrões - e todas as seguem!

Escusado será dizer que um mar de adrenalina e não eletrônico, mas o real aparece no sangue de um caçador. Você ultrapassa um erro e o encurrala. Em seguida, você corrige alguns caracteres e o programa funciona corretamente. Código malicioso destruído. O erro que atormenta as pessoas há tanto tempo foi corrigido. Este é um sentimento incomparável de vitória ... É uma alegria real, pura e sem fim ...

Noite sem Alla


Sonhando e sorrindo para o vazio, tropeço nos degraus da escada. Por trás das ilusões, a estrada da boate parecia muito curta. A varanda cheira úmida. Entro no apartamento e sento no meio-fio no corredor. É uma pena que nada tenha acontecido com Alla. Eu gostei dela. Mas talvez a encontremos novamente.

Por alguma razão, de repente ficou triste. A insanidade no trabalho em seu desenvolvimento regular assumiu outra dimensão, cuja existência muitos nem sequer suspeitavam. E recentemente, com dinheiro, de alguma forma não é muito. Pode largar tudo, começar a vender janelas de plástico e viver sem essas preocupações?

O olhar cai no computador, que é ligeiramente visível através da porta. Ele não espera essa traição. Inferno !!! Enquanto eu tiver dinheiro suficiente para um pedaço de pão e um gole de vinho, e meu computador para eletricidade e atualização, essa mágica continuará.

Sento-me em uma cadeira e tomo alguns goles da garrafa. Eu pressiono o botão liga / desliga. O calor se espalha pelas minhas veias e pulsa pelos barramentos dos computadores. Agora estamos com o computador - um. Em alunos ligeiramente ampliados, as mensagens do carregador do sistema são refletidas. Vamos !!!

E eu caio em um espaço pessoal sem fim ...

(para ser continuado)

Source: https://habr.com/ru/post/pt425421/


All Articles