Voltar para a comunidade

ABAP & ABAP

Lars Hvam mora em Copenhague, na Dinamarca, e adora a linguagem de programação ABAP. Depois de montarmos a trilha de ABAP no Exercism, conversamos com Lars e batemos um papo descontraído sobre como ele foi parar no mercado de tech.

Assista no Youtube
DURAÇÃO 31MINUTOS

Jonathan: Olá e bem-vindos todos. Meu nome é Jonathan. Sou o apresentador do podcast do Exercism, e hoje estou acompanhado do Lars. Onde você está baseado atualmente, Lars?

Lars: Estou em Copenhague, na Dinamarca.

Jonathan: Legal. Bacana. Então um pouco ao norte do Equador. Eu estou bem ao sul do Equador neste momento. É muito bom ter você no programa de hoje. Muito bom que pudemos ter esta conversa. E vou direto ao assunto. Para o programa desta semana. Então, Lars, conte um pouco sobre você. Como você entrou na tecnologia? Como você chegou onde está atualmente?

Lars: Vamos ver, onde estou atualmente, como conversamos, Copenhague. Mas trabalho principalmente com consultoria na área de customização de código SAP, e como cheguei lá? Como sempre, é uma longa história. Mas é tecnologia. Então vamos falar de trajetórias na tecnologia. Quando eu era jovem, isso foi há muito tempo. Eu e meu gêmeo idêntico. Eu tenho meu...

Jonathan: Você tem um gêmeo idêntico, então como eu sei que não é o seu outro gêmeo que está falando hoje?

Lars: ...fazendo coisas da Microsoft.

Jonathan: Ok. Assustador.

Lars: ...coisas. Então é só perguntar a ele qualquer coisa sobre SAP. Aí ele não pode me perguntar nada sobre Microsoft. Aí eu não sei responder.

Jonathan: Sim.

Lars: Mas quando éramos jovens, começamos a jogar no Commodore 64, e lembro de fazer programação bem básica na linguagem BASIC no Commodore, numa tela de TV em preto e branco, bem pequena. Passava horas fazendo isso, depois um computador novo, fazendo QBasic no 386 e no 486. Atualizando para oito megabytes de memória, o que era o topo na época. Sim, isso era QBasic, fazendo programação em Pascal. Depois entrei no Windows. E fiz muito Visual Basic. Sim, eu gosto de Visual Basic. Isso foi nos anos noventa, e eventualmente comecei a usar Linux. E sim. Para quem lembra dos bons velhos tempos do Linux, havia o site themes.org, onde era possível baixar temas para diferentes gerenciadores de janelas. Uma coisa bem Linux. E acho que foi a primeira vez que me envolvi de verdade com a comunidade, passando tempo construindo aquele site em PHP. Sim,

Jonathan: Ok. Uau.

Lars: Me deu uns créditos. Visual Basic, fazendo programação de doutorado. Sim.

Jonathan: Ok. Legal. Legal. Sim, essa é boa.

Lars: E eventualmente fui para a universidade, fiz um mestrado em ciência da computação e fazia programação aleatória, e aleatoriamente consegui um pequeno emprego porque eu... sim, precisava de dinheiro para pagar o aluguel. E fazendo outras programações. Isso ficou comigo pelos últimos 15 anos de desenvolvimento de código customizado SAP ABAP. E sim. Então, próxima pergunta. Por quê? Por que isso permaneceu? Porque ABAP não é uma linguagem muito moderna agora. É muito parecida com COBOL, mas também é uma linguagem de programação muito interessante porque é muito ampla, tem muitas instruções diferentes e muitas coisas diferentes podem dar errado.

Jonathan: Ok. Então há muita resolução de problemas e muitos tipos de depuração. É essa a natureza disso?

Lars: Sim. Costumo dizer que faço esse tipo de trabalho porque gosto muito de depurar e há muito código antigo para depurar, certo? Semana passada mesmo eu estava consertando um programa antigo de 20 anos. Eu fiquei tipo, ok, legal, legal. E sempre, quando se olha para um programa antigo, mesmo fazendo isso há muitos anos, há... algumas coisas novas e antigas para aprender, alguns recursos antigos que foram usados e ainda rodam no dia a dia, certo?

Jonathan: Ok, então você entrou há 15 anos. Na mesma empresa, ou começou aprendendo ABAP com SAP e se mudou para empresas diferentes?

Lars: Agora, agora tenho minha própria empresa fazendo coisas divertidas e eu defino o quê. E também tenho feito muita consultoria para várias empresas de consultoria e também trabalhei como estagiário. Então agora estou fazendo freelance e conseguindo alguns trabalhos freelance para poder pagar o aluguel de novo. Isso é importante.

Jonathan: Sim. Parece um tema comum na sua vida, que é pagar. Pagar o aluguel,

Lars: sim.

Jonathan: encontrar maneiras de pagar.

Lars: E ainda assim passar muito tempo em projetos open source, se desviar para algo desafiador.

Jonathan: Sim. Então você tem uma equipe de pessoas com quem trabalha como parte do seu negócio, ou você é bem independente nesse sentido? Como é o dia a dia ou a semana com o seu trabalho?

Lars: Estou sozinho e tenho minha própria empresa. Falando de colaboração, eu colaboro com o cliente, certo? E no espaço open source, também tenho muitos bons amigos na comunidade open source que ajudam com algumas coisas de vez em quando. E eu os ajudo com algumas coisas aqui e ali, então é uma situação ganha-ganha.

Jonathan: Sim. Então você é totalmente responsável, eu acho, por construir a trilha ABAP no Exercism, se não me engano, ou você tem um alto nível de envolvimento. Na construção dela. Fale um pouco sobre isso.

Lars: Sim. A trilha ABAP foi criada por vários membros da comunidade. E esses são principalmente membros da comunidade dos projetos open source ABAP. E claro, somos um pouco especiais, então temos que construir nosso próprio cliente de testes do zero, mas isso é história para outro dia.

Jonathan: Sim. Sim. Sim.

Lars: Isso é em casa. Então temos várias pessoas contribuindo para o mapa do Exercism. No entanto, a trilha ABAP é um pouco especial, certo? Porque é uma linguagem de programação que na verdade é bem difícil de iniciar, porque você não pode simplesmente baixar um runtime JavaScript como o Node ou um runtime Python. Você não pode fazer isso muito facilmente em ABAP. A última maneira de fazer isso era com um contêiner Docker com 60... que tinha 16 gigabytes, pelo que me lembro.

Jonathan: 16

Lars: Você precisa de pelo menos 32 gigabytes de memória para rodar isso. E não há muitas pessoas que tenham essa infraestrutura facilmente disponível. E também rodar nesse tipo de infraestrutura seria impossível com... sei lá. A infraestrutura por trás do ecossistema, mas as trilhas, são só um monte de pequenos contêineres Docker que iniciam, rodam o código, verificam o exercício e depois desligam de novo.

Jonathan: Sim.

Lars: E iniciar um contêiner Docker desse tamanho pode facilmente levar 10 minutos.

Jonathan: Não. Não. Claro.

Lars: Então precisávamos de uma abordagem diferente e, felizmente, eu estava trabalhando na minha ferramenta de análise estática. Comecei alguns anos atrás e ela tem árvores de sintaxe abstrata. Então pegamos esse código e transformamos em código JavaScript e depois rodamos no Node e damos o feedback no... Então dizemos que não é a linguagem oficial que suportamos como ABAP e também ABAP é um pouco especial, como mencionei algumas vezes antes, que não há uma descrição oficial realmente boa da linguagem ABAP como tal. Não como outras linguagens que foram projetadas. Acho que ABAP basicamente evoluiu para o que é desde os anos setenta ou quando quer que tenha começado. Então vamos inventando conforme avançamos.

Jonathan: Então que tipo de desafios isso cria no seu trabalho do dia a dia? Acho que porque você tem que ser capaz de olhar para um problema com olhos novos todos os dias e tentar entrar na mente da pessoa que o desenvolveu, porque você tem muito pouca... é correto dizer que você tem muito pouca documentação para consultar, então você...

Lars: Há muita documentação, mas não é, é só em texto e nem sempre é 100% correta.

Jonathan: Ok.

Lars: O jeito correto é testar o código e ver o que ele realmente faz, certo? Claro que há muitas coisas na linguagem que estão corretas. Mas também, quando as pessoas trabalham e constroem coisas em um sistema SAP, normalmente somos vários desenvolvedores em um sistema, e esse único sistema tem mais de 200 milhões de linhas de código e mais de 80.000 tabelas de banco de dados,

Jonathan: Nossa.

Lars: O que é bom. Eu gosto disso. E especialmente se você constrói tudo muito junto, você consegue uma análise estática muito legal que pode amarrar as coisas, enquanto se você faz uma arquitetura da Microsoft, tudo é frouxamente acoplado. Há prós e contras nos dois.

Jonathan: Então você prefere a configuração monolítica, seria um comentário justo ou é um pouco, você... o que você preferir,

Lars: Sim. Eu prefiro mono, mas sim. Ok. Então com seu Basic P, prefere gerenciar redes. Sim. Legal. Isso é

Jonathan: Código legado. Sim. Todo esse tipo de coisa que já existe há um tempo.

Lars: Sim. Eu gosto de coisas antigas. É bem divertido, certo? Costumo dizer que quando... quando eu ficar velho, quero ir para programação PL/I ou APL, algumas dessas linguagens de programação. Não sei, provavelmente posso fazer isso no M também, certo? Em algum...

Jonathan: Provavelmente, temos tudo nos bastidores a essa altura. Vamos ver o que temos. ABL, você disse APL ou ABL?

Lars: APL? Ah, não tem trilha de APL, uma...

Jonathan: Ah, talvez haja uma oportunidade.

Lars: PL/I? Não tem PL/I. Ok. Ok. Essas são duas trilhas que alguém na comunidade

Jonathan: Ah, você está se inscrevendo agora, isso é

Lars: não. Então como é o dia a dia, por exemplo, da trilha ABAP? A trilha ABAP é uma aproximação do que é correto, e sempre tentamos avançar um passo para chegar a 100%. Então temos pessoas com soluções corretas que simplesmente não funcionam no Exercism

Jonathan: Ok.

Lars: por causa dessa estranha pilha de testes que montei. Mas passo a passo, dia a dia, começa a funcionar. E vamos adicionando mais e mais testes unitários ao backend e ao runner do Exercism e tudo mais. E então, esperançosamente, algum dia estará 100% perfeito, mas

Jonathan: Quem sabe. Quem sabe o que virá daí. Então agora, com quantos clientes você costuma trabalhar durante a semana? É um ou dois ou três, ou pode chegar a 10?

Lars: Só um ou dois.

Jonathan: Ok. E isso tem sido uma coisa contínua por um tempo.

Lars: Sim. Sim. Faço consultoria há muitos anos.

Jonathan: E é principalmente focado em Copenhague ou durante a pandemia você teve oportunidade de trabalhar remotamente para mais longe? Qual é o seu tipo, você viaja muito ou,

Lars: Viajei muito na minha juventude, mas agora costumo só ficar em casa fazendo trabalho remoto.

Jonathan: Ok.

Lars: É

Jonathan: Sim. Você mantém sua cafeteira quente.

Lars: Sim.

Jonathan: Mantendo as coisas funcionando. Então, por último, você disse que cresceu programando desde muito jovem e se interessou por isso desde cedo. Em algum momento a programação fez sentido para você? Houve um momento em que você sentiu que clicou, ou foi algo que você naturalmente entendeu desde jovem? Como você descreveria isso?

Lars: Ah, não sei. Acho que sempre entendi programação, certo?

Jonathan: Sim.

Lars: mas normalmente, nos meus primeiros anos, sempre foi programação procedural. Lembro que em algum momento na universidade houve uma introdução à programação funcional e à programação lógica. E são dois paradigmas completamente diferentes de fazer programação. E existe o Prolog, pelo que sei. Sim, há uma trilha de Prolog. Então, para quem ainda não experimentou programação lógica, recomendo tentar programar em Prolog, e Standard ML provavelmente também está lá para descobrir o que você realmente pensou, nova programação procedural, mas também há muitas outras coisas que você pode fazer. Então sim, aprendo coisas novas todos os dias, então não clicou.

Jonathan: Você ainda está lutando com tudo? Não, é interessante porque muita da minha experiência tem sido. Que eu tenho que me imergir em algo como uma linguagem. E então, de repente, os conceitos que são estrangeiros, e da noite para o dia algo muda. E é quase tipo, ah, uau, isso faz todo o sentido. E algumas das outras pessoas com quem falei no podcast disseram: sim, elas têm uma experiência semelhante. E eu fiquei tipo, como você fez isso? E elas tipo, ah, uma garota disse: ah, eu simplesmente imagino um programa como uma história e tenho as funções dos personagens e todo esse tipo de coisa. Então isso foi muito interessante. Mas como você decidiu que o ABAP era a coisa em que você ia se focar? Foi só um ah, isso paga o aluguel, ou foi um eu realmente gosto disso, prefiro isso a JavaScript ou qualquer outra coisa e

Lars: Entrar na programação sempre começa por acaso, certo? Fazendo um estilo básico do Raymond, fazendo ABAP e começando por acaso, e isso se destacou como um tipo de linguagem de programação muito desafiadora porque é muito grande em instruções diferentes, como Java e JavaScript não têm muitas instruções. Tem uma grande biblioteca. Comparado a isso, em ABAP. Temos muitas coisas de biblioteca como parte da linguagem de programação, enquanto em JavaScript, você chama diferentes usos, usa o mesmo tipo de construção de linguagem para chamar as bibliotecas.

Jonathan: Ok.

Lars: Sim.

Jonathan: Ok. Então foi quase como se você tivesse descoberto ABAP quase por acaso, e então, olhando para frente agora nos próximos 10, 10 anos, não sei se você quer pensar tão longe, mas. Como serão os próximos cinco a 10 anos para você em termos de programação e negócios? Você tem alguma noção de, ah, é aqui que eu gostaria de estar, é isso que eu gostaria de estar fazendo,

Lars: Ah, você nunca sabe realmente, certo? Então continuo as coisas enquanto acho que são divertidas, certo? Se não forem mais divertidas, largo e faço outra coisa.

Jonathan: Ok, então essa é

Lars: a estratégia, certo? Ele diz, tem que ser divertido para funcionar no dia a dia, na minha opinião. Provavelmente ainda estará ABAP no menu em 10 anos, eu acho. E isso se resume um pouco a isso. Sou bem exigente quando se trata de linguagens de programação e tecnologia. Então faço ABAP e JavaScript/TypeScript, e tento não entrar em nenhuma outra linguagem.

Jonathan: Sim. Ok. Mas se eu dissesse: ok, Lars, você tem que largar ABAP e JavaScript agora e pegar outra linguagem de programação. Você tem alguma ideia de qual gostaria? Sim, eu faço isso.

Lars: Sim, nós já falamos de APL,

Jonathan: Ok. Sim.

Lars: Uma linguagem muito legal, provavelmente mais velha que eu, não sei, perto. APL e MPL/I, acho que ambas são mais velhas que ABAP.

Jonathan: Ok. Uau. Então por que essas, por interesse? O que te intriga nelas?

Lars: APL eu ainda não experimentei de verdade, mas há alguns simuladores na internet que você pode testar. É um monte de letras gregas onde tudo é matriz, multiplicação. Não sei, parece muito estranho e meio bobo. Mas é isso que também o torna divertido, certo? Tem que ser algum tipo de desafio. E PL/I é só... algo diferente. Não sei.

Jonathan: Algo misterioso e um pouco

Lars: Sim. Na verdade não. Gosto de ir para as coisas clássicas antigas e não para todas as coisas novas e chiques. Então eu provavelmente poderia dizer Rust, não. Provavelmente vou entrar no Rust algum dia, mas não é realmente só porque preciso. Não é porque quero.

Jonathan: Sim. E você percebe que o número de pessoas usando ABAP está diminuindo ou aumentando, ou tem havido um ressurgimento no interesse pela linguagem ultimamente? Qual é a sua perspectiva sobre isso?

Lars: Sim, é bem difícil, e como ABAP são esses grandes sistemas que rodam internamente em grandes colaborações multinacionais, é bem difícil obter números públicos reais e corretos sobre quais são os números. Mas o boato é que a idade dos desenvolvedores que sabem isso de cor está aumentando e se aproximando cada vez mais de sair do mercado.

Jonathan: Ok.

Lars: Tipo COBOL, certo? É uma linguagem antiga, e os jovens não acham muito divertida, certo? Então são pessoas velhas como eu, mas é também por isso que realmente criamos a trilha ABAP, certo? Queremos trazer mais jovens para a linguagem e o sistema do Exercism é uma boa plataforma para experimentar muitas coisas diferentes. É muito fácil começar. Sincronizar, clicar, fazer login. Começar a fazer código. Pronto.

Jonathan: Sim. E você notou que tem visto muitas pessoas fazendo a trilha? A trilha ABAP?

Lars: Sim. Temos quase 5.000 estudantes agora.

Jonathan: Uau, isso é incrível. Sim.

Lars: Sim, então aqui em setembro houve um setembro. Um desafio de código da comunidade organizado pelos SAP developer advocates. Tentando trazer pessoas para a plataforma, experimentando alguns exercícios com o que chamamos de tabelas internas. Em outras linguagens. Normalmente são arrays, mas chamamos de tabelas internas, e tabelas internas aninhadas, que normalmente são chamadas de array de arrays, em outras linguagens de programação.

Jonathan: Sim.

Lars: Então conseguimos muitos estudantes novos com isso. E também recebemos muito feedback e bugs e issues no GitHub. E isso também é uma coisa à qual não estamos realmente acostumados no mundo ABAP. Colaborar entre várias organizações. Na verdade, compartilhar algum código no GitHub não é algo muito típico na comunidade.

Jonathan: Isso é só porque as pessoas, tem sido muito isolado em termos de uma empresa fazendo suas coisas e outra empresa fazendo as suas. E então os desenvolvedores não conversam muito. Eles estão em seu contexto específico e o compartilhamento e a colaboração são um pouco menores, ou por que é isso?

Lars: É também devido à natureza de um sistema SAP porque é um sistema padrão. Ele pode fazer qualquer coisa por você, então normalmente quando ajudo clientes é porque o cliente precisa de algo especial.

Jonathan: Sim.

Lars: E é algo especial de acordo com o que torna o negócio deles único. Então provavelmente é algo que outros clientes não podem usar e também não usarão porque aquele cliente é único de uma forma diferente de outro cliente. Mas há uma comunidade open source evoluindo e compartilhando código, mas normalmente no nível de utilitários. Utilitários, coisas como logging e tratamento de erros ou algo assim. Mas vai chegar lá. Só leva mais de cinco anos no mundo SAP para qualquer coisa.

Jonathan: Sim. Só para tudo começar a ganhar tração. Então essa foi uma das coisas que perguntamos a todos que vêm ao programa, e eu, você pode ter visto o documento que te enviei, mas nós. Costumamos perguntar às pessoas qual é a opinião ou perspectiva que você manteria e não abriria mão no cenário da tecnologia? Ou normalmente, qual é a única colina em que você morreria no cenário da tecnologia para garantir que aquilo permaneça para sempre e sempre, e pode ser tão boba quanto eu sempre escrevo minha lógica depois do meu CSS se você for do front-end. Ou pode ser realmente trivial ou algo como eu nunca vou usar GitHub, por exemplo. Pode ser, mas você tem que ser capaz de argumentar ou apresentar seu ponto de forma bem pensada. Mas qual é aquela única coisa, aquela única opinião que você.

Lars: Uma. Uma opinião.

Jonathan: Ok. Posso te dar duas. Posso te dar duas. Sim. Três. Ok. Três. Você pode ter três opiniões porque eu sei que pessoas técnicas não têm muitas opiniões, normalmente.

Lars: Sim. Acho que se as pessoas me descrevessem, às vezes tenho opiniões muito fortes sobre isso e sim. Então uma das minhas principais opiniões é dizer não, isso não vai ser possível. Faça outra coisa que se encaixe melhor com a solução e a tecnologia. Então diga não ao uso de ferramentas como Jenkins. Diga não ao Jenkins, é uma das ferramentas que gosto de mencionar que ninguém deveria usar, certo?

Jonathan: Por quê? Por quê? Por que isso? Qual é a razão disso?

Lars: é muito mais fácil ter seus pipelines perto do código. Então se você... eu simplesmente considero obsoleto.

Jonathan: Ok. Então é como um nível de abstração que não precisa ser adicionado se você sabe o que está fazendo.

Lars: Sim. E há outras ferramentas que fazem as coisas melhor. Outra ferramenta que gosto de pular é o Eclipse. No mundo Java, se você olhar cinco, 10 anos atrás, o Eclipse costumava ser usado para compilar código Java. Do meu ponto de vista, chegou ao ponto em que o Eclipse nem é mais usado para compilar código Java. Normalmente são algumas grandes aplicações empresariais e coisas usadas no Eclipse e construindo Eclipse que não era realmente a intenção no começo. Não há muitas outras maneiras de fazer isso e muitas outras ferramentas para escolher. Então o Eclipse foi eclipsado.

Jonathan: Ok. Sim, gostei. E vou te dar mais uma opinião. Qual é a outra, a terceira opinião,

Lars: Espaço em branco, ou é espaço em branco. Então um dos meus projetos paralelos é análise estática para ABAP. E na verdade em ABAP, temos muitas instruções diferentes, muitas maneiras diferentes de fazer indentação e maiúsculas e minúsculas e notação húngara, tudo. Sim. Ter espaços duplos em algum lugar de um texto é algo que realmente me irrita.

Jonathan: Isso é só porque atrapalha tudo e é um pesadelo

Lars: Só te tira do trilho e da leitura, tipo ler um texto ou um trecho de código. Ah, tem dois espaços aqui entre... isso me pega de surpresa.

Jonathan: Ok, ok, então deixe-me, então Jenkins, veja seus pipelines. Deixe perto do código. Eclipse. Desnecessário. E espaço duplo. Essas são as três opiniões que te dei, que variam em gravidade, parece. Não, isso é muito legal. Não, isso é ótimo. E sim, acho que você conseguiu lutar, defender bem seu ponto nessas.

Lars: E também, falando de integração contínua, não transforme integração contínua em espera contínua.

Jonathan: Ok, então você faz push de um código, e ele fica lá esperando para ser PR por uma... É isso que você

Lars: receber o feedback rápido para o desenvolvedor em vez de fazê-lo esperar uma hora, duas horas por qualquer feedback.

Jonathan: Ok. Então é porque sistemicamente, sistematicamente é uma proteção contra falhas? É por isso que está lá? É só para pausar para que as coisas possam ser revisadas ou por que

Lars: Só arquitetura ruim.

Jonathan: Sim. Ok. Ok. Interessante. Ok, então última pergunta de hoje. Espero que você tenha se divertido até agora, mas queria te perguntar isso. Que recomendações você tem para a comunidade do Exercism para esta semana? Se você pudesse recomendar uma coisa para a comunidade, o que seria? Poderia ser qualquer coisa. Comer sushi. Pular num rio, o que for

Lars: Claro, experimente a trilha. Isso provavelmente

Jonathan: Vou te dar a de graça. Essa é de graça. Essa é de graça, ok.

Lars: Mas claro, como mencionei algumas vezes antes, lembre-se de se divertir. Tem que ser divertido. Então às vezes, mesmo que haja algumas ideias estranhas, se for divertido, experimente. Veja o que acontece. Isso também é o que costumo dizer ao criar projetos open source. Apenas mergulhe, veja se é divertido ou não. Experimente. Se não funcionar, tudo bem. Então pule para a próxima festa ou projeto open source ou linguagem.

Jonathan: Sim.

Lars: Porque há tantas coisas para fazer no mundo da tecnologia e fora dele que não vale muito a pena se você estiver entediado o tempo todo.

Jonathan: Sim, não, claro. Não, isso é uma boa recomendação. Então, quem estiver aí, se divirta no espaço da tecnologia. Por último, muito obrigado pelo seu tempo hoje. Agradeço muito. Fique por aqui enquanto eu, quando eu parar a gravação, vamos só falar no final. Mas eu só queria dizer um enorme obrigado. E quem estiver aí interessado, vá conferir a trilha ABAP. Vá rodar alguns exercícios. Veja como você se sai. E se você quer aprender algo que existe há um tempo e está voltando a crescer em importância e influência, digamos, porque sustenta muitas plataformas multinacionais centrais. Pessoas que você reconheceria, empresas que você reconheceria. Se você quer aprender o caminho das pedras, então ABAP definitivamente vale a pena conferir. Lars, vamos colocar todos os links do programa que você tiver na descrição abaixo quando chegarmos lá. Mas enquanto isso, muito obrigado e falo com você em um segundo. Mas sim, obrigado novamente. Agradeço.

Mais histórias da nossa comunidade

Ouça, aprenda e se inspire com os membros da nossa comunidade.