Code Smells e Refatoração em Elixir, com Lucas Vegi (UFV)
from Fronteiras da Engenharia de Software
1h 16m 18s
A entrevista com Lucas Vége, professor da Universidade Federal de Viçosa, aborda a pesquisa sobre engenharia de software aplicada à programação funcional, com foco no Elixir. A equipe desenvolveu catálogos de "cold smells" (sinais de problemas de código) e refatorações, validados por mais de 180 desenvolvedores de diversas experiências e origens. Os dados foram coletados por meio de revisão da literatura cinza, interação com a comunidade e mineração de repositórios no GitHub. A pesquisa resultou em dois artigos publicados em revistas de renome, como a *IEEE Software*, evidenciando seu impacto acadêmico. A equipe também promove o evento SE4FP, o primeiro workshop brasileiro de engenharia de software para programação funcional, que ocorrerá no CBSoft 2025 em Recife. O evento recebe trabalhos em linguagens funcionais e multi-paradigma, reconhecendo a influência funcional em diversas linguagens. Os pesquisadores destacam que a criação de ferramentas automatizadas para detecção e refatoração de "cold smells" é uma direção futura central, com projetos em andamento. A tese foi bem definida, com escopo restrito ao modelo do livro de Fáulé, mas deixa abertas áreas como correlações entre sinais de problemas e estratégias de refatoração. A pesquisa reflete a necessidade de ampliar o conhecimento na área, promovendo uma comunidade de pesquisadores e desenvolvedores no Brasil.
o nosso foco, ele acabou ficando muito restrito, o escopo da TESI, né, em T, e em, digamos,
replicar o formato do livro do Faule, né.
Olá pessoal, eu sou Adolfo Neto, professor da Universidade Tecnológica Federal do Paraná,
o TFPR, Campos Curitiba, e este é um episódio dos podcastes fronteiros da engenheria de
Softra, um podcast para reflectir sobre o presente e o futuro da engenheria de Softra,
e alixir em foco o podcast da comunidade brasileira delixir.
Os dois fazem parte da Rede Emilhas de Podcastes.
Hoje estou aqui com o Adaz dos Corrositos do Alixir em foco, Zoi Peçanha, todo bem, Zoi?
Olá, ok mistas, e Olá, engenheiros e engeiras.
Então, Zoi, vamos dar as boas vindas ao professor Lucas Vége, nosso entrevistado de hoje,
tudo bem-lucas? Obrigado por ter aceito o nosso convite.
Tudo, João é pessoal, eu agradeço novamente a eu convite, já é a minha segunda oportunidade
aqui de participar do elixir em foco, a primeira do fronteira de engenheria de Softra, que
para mim é uma honra, eu sou ouvinte do podcast, já, enfim, aconpei diversas episódios
de pessoas ilustres da área, e hoje está tendo a oportunidade de vir conversar um pouquinho
com vocês, então, estou obrigada pelo convite.
Não, o tema da conversa de hoje será CODESMELS e refatoração em Alixir, eu vou fazer
uma breve apresentação aqui do Lucas, Lucas Vége é professor no Departamento de Informática
da Universidade Federal de Vissosa, o FV, eu estava lembrando que quando eu era criança
assistia muito o Globo Rural na TV aberta, né, e sempre tinha "Ah, uma dúvida de alguém,
algum lugar do Brasil", e eu vou falar aqui com um especialista da UFV, né?
Nós travam campos bonitos, assim, bem verde, e mais lá tem informática também.
Então, o Lucas lá acordou no laboratório de desenvolvimento para dispositivos móveis,
lá BD2M, é doutora em ciência da computação pela Universidade Federal de Minas Gerais,
o FMG, agora em 2024, é seus interesses de pesquisa, branje engenharia de Softra, reúso
de Softra, qualidade de Softra, programação para dispositivos móveis, programação
senão, o desenvolvimento web, assistimento de formação e perfis de metadados.
E Lucas teve sua tese doutorado, selecionada como uma das melhores do Brasil pela sociedade
brasileiro de computação, e está participando do concurso de tese e de certações de entidade
que vai acontecer durante o Congresso da SBC.
Comecei agora em julho, em Macio, um dos organizadores desse sub-evento, né, dessa parte
do Congresso da SBC, Oléonato Fernandes, que aqui é a equipe do fronteiros da engenharia
de Softra, e uma coisa relevante para o pessoal aqui que faz pesquisa de engenharia de Softra,
que dois artigos resultantes da tese foram publicados na revista em Pírcao Softra
em Gineiro, em que é uma excelente revista na área.
Lucas já participou conosco como ele já disse do episódio do Alexandre Foco, junto com
o Marco Tulio Valente, e foi sobre o seu trabalho com CODESMELS, o Marco Tulio Valente, por
se só, já esteve aqui no fronteiros, e ministrou, não, e o Lucas ministrou Palésia, não é
vento, que a gente organizou lá em Fortaleza, Alexandre Fortaleza 2023, e o seu trabalho
foi motivação para o Refactor X, que foi abordado em episódio com Gabriel Pereira no Elixir
em Foco. Lucas, você tem algo a complementar nessa sua apresentação?
Não, eu acho que foi uma apresentação bem completa, né, quando você disse, eu sou professor
aqui da UFV, estou com uma efetiva aqui desde 2015, então, eu completei 10 anos do FV
em Janeiro, já tive um período anterior como professor substituto, fui professor substituto
aqui por dois anos, então, é isso, foi uma apresentação bem completa.
Então hoje a gente vai falar sobre CODESMELS e Refatoração Elixir, por que que esse tema
é relevante?
CODESMELS e Refatorações para Elixir. Então, da verdade a dofua, esse tema, ele foi
uma das possibilidades que a gente tinha lá no início da nossa tese, né, desde o início
do meu professor marco-túlio, a gente tinha uma motivação muito forte de revisitar
algum tópico de engenharia de software aplicado à programação funcional, né, porque,
se a gente for analisar o contexto geral das pesquisas engenharia de software, geralmente
elas são aplicadas no paradigma de programação que é mais usado na indústria, naquele momento.
Então, basicamente desde a década de 80, programação orientada objeto, meio que dita os rumos
aí dos códigos que estão em produção, mas recentemente muitas linguagens de programação
funcional estão ficando relevantes na indústria. E a gente tem o Elixir, tem o Clojor,
F#, dentre outros. Só que quando a gente fala olhar para a área de pesquisa, de engenharia
de software aplicado essas projetas dessas desparadigma, basicamente não existe. Então,
é uma área totalmente disponível para ser desbravada. E a gente queria de uma certa forma
desbravar algum tópico de engenharia de software aplicada à programação funcional. Então,
qualidade de software é um dos tópicos que chama muita atenção para mim e também
do professor Marco Tullo. E dentro dessa subiária a gente tem codos mels, a gente tem refatorações,
e basicamente não existiu trabalhos de codos mels para linguagens funcionais, para refatorações
existiam alguns, para Erlang, Rask, e o Camp, mas também muito insipientes. E o Elixir,
o Elixir é uma linguagem funcional desenvolvida por um brasileiro. Então, isso chama bastante
atenção e basicamente não existiu pesquisa de qualidade de software para essa linguagem. Então,
contando todas essas variáveis, a gente queria revisitar algum tópico de engenharia de software para
a programação funcional. Poucos trabalhos de qualidade de software na área que é algo que
não se chamava atenção. E para a linguagem brasileira que está ficando muito relevante no mercado,
nenhum trabalho a gente resolveu explorar. Afinal de contas, todo desenvolvedor de qualquer
linguagem, tem uma preocupação em tornar o seu código mais qualificado, tornar mais fácil de
manutenir, mais fácil de testar, mais fácil de estender, e a presença de contas mels pode
prejudicar esse tipo de coisa. Pro programador Elixir, a gente imaginava que não seria diferente.
E quando você tem esse tipo de problema, digamos assim, um código subiótico, uma das formas de
melhorar a qualidade d, é por meio de estratégias de refatoração. Então, eu acho que uma coisa foi
levando a outra, e a gente chegou nessa pesquisa aí que eu jugo que foi assim um ponto importante
para novas pesquisas que irão suceder dentro dessa subiária de area de software.
Essa é uma discussão bem interessante, porque, como você falou, a pesquisa, na verdade, o mercado
todo vai acabar gerando ali uma história do ovo da galinha com o paradigma que está sendo
usado, mais usado durante o mercado. Então, acaba tendo mais pesquisa sobre isso, mas a produção
de conteúdo no geral mesmo, dentro da academia e fora da academia. E é interessante porque,
quando a gente começa a estudar programação, a gente começa aí, geralmente pelo padrão
na imperativo, e eu acabei fazendo o caminho inverso, digamos assim, e eu comecei pelo
funcionário. E foi bem interessante, porque realmente eu senti a gente falta de conteúdo,
principalmente de qualidade de software como refatoração, e até padrões de projeto,
não como regras, porque é um pouco delicada essa conversa, mas padrões enquanto formas
já conhecidas de resolver um problema que está acontecendo, seja um problema de regras
de negócio, ou mesmo de arquitetura, ou, enfim, como você vai construir um software, isso
sempre foi um descaso dentro do paradigma funcional. Então, é interessante ver que nos últimos
anos isso não tira que está sendo revertido, mas o conteúdo tem sido mais alimentado dentro
dos paradigmas. E aí, dentro desse contexto da software esquisa, você poderia nos dar
alguns exemplos práticos de problemas no mundo real, né, que você já tem enfrentado
o que você saiba, o que você já tem escutado, que podem ser resolvidos através de edificação
de cor desmelos? Ah, interessante. Desde que a gente começou a investigação, a gente
acabou tendo muita interação com empresas, inclusive a nossa pesquisa, ela foi parcialmente
financiada por três empresas, né, pela FIM-BITS, pela ribase e pela DESTBIT do Valin. E
nesse processo a gente acabava interagindo com essas equipes e também pessoas da comunidade
que vêm de outras empresas. E a gente escutava, olha, desde que seu catálogo foi publicado,
a gente começou a aplicar ele aqui no nosso time e a gente percebeu que alguns desses cor
dos meios de fato estavam correndo aqui. Então, a gente já está se preocupando em buscar
removê-los ou eventualmente tomar precauções pra que eles não sejam inseridos, né. Então,
Então eu teria dificuldade de dar alguns exemplos específicos, né, de um ou outro
coldo-smeldo do catálogo, porque o nosso catálogo de coldo-smelos tem 35 coldo-smelos.
Esses 35 coldos-smelos são classificados entre colos-smelos tradicionais, que são aqueles
que vem lá do fala, né, do livro dele tradicional, mas que também fazem sentido em elíxia.
E tem colos-smelos também específicos pra elíxia, que a gente categorizou entre low-level
concerns e design related, né?
Os low-level concerns são aqueles que às vezes eles aparecem em instâncias muito pequenas
do código.
Às vezes é algo que impacta só um pedaço de uma função, um cabeçalho de uma função,
né.
Já os design related, eles são espalhados por múlticos módulos ou múltiplas funções.
Já o catálogo de refatorações são 82 refatorações, é um número ainda superior, que a
gente quebrou lá em quatro categorias, né, os específicos prelíxicos, os específicos
prelângue, os mais genéricos à nível de paradigma, né, que são os refatorações funcionais
e também as refatorações tradicionais, são aquelas do fala que se aplicam aqui.
Então assim, não fugindo da resposta, né, da sua pergunta, eu sei que desde que a gente
publicou, de fato, a gente vem tendo esse feedback positivo da comunidade de que isso
está sendo usado, né.
E eu acho que isso um pouco reflete nos números que a gente teve das respostas dos nossos
save.
Eu não sei se o Adolfo vai levantar essa questão em alguma outra pergunta, mas já aproveita
a oportunidade.
Eu falo aqui, esses dois catálogos, eles foram amplamente validados pela comunidade
desenvolvedores.
Se eu não tô enganado, o catálogo de Coltsmels, ele tem um save em torno de 180 desenvolvedores
responderam, e o catálogo de refatorações em torno de 150.
E nos comentários que a gente recebia, ali, a gente tinha esse tipo de feedback.
Olha, a gente está usando aqui, está sendo útil para isso, para que, então, de fato,
eu acho que ele tem um impacto real.
O que é desejável, né, porque lá no laboratório do professor Marco Tullvalente, que foi
o meu orientador de doutorado, ele trabalha com engenharia de software aplicada.
Então, a gente sempre busca fazer as investigações e ter uma proximidade com a indústria e ver
o impacto real daquele encódigo de produção, e com essa nossa pesquisa não foi diferente.
Essa reação da comunidade foi realmente bem positiva, e eu até contou, assim, uma experiência
de desenvolvedora, né, vejo isso se refletindo também no dia a dia.
Eu não lembro, assim, imagina o que tem antes de dar uma inspiração, mas tem, hoje em
dia, a gente tem, lá, no computação oficial do Elixir, também, a parte de Antipatrones.
Então, isso acaba espalhando bastante essa ideia de cortisol, também.
Eu lembro que eu vi algum projeto também de alguém que estava tentando fazer reagras do
crido, que é basicamente um analisador de código estático, né, para você lhe forçar
algumas reagras, não só de estilo, mas também de semântica, também de padrão, e eu
vi que alguém estava tentando aplicar esses alguns padrões do catálogo, né, nessas
reagras.
Então, é bem interessante esse movimento da comunidade também, né.
Sim, inclusive, eu não sei se eu estou queimando alargada aqui, Adolfo, mas a Zormi deu oportunidade
de falar sobre uma questão, né, a continuidade dessa pesquisa nossa, a gente deixou muitos pontos
em aberto, como toda a tese de doutorado sempre tem muitos trabalhos futuros, né, e um deles
é exatamente pegar esses catálogos e automatizá-los, né, ter uma ferramenta para a detecção
automática de cor dos mels, ter uma ferramenta robusta de refatoração automática, e atualmente
eu estou com um projeto submetido digital universal da FAPMIG, que é a fundação de apoia
pesquisa aqui do estado de Minas Gerais, ainda não tenho a resposta, se vai se aceitam
não, mas assim, a minha pretensão é que o próximo passo da minha pesquisa aqui orientando
os alunos, não FVC, é exatamente em torno da criação dessas ferramentas, para operacionalizar
digamos assim esses catálogos, a gente já tem iniciativa lá do Gabriel para automatizar
as refatorações, né, com o VFX, só que o VFX não me engano, ele automatiza, eu acho
que em torno de 20 refatorações do nosso catálogo que tem 82, então a gente tem ainda
muita margem para a ampliação disso, e como essas ferramentas são de código aberto, o
credo, por exemplo, ele é de código aberto, eventualmente a gente pretende adaptá-lo
para detectar cor dos mels, ou então criar uma ferramenta nova, né, o refator X também
aberto, então a gente pode expandir ele, e a ideia é que algum momento essas ferramentas
elas sejam integradas, né, para pensando assim em um cenário de uso, o programador ele está
desenvolvendo, implementando um colo de mel, ele é identificado, uma vez identificado,
a ferramenta já iria sugerir quais estratégias de refatoração aplicar, para remover aquele
colo de mel específico, e eventualmente a poderia até refatorar, então a gente tem muita
coisa para investigar, né, dentro em torno disso, possivelmente a aplicação de algum modelo
de "Ah, enfim, mas a gente está pretender no caminhar essa direção".
Sim, sim, é, eu lembro que a gente conversou também com o gabel no episódio sobre, talvez
eu até integra isso com o novo LSP da linguagem, claro, tem algumas refatorações ali, alguns
padros, mas que talvez precisam de uma semande com um pouco maior, com um texto maior
do que o LSP consegue dar, então talvez ia ser de uma boa, mas, enfim, ele chegou até
dar um pequeno spoiler, mas é bem interessante ter esse ambiente mais integrado ali, de
você conseguir não só escrever cogemos também, você forçar de uma qualidade, né.
Bom, então vamos a próxima pergunta e Lucas, não, não nos incomode, pode falando assim
o que vem a cabeça, a gente se adapta aqui.
A próxima pergunta, as próximas vão ser sobre alguns artigos seus luques, claro que
porque os artigos são em colaboração e eu acho que todos os artigos que você está aqui
foram em colaboração com o marco-túlio, né, porque foram parte do seu doutorado.
A gente já conversou sobre o artigo Maus-Cheiros de Código em Elixir, resultados iniciais
de uma revisão da literatura cinzenta, foi lá no episódio do Elixir em Foco, e eu
sempre desplica aqui para os ouvintes, que a gente vale os nomes dos artigos em português,
mas geralmente eles são inglês e na descrição do episódio a gente deixa o título em português,
o título em inglês e o link para o artigo.
E um ano depois, você e o marco-túlio, um ano depois, lá desse primeiro artigo, você
e o marco-túlio publicaram compreendendo Maus-Cheiros de Código na Linguagem Funcional
Elixir, na empíruica, o software engineering, que especificamente para a comunidade de Elixir
eu acho foi meio que um marco, já existiam vários artigos sobre Elixir, mesmo a Erlangue,
mas eu não lembro de nenhum artigo sobre Erlangue na empíruica, o software engineering,
ou numa revista do nível da empíruica, o software engineering, especificamente do nível,
vamos falar assim, uma ótima revista e específica para engenharia de software, mas
provavelmente para outras linguagens já tinham acontecido, mas para Elixir e Erlangue,
para quem não é da comunidade Elixir, Elixir faz parte do ecossistema de Erlangue, tanto
que existe a fundação do ecossistema de Erlangue, o qual Elixir faz parte.
Explica para a gente como foi o processo para chegar esse catálogo de codos-mails em Elixir,
que vocês apresentaram, neste artigo, a gente já comentou até um pouco sobre isso do ponto
de vista do Valin, na entrevista com Valin, mas queria saber o seu ponto de vista, como
é que vocês fizeram para chegar esse catálogo de codos-mails em Elixir?
Fá, legal, o que acontece? Esse paper que você tinha citado da ICPC, que foi o primeiro,
nosso, que era resultado preliminares, que a gente até falou que no episódio 15 do Elixir
em foco, se eu não estou enganado, ele foi o ponto de partida, onde basicamente a gente
fez uma revisão da literatura cinza para tentar prospectar esses codos-mails, porque
a gente fez a revisão da literatura cinza só falar brevemente, porque pode ser que
alguns ouvintes não assistiram o episódio anterior, né? A gente optou inicialmente por
fazer uma revisão da literatura cinza, exatamente porque não existiam publicações científicas
a respeito de codos-mails, não apenas para Elixir, mas também para a programação
funcional. Então, como a gente não poderia revisar, digamos, essa literatura revisada por
pares, né, publicações científicas, a gente optou por ir em conteúdos gerados pela comunidade
de desenvolvedores. Então, na literatura cinza a gente tem, por exemplo, postagem de blog
e discussões de forno, tipos de tech overflow, Elixir forno, sites em geral, podcasts,
vídeos do YouTube, então a gente pegou esse conteúdo de fontes, digamos assim, e prospectamos
uma parte preliminar do nosso catálogo, eu confesso que eu não me lembro de cabeça,
qual é o número de codos-mails do nosso paper da ICPC, mas ele era inferior aos 35 da versão
final do catálogo. E a gente publicou, né, na ICPC, na trilha era da
da ECPC, que é uma trilha ser um menino de early results, que são pesquisas em andamento.
E isso gerou um certo borgurinho na comunidade, a gente percebeu que aquilo foi positivo,
o Valin, a época, conheceu a nossa pesquisa de maneira orgânica, publicou no Twitter, e aí foi um bom.
A comunidade veio em massa, o repositorio do GitHub Hub, onde o Catálogo foi disponibilizado,
ele foi adquirindo muitas estrelas, e dá ali para frente o projeto movida.
Só que a gente calecia ainda de, digamos assim, uma validação mais forte desse Catálogo.
E aí, nisso veio o paper da Indírico, né?
Então, no paper da Indírico, além dos dados que a gente tinha prospectado na literatura cinza,
vindo os lados do paper da ECPC, a gente complementou isso, tentando buscar mais cold smells
por meio de interações diretas, qual a comunidade de desenvolvedores? Então, a gente tinha o nosso Catálogo
preliminar lá no GitHub Hub, a gente fez uma chamada divulgação científica nas mídias sociais,
e os desenvolvedores começaram a interagir com a gente por meio de ixos, publicoestes,
que a gente validava, o Catálogo foi ganhando mais cor, e por fim, a gente aplicou um processo de mineração de repositorio escódico,
onde, basicamente, a gente minerou todos os repositorios elixir disponíveis no GitHub Hub e públicos, né?
Por meio de uma quere de busca, que tinha alguns termos chaves específicos,
e nisso, a gente chegou nesse Catálogo de 35 cold smells.
Só que assim, a gente tinha o Catálogo, mas a gente ainda queria, de fato, validá-los.
Por mais que esses dados tivessem vindos da comunidade, a gente precisava de uma validação,
e explícita, digamos, assim, dos desenvolvedores.
Então, a gente promoveu uma aplicação de questionários, que, se eu não tenho ganado, a gente conseguiu 181 respostos,
vindas de desenvolvedores, assim, com um background diverso, alguns menos experientes, a maioria mais experiente,
tanto em relação a quantidade de tempo trabalhando com elixir,
quanto também em relação a quantidade de projetos diferentes.
Porque a gente fez questão de diferenciar essas duas coisas, porque o que acontece?
Às vezes, você tem uma pessoa que trabalha com elixir há seis anos, uma pessoa já experiente,
só que ela trabalhou em um projeto.
Então, naturalmente, ela pode ter vícios daquele projeto.
Quando a pessoa trabalha em múltiplos projetos diferentes, ela está em equipes diferentes,
naturalmente ela tende até menos viés nesse tipo de avaliação. Então, por isso que a gente levou em consideração esses dois aspectos,
ficou bem heterogênio mesmo, e assim, foi bem representativa.
A gente teve homens, mulheres, e pessoas, eu não vou lembrar a quantidade de países agora.
Eu acho que foi 37, enfim, a minha memória já está me ajudando nesses números específicos,
mas eu sei que a gente teve países representando todos os continentes.
Então, eu acho que foi em torno de 30 poucos países.
Então, a gente teve uma amostragem, de fato, bem significativa, que dá bastante segurança,
da gente validar essa pesquisa, e que resultou numa publicação da empírica,
como você falou, é uma revista top 3 aí na área de engenharia de software, qualiza 1,
e nos deixou assim, bastante satisfeitos.
Eu acho que foi o momento que a gente percebeu, assim, é, a gente está realmente no caminho certo.
A gente acertou ponto aqui no tema de pesquisa, e eu acho que isso vai dar caldo para um bom tempo.
E assim, eu continuo esperando.
Boa. Pra além dos codes meus, não sei, uma tourilha publicaram dois artigos sobre elefatorações,
também, que fazem parte do catálogo.
O primeiro é o sistema rumo ao catálogo de refatorações para a Lichy na International Conferences
no Software Maintenance and Evolution, em 2023.
E o segundo é entendendo refatorações na linguagem funcional, a Lichy, na empírica
software engineering, em 2025.
Você pode nos explicar, assim, qual foi o processo para chegar nesse catálogo de refatorações.
Ele seguiu o mesmo método dos codes meus.
Enfim, a gente chegou a comentar mais ou menos disso sobre na entrevista com o Gabriel do
Revitorex, então seria interessante ver o seu ponto de vista também, né?
Entendi. Na verdade, assim, a gente meio que repetiu a receita de bolo da parte de
esmeos, só que com algumas adaptações.
Por exemplo, a gente optou novamente por ter uma publicação em uma trilha de resultados
preliminares. Então, esse paper da ICSME é, ele foi na trilha NIA, que é uma trilha
equivalente a era da ICPC, onde você tem papers ali que são trabalhos em andamento.
Então, a primeira versão do nosso catálogo de refatorações foi publicada dessa forma,
e depois ele evoluiu para um diurno na empírica software engineering de novo, com o catálogo
de arrobusto e validade, só que aí, falando das pequenas variações que a gente teve,
no paper da ICSME é, de 2023, a gente não começou com uma revisão da literatura cinza,
igual a gente fez para esmerços, a gente começou com uma revisão sistemática da literatura
científica. E por quê? Porque a gente não repetiu a mesma coisa.
Porque de antimão, a gente já sabia que para refatorações, diferentemente de esbelos,
já existiam algumas investigações no contexto de programação funcional.
Então, partindo do preço posto, que a fontes de informação revisadas por pares tendem
a ter informações de mais qualidade, mais confiáveis, a gente resolve começar por uma
revisão sistemática da literatura científica. Então, o paper da ICSME é, basicamente,
uma primeira versão da nossa revisão sistemática da literatura, onde a gente conseguiu
prospectar, e eu acho que em torno de 50 refatorações que eram aplicadas em outras
linguagens, mas que também eram compatíveis com elix, a gente teve esse trabalho, digamos,
assim, de avaliar a compatibilidade, mas naturalmente nessa primeira versão do catálogo,
a gente não tinha refatorações específicas para elix, porque não existiam publicações,
investigações sobre refatorações para elix. Então, a gente tinha das quatro categorias
da versão final do catálogo, a gente acabou tendo três delas nessa primeira versão.
A gente tinha refatorações tradicionais, a gente tinha refatorações funcionais e refatorações
para elangue. O Simon Thompson, que é conhecido na nossa área, basicamente a maioria desses
trabalhos que vêm de refatorações funcionais, vêm do grupo do Simon Thompson ou grupos que,
digamos, ficam orbitando o grupo do Simon Thompson. Eles têm trabalhos para a Haskell,
têm trabalhos para elangue e têm trabalhos para o campo. Eles têm umas ferramentas, inclusive,
de refatoração para essas linguagens. Então, boa parte dos papers que a gente estraiu nessa primeira
parte veio da li, veio dessa bolha, digamos, assim. Só que, na segunda versão, a gente queria
a mesma coisa, a gente queria um catálogo mais robusto, a gente queria ter coisas específicas para
elix se elas existissem e a gente queria avaliar. Então, a partir do feedback que a gente recebeu
da publicação da do S.S.M.E. e também da minha defesa de proposta de TESI, que eu tinha feito nessa
altura, eu acho que eu defendi minha proposta de TESI uma semana antes de ir para Colômbia
apresentar o paper da S.S.M.E. A gente resolveu, então, refazir a nossa revisão da literatura do zero,
tendo uma quere de busca mais robusta, que envolvesse também linguagens multparadigma, né? E a gente
poderia citar, como exemplo, Swift, Kotlin, Rust, dentre outras, então a gente ficou com a quere de busca
bem mais robusta. Isso nos trouxe um volume de papers bem maior e o catálogo naturalmente ganhou mais coisas, né?
E além de refazer essa revisão da literatura científica, a gente fez sim uma revisão da literatura cinza,
um segundo momento, para buscar esse conteúdo da comunidade, fizemos também o processo de mineração de
repositórios de código, da mesma maneira que a gente fez lá para Ismels, e fizemos um novo survey, para a validação.
E aí, esse survey teve uma participação similar, em torno de 150 desenvolvedores, numa mostragem bem
heterogênia também, gente muito experiente, gente mais milício, gente que trabalha em múltiplos projetos,
e se eu não me engano, a gente passou de 40 países e novamente representando todos os continentes.
Então, isso acabou resultando no segundo paper de Intelica, o que é bem recente, né? A publicação
saiu no dia da divulgação do episódio do Gabriel no elixin foco.
Bem interessante essa parte de compatibilidade também da Kiru que vocês acabaram deixando mais robusta com outros
linguagens de multi paradigma também, porque ele tem uma peculiaridade bem grande, assim,
errangue também, no caso como fonte originaia, né? E acaba ficando distante, assim, das linguagens,
mais. clássicas digamos assim quando a gente pensou no parar de uma funcionar como você falou
"rasca" ou "quem" ou até mesmo o "lispe", né? Então, dentre essas peculiaridades
esses dias ele xí, talvez for focando mais em concorrência ou para o elismo,
tem tipo, quantos você acha que essa tira mais robusta como com outros linguagens
muito paradigmas, aumentou tipo qual foi a um efeito de fato nesse aumento da quantidade
de refuturações no catálogo. Se acho que foi mais expressivo, ou seja, que tendo
ou olhando mais para a literatura mais clássica, já tinham um volume mais expressivo antes
e aí tipo foi só uma questão de revinamento com um disparantigma ou faz parte como um todo,
né? Entendi, essa pergunta é bem interessante. Embora não tem os números exatos de cabeça,
curiosamente a nossa segunda versão da revisão sistemática da literatura, por mais
que a gente tenha tido uma quere mais robusta envolvendo mais linguagens, o impacto que ela
teve no crescimento do catálogo foi muito pequeno, né? A gente teve assim, vou colocar em
ordem de grandeza para um correu risco de rar, a gente teve no máximo umas cinco refuturações
de novas vindas dessa segunda versão da revisão da literatura cinza. A maioria desses 30
poucos estratégias de refuturação que agregaram o catálogo nesse segundo momento, vieram
de fato da revisão da literatura cinza e da mineração de repositórios de código. Então
eu acredito que isso mostra que a nossa primeira versão da quere de busca ela já era bem
robusta, né? E também poderia mostrar outras coisas, eu acho que a gente poderia extrapolar
que se indica em que pesquisas para linguagens multiparadigma, envolvendo refuturação e
cor dos mels, possivelmente é um campo promissor, porque a gente tem pouca publicação ali,
senão a gente teria recuperado um grande volume nesse segundo momento, poderia ter um impacto
maior no catálogo, então sim é um tema que depois a gente pode até fazer um gancho, mas
na frente aí na entrevista quando a gente for falar do nosso evento, né? Mas eu acho
que isso mostra claramente esse aspecto, né? O impacto foi pequeno o catálogo cresceu
por meio das outras fontes, principalmente. E exatamente essa seria a que eu queria
deixar uma discutida. Bom, a gente acabou já chegando a falar que provavelmente vão
nascer trabalhos futuros, mas eu queria entender também se, tipo, dentro da tese, da sua tese de
doutorado, você chegou a deixar alguma coisa fora de lá, ou os trabalhos futuros tendem a ser
só para, digamos assim, complementar coisas que ficaram, assuntos ficaram abertos na tese
de doutorado que já existindo. Tem de, na verdade, assim, a gente teve um grande trabalho
da tese de fechar o nosso escopo, né? Porque quando você começa numa pesquisa que vai,
que vai dando certo, digamos assim, as ideias vão aflorando, as sugestões vão chegando,
e se você não tiver o devido cuidado, você acaba criando um Frankenstein, né, na sua
pesquisa tentando agregar todos aquelas questões. Então o nosso foco, ele acabou ficando muito
restrito no escopo da tese, né, em té e indiga, vamos replicar o formato do livro do Fáulé,
né? Que é o livro do Fáulé, lá de refatorações, o tradicional lá de 99? O livro do Fáulé, ele
tem um catálogo de 22 contes mels, ele tem um catálogo de 72 refatorações, e ele cria
correlações entre esses dois catálogos, da seguinte maneira, o code Israel X pode ser
removido pelas refatorações YZ e algo outra coisa, né? Já a refatoração tal, ela pode ser
usada para remover esse e esse e aquele com o dos mel. Então o livro do Fáulé, ele gira em torno disso,
então na minha tese, eu tentei replicar exatamente a mesma coisa, a gente tem um catálogo de 35 contes mels,
o primeiro capitulo de pesquisa, digamos assim, da tese, a gente tem um catálogo de refatorações,
um capitulo de pesquisa da tese, e a gente tem a correlação entre esses catálogos, mostrando
qual o esmel pode ser retirado por qual refatoração, inclusive por quais sequências de refatorações,
a gente levantou algumas refatorações compostas que podem ser usadas. Então olha, para o
cor dos mel A, eu posso usar essa essa e aquela refatorações nessa ordem que eu vou remover ele,
então a tese ela ficou dentro desse escopro, digamos assim, né? De replicar o Fáulé para
manter esse específico, muito tanto a gente deixou como alguns trabalhos futuros, essa questão de
criação das ferramentas para automatizar isso, que vai ser o nosso próximo passo, mas a gente tem
várias outras questões, por exemplo, a gente pode investigar a correlação entre os mels,
né? Existem algumas pesquisas, quando o professor Marcelo Maia da Federal de Oberlandia conversou aqui
com a dofo no fronteira de Harriet Soft, ele falou um pouco sobre tipo pesquisa, a gente tem para
para os esmelos tradicionais do Fáulé, algumas pesquisas que dizem algo nesse sentido, olha, se eu
tenho três colds mels detectados aqui na minha base, qual que eu devo retirar primeiro?
Tem algumas correlações que dizem o seguinte, ó, quando você tira esse colds mel aqui, geralmente
você tira por tabelo esses outros dois aqui, então, quando você tem um colds mel que a retirada dele
pode impactar na retirada de outros também, é melhor você retirar esse primeiro, né? Só que esse
tipo de correlação a gente não tem, né? A gente na nossa pesquisa, a gente levantou, por exemplo, a
questão da relevância dos esmelos, então quanto mais relevante, mais prejudicial ele é na base, melhor
você tirar ele primeiro, isso é um aspecto, mas a gente ainda não tem essa correlação entre os
esmelos, isso é algo para se investigar, qual o esmel que quando retirado acaba retirando outros
também, né? Então, isso é um ponto, a gente tem algumas outras questões relacionadas a testes
mels, que é algo que não veio no nosso escopo, né? Esmelos específicos para testes, né?
Eles existem para a elíxia, eles existem para funcionais, é algo que pode ser investigado, então
depois imagino que o Adolfo vai deixar no link, na descrição, o Ateze completa, eu recomendo assim
que quem estiver interessado no tema, quiser investigar algo nessa área, deu uma lida na parte de
trabalhos futuros da Ateze, porque a gente deixou uma sessão bem robusta, tem bastante coisa para
se fazer dentro da área ainda e a gente foi tente continuar a fazer. Muito bom, então com isso a gente
chega na parte 4 do nosso podcast, nosso episódio, outros temas, e a gente vai começar justamente
com isso, né? Que você teve a ideia e convidou a mim e ao marco do ilho valente, para organizar
mos o First World Shop, um software engineering for functional program, esse eu vou traduzir, o primeiro
shop para engenheiro de software para a programação funcional, mas a sigla tem que ser inglês porque
esse não não faz sentido, SE4FP, então vai acontecer no CBSoft, que vai acontecer em setembro,
em Recife, então explica para a gente porque este evento é importante, convidou as pessoas a
submeter em seus trabalhos? Entendi, antes de eu compartilhar a minha tela aqui com vocês para fazer um
pequeno pitch sobre o evento, eu vou falar assim da motivação, né, principal, a gente percebeu
que com a nossa pesquisa, no doutorado, em que existe, de fato, talvez esteja exagerando, mas nem tanto,
a gente tem quase que uma engenharia de software inteira para ser revisitada em torno do paradigma
funcional, a gente trabalhou um pouco com um aspecto de qualidade de software e mesmo assim uma
subiária de qualidade software, que são os meus e refatorações, mas assim, se a gente for parar
a pensar métricas usadas para detectar com os meus, isso é, inclusive, é um outro trabalho futuro que a gente
ele estula, né, a gente tem alguns trabalhos, né, que tem métricas orientadas ao objeto usadas para
detectar com os meus, aquelas métricas elas fazem sentido para detectar os meus em um sistema
funcional? Pode ser que sim, pode ser que não, a gente tem que investigar para saber, será que existem
métricas específicas para esse paradigma? É bem provável que sim, mas isso ainda não foi investigado, né, e teste, né,
qualquer, as técnicas de teste aplicadas para um código orientado objeto, elas são as mesmas, né, dentro de um código
funcional, né, as arquiteturas, as arquiteturas que são mais usadas por um código orientado objeto, será que elas são
necessariamente as melhores por código funcional? Então, a gente percebeu que a gente tem uma engenharia de software inteira para
revisitar, né, em torno desse paradigma, e o ideal é que a gente conseguir criar uma comunidade de pesquisadores e
torno disso para a gente fazer a área crescer. Então, como um do sub-produço da TES veio a proposta do SIFOR FP, que foi
aceito lá no no cbsoft desse ano, então eu vou compartilhar a minha tela aqui para fazer um pequeno pitch para
contextualizar melhor os objetivos desse evento, quando que ele vai ser, como é que são os artigos que a gente pretende
popular, enfim, vou compartilhar aqui com vocês. Então, como a gente já adiantou, né, ele
Esse é o primeiro workshop de engenharia de software aplicado à programação funcional no Brasil.
Então é uma iniciativa pionera que a gente está proponando sobre o produto da minha tese e o que vem a CN, esse evento.
É um evento sem fins lucrativos, ele é organizado por pesquisadores brasileiros,
mas especificamente organizado por mim pelo Adolfo e pelo professor Marc Kutur,
que foi o meu orientador no doutorado, e ele vai acontecer como um evento satélite dentro do CBSoft 2025,
que pro ouvinte do fronteira de engenharia de software, eu imagino que isso não seja uma novidade,
mas pro ouvinte do elixinfoca talvez sim, o CBSoft, ele é um dos maiores eventos de software da América Latina.
Então ali a gente tem, dentro dele, acontecendo o impósio brasileiro de engenharia de software, o impósio brasileiro de linguagem de programação, dentre outros.
Então o nosso workshop, ele vai ser um evento de meio dia que vai acontecer dentro do CBSoft, lá a gente pretende ter palestras,
a apresentações de papers vindos, tanto da academia quanto da indústria, e a gente vai ter uma mesa redonda de fechamento no final,
que inclusive vai virar episódios do elixinfoca e do fronteira de engenharia de software, pra gente pô ali membros da indústria e da academia discutindo em torno dessa comunidade que a gente pretende começar a criar.
O CBSoft, ele vai acontecer em Recife, esse ano, entre os dias 22 e 26 de setembro, é um evento presencial,
e dentro dele o nosso workshop, o SE4FP, vai acontecer no dia 23, que é o segundo dia do CBSoft.
Então como eu também já tinha adiantado, embora as linguagens funcionais, elas estejam se tornando cada vez mais populares na indústria, ganhando relevância nos últimos anos,
a pesquisa de engenharia de software aplicada a esses sistemas funcionais ainda é algo muito inesplorado, isso a gente percebeu ao longo da minha tese,
então isso justifica, no nosso ponto de vista, a gente fortalece uma comunidade em torno dessas investigações, então os objetivos principais do SE4FP são exatamente atrair pesquisadores
e desenvolvedores interessados em construir uma comunidade forte de brasileira, de trabalhos nessa área, e discutindo os desafios do uso de programação funcional em código de produção,
avaliando eventualmente a compatibilidade e a aplicabilidade de estudos que já foram conduzidos para a orientação objeto, dentro do contexto funcional,
será que eles se aplicam, será que não, será que tem coisas específicas, a gente tem muita coisa para investigar nesse sentido.
Então, no final, a gente pretende então promover boas práticas de engenharia e também criação de ferramentas específicas para lidar com esses sistemas implementados nas mais diversas linguagens funcionais,
ou também linguagens multi paradigmas, que aplicam fortemente princípios funcionais. Esse evento tem uma atrativa interessante, que ele vai acontecer no hotel de Bernambuco, que chama Marotel.
O Marotel, ele é muito pertinho do aeroporto de Recife, ele fica 3 km do aeroporto, 13 minutos só de carro, então para quem folhar é muito fácil de chegar no evento, de seus pedaços,
e naturalmente ele fica 500 metros só da orla, desse paraíso, que nos intervalos do evento, em que é tomar um fresco, tomar um banzinho de mabe, ver uma água de coco, enfim, isso será possível, o evento ele vai estar ali do lado.
E a gente tem um carro for papers aberto, a gente espera na nossa programação, tem a apresentações de artigos, vindo tanto da academia, que é que oitalistando como research papers, tanto é papers que vem da indústria.
Os papers da academia, eles vão ter um limite de 6 páginas, sendo 5 a 5 primeiras digamos assim pro corpo mesmo do artigo e a última página exclusiva para as referências.
Naturalmente o paper submetida pode ter menos páginas do que esses limites que eu estou apresentando aqui para vocês.
Então nessa trilha da academia são bem vistos aí, pesquisas e experimentos aplicados, de engenhar de software usada em códigos funcionais,
e essas pesquisas podem estar tanto no estágio mais avançado, quanto também estágio os preliminares, similar a as trilhas que eu submiti por exemplo lá no ECPC, a Era, e também submitir lá no ECSNN, ali, nos papers de esmelos e refatorações que eu falei agora pouco.
Já os papers da indústria serão papers de 4 páginas, sendo as 3 primeiras por corpo do paper e a última exclusiva de referências, pode que o paper pode ser menor também, e a ideia aqui é receber de desenvolvedores, especialmente desenvolvedores que já estão trabalhando com código em produção,
código em produção, o relato de experiências de aplicação de práticas de engenhar de software dentro desse contexto. Então sim, como é que você testa seu código? Qual são as arquiteturas que você está usando? Qual são as melhores práticas?
Enfim, esse tipo de discussão vai requecer, no nosso ponto de vista, a criação dessa comunidade, porque a comunidade acadêmica vai ter contato com esses relatos da indústria,
naturalmente vai despertar o interesse de começar a fazer as investigações, e você evolui por outro patamar.
Os tópicos de interesse das submissões de papers aqui para o nosso evento estão listados lá no site, e vocês podem acessar isso por meio desse que é ricote que está aqui na tela nesse momento.
Uma dúvida que a gente vem recebendo pelas redes sociais na divulgação do evento é exatamente essa daqui.
Quais linguagens de programação são aceitas nos papers submetidos para o SE4FP? Será que são só as linguagens funcionais? Como o Erlang, Rask, OFcharpe, Lix, Scala, Clojor, dente outros?
Na verdade não, pessoal. Aqui a gente espera a trabalho sim vindo de linguagens funcionais, mas a gente também aceita, e eles são extremamente bem recebidos,
papers vindo de linguagens multiparadigma, tipo JavaScript, Python, Java, Rust, Swift Kotlin, entre outras, porque essas linguagens hoje em dia,
elas têm uma influência muito grande do paradigma funcional. Essas linguagens, a maioria delas, tem Lix, Comprehension, Patternmet, Raio Order Function, Funções Pura, Simultabilidade,
questões como essa, que sim o trabalho for nessas linguagens multiparadigmas, mas estiver explorando com ênfase, esses aspectos funcionais,
para a gente é tão valioso quanto os trabalhos vindo das linguagens funcionais, que possivelmente a gente consegue adaptar o resultado de uma pesquisa dessa
para um outro contexto específico do paradigma, então a gente não tem esse tipo de limitação.
Algumas datas importantes, a gente está aceitando o registro dos papers, né, basicamente o registro você vai enviar lá o título e o resumo do seu paper até o dia 20 de junho,
sendo até o dia 27 de junho a submissão do paper completo, que naturalmente vai ser avaliado por um comitê de programa que está em formação,
mas é um comitê de robusto, a gente tem inclusive membros internacionais participando de, no dia primeiro de agosto, vai ser a notificação dos autores,
sobre os papers que foram aceitos ou não, os autores não têm uma semana para enviar a versão final, até o dia 8 de agosto e o workshop acontece no dia 23 de setembro,
então vocês podem adicionar essas datas na agenda, para já ficar de olho e participar do evento com a gente, os organizadores como eu já falei, somos eu,
o professor Marco Tulio Valente da UFMG, o Adolf, né, que é o rocha aqui do podcast, né, da Universidade Tecnológica Federal do Paraná,
e é um evento que vai ser colocado dentro do CBSoft, como eu já falei, por esse QR Code, todos os detalhes do nosso evento vocês conseguem acessar,
o site está bem estruturado, recomendo que depois vocês acessem e se tiverem alguma dúvida ainda pode entrar em contato com a gente,
eu vou aproveitar a oportunidade aqui onde a gente está falando do evento, para também divulgar a possibilidade de patrocínios,
que empresas que estiverem ouvindo o podcast, podem se interessar em patrocinar o nosso evento, né,
eu vou compartilhar aqui quando que são as nossas cotas de patrocínio e quais são os benefícios de cada uma delas,
como eu já tinha falado, é um evento sem fins lucrativos, só que naturalmente esse evento ele gera gastos para ser organizado, né,
a gente tem as diárias, os organizadores, a gente tem translado, a gente tem dentre outros aspectos que gera custo,
então os patrocínios eles são únicamente com o objetivo de cobrir os custos do evento, não gera lucro,
então por que eu deveria patrocinar o SE4FP, a gente está construindo uma comunidade de pesquisadores,
que naturalmente vão gerar resultados ao longo dos anos, que vão refletir em aspectos positivos para empresas,
então ajudar a construir essa comunidade é investir em uma qualidade de software para o futuro,
então isso não deixa de ser um papel nobre, além disso a gente vai ter pesquisadores
desenvolvedores especializados, então as empresas que patrocinaram vão ter acesso
a essas pessoas, então não deixa de ser uma oportunidade de recrutamento também.
E naturalmente, visibilidade para a marca, pelas nossas mídias sociais, pelo site, pelo
próprio evento em si, e a gente julga que, por ser a primeira edição de um workshop,
que a gente espera, que dura muitos anos e traga muitos frutos, não deixa essa edição,
deixa de ser um marco histórico. Então, quem tiver patrocinando essa edição, de uma certa
forma, está participando disso, né? Então, as empresas também poderiam eventualmente mandar
colaboradores para participar, vendas palestras, vendas a presentações de trabalho, e isso
deixa de ser uma oportunidade de desenvolvimento profissional para essas pessoas. Como eu já tinha
adiantado, os trabalhos fruturos, gerados de tudo isso vão gerar benefícios para todo mundo.
Então, na nossa cota Gold, que é a cota mais alta, digamos assim, são os patrocinadores
que possuem mais benefícios, eu estou destacando aqui alguns deles, né? Na nossa mesa redonda,
que vai encerrar o evento e a gente pretende ter alguns participantes ilustros, essa mesa redonda
vai ser gravada simultaneamente, como episódios também, do fronteira de Jair de Soft, do Helix
Infoco, quem for patrocinador Gold, ele vai ter a possibilidade de vincular nessas gravações,
é um vídeo de propaganda da sua marca, além do seu logo ficando disponível ao longo de todo o
episódio, né? Esses episódios ficam disponíveis no YouTube, no Spotify, principalmente, que são as
plataformas onde a gente tem eles em vídeo, digamos assim, e além disso, o logo tipo do Gold,
ele vai aparecer na maior proporção entre todas as outras cotas, em todas as nossas plataformas digitais
impressas, os nossos banners, os nossos perfis no LinkedIn, no Twitter, no Blue Sky, e também no Instagram,
bom, presencialmente a gente vai ter ali o evento, está acontecendo em Recife, e o Gold,
ele vai ter a possibilidade de exibir um vídeo de um e um, tanto na abertura quanto no fechamento
do evento, destacando a sua marca, ele vai ter também presença garantida na mesa redonda,
a nossa mesa redonda que vai ter profissionais, né, da indústria e da academia, quem foi patrocinado o
Gold, vai poder ter um colaborador da empresa como participante da mesa redonda discutindo e
expondo a marca, né, de uma certa forma, e a empresa que foi Gold, ela vai ter direito a três ingressos
de estudantes no CVSoft, que ela vai poder distribuir livremente para sua equipe, ou enfim, sorteado,
de que ela achar melhor, e esses ingressos não acessam não apenas ao nosso workshop, mas o CVSoft
inteiro tem muita coisa importante, interessante acontecendo ali, já o Silver, ele tem uma participação
um pouco menor do que o Gold, né, ele vai poder exibir o seu logotipo nas gravações dos episódios
de podcast, mas ele não vai ter direito aos vídeos, né, de propaganda dentro desse episódio,
e naturalmente o logotipo ele vai aparecer numa proporção menor do que do Gold, fisicamente, né,
ele vai ter o seu, a sua marca exposta nos nossos painéis imprestos, com uma proporção inferior
do Gold, e ele também vai ter direito a ingresso para o CVSoft, mas ao invés de três igual Gold,
ele vai ter direito a um, já o bronze, que é a nossa cota mais acessível, digamos assim, é uma
cota que vai dar direito à exibição da logo marca, no nosso website, e nas nossas redes sociais,
em proporções menores, digamos assim, e vai ter direito também a distribuição de brindes lá
presencialmente no evento, por essa tabela, a gente consegue ver de forma bem comparativa,
eu não vou detalhar ela toda porque no site do evento quem tiver interesse em ter mais detalhes,
tem acesso a esse documento que eu estou mostrando, mas aqui a gente vê basicamente ali um comparativo
de benefícios entre as cotas e os valores aqui embaixo destacados, então são valores que a gente
julga que comparado a outros eventos, são valores bem simbólicos, né, a Cota Gold, 500 dólares ou
3 mil reais, a Cota Silver, 2 mil dólares ou então 12 mil reais, e a Cota Gold, 3 mil dólares ou 18 mil reais,
a gente tem limites, para isso, né, a gente só vai ter no máximo 2 patrocinadores Gold, 4 Silver e
11 ilimitados, então a gente vai interesse, pode nos procurar, os contatos do evento estão aqui,
e enfim, me coloca aí a disposição para fazer maiores esclarecimentos que o podcast achar
sobre o evento, é isso o nosso pítio aqui pessoal, muito bom, o link do evento está na descrição do
episódio, e eu vou publicar também essa parte aqui, por conta da data, a gente vai publicar ela antes,
como corte nos nossos canais do Alexandre Infoco e do fronteiro de engenheiro de software, agora eu vou fazer
uma pergunta sobre o seu doutorado, então a gente está conversando antes, então você me
confirmou essa formação que eu achava que era verdade, que você fez seu doutorado totalmente no
Brasil, você não passou nem mesmo um período sanduíche fora no instituição dos Estados Unidos,
da Europa, como vários estudantes fazem, então são várias perguntas aí juntas, surgiu a oportunidade
de fazer um sanduíche fora, se surgiu, por que que você não fez, mas o meu ponto é que,
independente disso, dá para fazer um doutorado de qualidade no Brasil, você teve ótimas publicações,
a banca gostou do seu trabalho, enfim, por que que você decidiu não fazer um sanduíche fora?
Entendi, essa é uma pergunta interessante, porque acaba esbarrando em algumas questões familiares que
eu vou compartilhar com o mal prazer, eu tenho uma carreira acadêmica, um pouco atípica nos dias
atuais, digamos assim, eu terminei o meu mestrado em 2012, aqui não FV, eu fiz o meu mestrado aqui não FV,
e logo em sequência eu já ingressei na carreira acadêmica, então ingressei na carreira acadêmica como o mestre,
mas eu tinha uma proposta de realizar um doutorado imediatamente em uma universidade, na delgica, uma universidade livre,
o meu orientador aqui da um FV tinha o contato lá e tudo mais, só que como a carreira foi me levando a trabalhar
primeiro do que terminar a minha formação, digamos assim, essa bola dessa primeira oportunidade passou,
então eu fui me envolvendo nos projetos com a graduação, eu fui coordenador de curso na graduação aqui da UFV por 4 anos,
então foi um período intenso em que eu não tinha muito tempo pra pensar em qualquer outra coisa,
quando veio a pandemia em 2020, que a gente deu aquela desacelerada, começou a trabalhar remoto,
e eu passei a participar das reuniões semanais do grupo de pesquisa do professor Mark Tulho Valente na UFMG,
eu ainda não era a luna de doutorado na UFMG, só que eu fiquei em torno de um ano,
participando dessas reuniões semanais e me interano com o grupo, isso aconteceu por intermédio de um ex-professor aqui da UFV,
o professor José Luis Braga, foi um dos aumentores de carreira, foi meu professor a engenharia de software no mestrado,
então nos caras que me sentivam a trabalhar na área e colocou em contato o professor Mark Tulho,
que é ex-aluno da UFV, ele fez a graduação na UFV, então o José Luis tinha sido professor dele, enfim,
por meio desse contato, a gente começou a participar e eu tomei muito gosto pelo grupo do professor Mark Tulho,
que dispensa comentários, tem sempre publicações de impacto, é uma referência na área no Brasil,
então eu pensei por que não fazer o meu doutorado com uma das referências na área aqui no Brasil,
e na época pensei em submitê a proposta com o Marcos, ele orientaria, e ele se dispôs,
enfim, comecei a pesquisa, não a FMG, inicialmente a gente tinha uma ideia de que uma parte do meu doutorado fosse sando isso,
o Mark tem muitos contatos internacionais e tudo mais, só que com torno de um ano de doutorado,
eu tive uma grata surpresa que foi a gravidez da amisposa, do nosso primeiro filho do José,
e isso, para todo mundo que é pai, sabe, o primeiro filho acaba um cavalo de pau na vida da gente,
a gente tem que se adaptar em vários aspectos aí profissionais e pessoais,
e um deles foi a desistência de, e esse período para fora do Brasil, no primeiro momento,
porque não seria compatível com o meu filho ainda muito jovem, e esse é um transtorno muito grande,
então a gente optou por fazer o doutorado completamente aqui na FMG,
deixando a possibilidade de repente, no futuro, fazer um post-doc fora ou coisa do tipo,
e assim, para ser bem sincero, eu não me rependo nem um pouco pela escolha,
eu acho que os resultados dizem por si só, a gente conseguiu atingir resultados assim,
que me deixam bastante satisfeitos assim, eu acho que se eu fosse olhar no início,
fosse imaginar onde que eu chegaria com a minha pesquisa,
eu acho que eu passei do ponto em que eu tinha um anseio, digamos assim,
Eu acho que isso pode servir de exemplo para outras pessoas que passam para uma situação similar.
Às vezes isso pode ser um motivo de frustração para alguns.
Ela poxa, eu não vou poder ir para fora.
Às vezes aqui eu vou ter uma formação inferior ou eu vou ter menos oportunidades.
Eu acho que a gente está no mundo globalizado.
Hoje em dia a gente tem contato com pessoas qualquer ponto do mundo com uma certa facilidade.
Pode trocar conhecimento e enfim, sinceramente, eu acho que isso já não é mais uma limitação para ninguém.
Eu acho que a diferença maior que em faz é o que o aluno está disposto a fazer, o que a prontividade dele e o lugar onde você está não vai ter tanto impacto assim.
Pelo menos esse é a minha visão.
Efeito, inclusive a gente já teve até, é interessante que a gente já teve aqui entrevistados que tempos depois foram trabalhar fora.
Receitamento, a gente teve o caso contrário, Fernando Maderao, que era professora fora, agora é professora lá na OFPE.
A gente já teve aqui, eu não sei se ela falou aqui, ou em outro ambiente, a professora está em conta e da alfã.
Ela disse assim, às vezes as pessoas romantizam muito, as universidades no exterior, porque ela falou que ela passou o período lá.
Essa chama de posó, que às vezes eu gosto mais de chamar de sabate, mas ela passou esse período lá na Califórnia, ela disse, não. Ok, tem coisa muito boa lá, muito nenhuma, isso é muita coisa que é complicada.
A pessoa fica completamente dependente de verba, então, neste dia em que a gente está gravando, e provavelmente por muito tempo ainda, o presidente lá nos Estados Unidos é o Donald Trump, que está cortando verpa de projeto, que já estava aprofado, já estava rodando.
Qual é o nome da professora Amy, esqueci o sobrenome dela, mas é uma professora, inclusive é uma mulher trans, a professora não é está de Washington,
e eu estava trabalhando com, acho que, diversidade do ensino de programação, maravilhoso, com que não é administração anterior, e, veja, esse tipo de coisa, financiamento pesquisa geral, mas não tem influência da administração, mas ela ganhou um bom dinheiro, bem que também o Igor Saimaker, que é a professora lá fora, ele fala assim algo.
Você vê, assim, o número, a quantidade de dinheiro que é alocado por um projeto, não é sempre relativo, porque você tem que tirar uma parte da universidade, tem que ter uma parte para os bolsistas, acaba não sobrando tanto assim, mas é mais do que a gente tem aqui.
Então ela estava com um projeto com bastante dinheiro, simplesmente chegou um dia, a carta dizendo assim, "Oh, acabou, você não vai receber mais nada".
Bom, mantagens e desvantagens, situações, mas aí eu queria só aproveitar fazer uma pergunta para você, porque eu lembro que a gente se comentou no Twitter, como foi a influência daquele episódio do Marcelo Maia sobre o Coro dos Melos, no seu trabalho?
Ah, assim, na verdade, assim, tanto o fronteira de Jared Soft, quanto o Elixim Foco, eles tiveram alguma influência no ponto de partida lá do nosso trabalho, né?
Porque eu expliquei no início da entrevista que a gente queria explorar a funcional, a gente queria explorar em Jared Soft aplicada funcional, depois a gente queria explorar a qualidade de Soft, em funcional, mas a qualidade de Soft é um mínimo.
Então, assistindo o episódio do professor Marcelo Maia, que acho que ele foi quebrado em duas partes, se eu não me engano, são episódios excelentes, em que ele dá um overview sobre as pesquisas de Coro dos Melos.
E ele fala sobre Coro dos Melos de contexto específico, como um ponto em quente para a pesquisa.
E aí aquilo brilhou os olhos, falou, olha, pronto, é Coro dos Melos, a gente vai começar com Coro dos Melos, e as refatorações vieram por consequência, digamos, assim, né?
Porque se você fala de menos, possivelmente, você vai falar de refatorações para remover-los.
Então, digamos que a decisão pelo ponto em que a gente iria investigar dentro de qualidade de Soft, para a programação funcional, veio por influência daquele excelente episódio do professor Marcelo,
que mostrou assim ótimas oportunidades para a gente.
Só que aí a gente tinha, qual linguagem funcional, né, afinal de contas, a gente tinha que focar em uma, a gente não queria fazer uma pesquisa nível de paradigma, a gente queria fazer, de acontecer esse específico, a gente queria focar em uma, para ver que ele é aplicado em código mesmo, de maneira menos abstrata.
O elixinfoq foi um dos canais que me apresentou, digamos assim, com mais detalhes a linguagem elixi. Por ser um ouvinte do fronteira de engenharia de Soft, eu acabei conhecendo o elixinfoq.
E comecei a escutar os episódios e, enfim, o fato de ser uma linguagem desenvolvida por um brasileiro e tal, tem uma comunidade interessante.
Então, um dos estalos não foi o único, né, mais um dos estalos, então, para a escolha do elixi também veio por mede, por meio de um dos podcast da sua rede.
Então, não coincidentemente, quem tiver a curiosidade de ler a minha tese, lá vai ver que na sessão de agradecimentos, tem uma agradecimentos especial por Adolfo,
porque ele teve uma influência muito importante aí no ponto de partida dessa testa de doutorado.
Muito bom. Muito bom. Muito bom. E antes da pena o final, a gente deixou um espaço para você convidar pessoas que querem fazer mistrado ou doutorado com você.
E também pessoas, empresas e pessoas pesquisadores que querem colaborar com suas pesquisas.
Ah, Joia, muito bem. Então, eu sou o professor aqui do Departamento Informática da UFV, como a gente já falou no início.
Eu estou em processo de credenciamento no programa de pós-graduação, como terminei meu doutorado bem recente.
Eu ainda não faço parte do corpo docente do PPGCC daqui, mas isso é uma coisa temporária que vai se resolver rapidamente.
E, enfim, aqui a gente tem mistrado, já há mais de 20 anos, e o doutorado ele é um pouco mais recente, o doutorado ele é de 2018.
Então, muito provavelmente já nos próximos meses, eu vou poder estar recebendo alunos para trabalhar comigo, dando continuidade esses pontos que estão em aberto na minha tese.
Seja desenvolvimento de ferramentas, seja no cor relacionamento de esmelos e refatorações, dentre vários outros pontos.
Então, assim, a gente tem muitas coisas para trabalhar dentro dessa linha do SE4FP, que a gente já apresentou e criou.
Então, a gente pretende nos próximos anos receber alunos para dar suporte a continuidade dessa linha.
Na minha tese, eu tive suporte de empresas, como eu falei, tipo suporte da Fingbits, tive suporte da Rebase, tive suporte da Destebit.
Com todas as empresas do ecossistema de linguagens funcionais, não apenas Elixi, mas principalmente Elixi, porque está na parte que a gente está mais focado, que tiver interesse em financiar esse tipo de pesquisa.
E dá continuidade em algo que aparentemente está dando certo a dor, que quem é a vontade de me procurar, que a gente pode, enfim, tentar arrumar a melhor maneira de viabilizar isso seria muito bem recebido.
E agora, a gente chega à pergunta que define o podcast, eu sempre gosto de lembrar que pode ser algo que você acha que vai acontecer, o que você gostaria que acontecesse em nossa área.
Lucas, para você, qual é a próxima fronteira da engenherida software?
Olha, eu vou responder essa pergunta, eu me preparei para ela, mas eu vou responder ela de uma forma não tão objetiva.
Como a gente está falando de engenherida software aplicada à programação funcional, não tem como eu não falar que essa é uma das fronteiras de engenherida software.
Naturalmente, eu não vou dizer que é a principal, mas essa é uma delas. A gente tem uma engenherida software inteiro para ser revisitada dentro desse paradigma, que não tem muita coisa para se fazer muito trabalho inédito a ser conduzido.
Muito tanto, eu acho que, da mesma forma que o Valin falou recentemente e outras pessoas também compartilharam aqui com vocês, e eu acho que a principal fronteira entender, de fato, de uma maneira mais conclusiva, como a AI pode, de fato, nos ajudar dentro do processo de engenherida software.
A gente já tem muitas pesquisas em andamento ou é aplicada para automatização de várias das subtarefas do processo de desenvolvimento de software, mas tudo ainda é muito exploratório.
Então, a gente ainda não tem nada muito conclusivo, a gente tem muito a evoluir nesse sentido.
Até porque fazer um gancho com a primeira parte da minha resposta?
Se a gente for pensar em aplicada a engenherida software funcional, eu espicune em que os resultados podem ver de bastante em relação à maioria das outras pesquisas, porque quando a gente pensa em lm, essas lm são treinadas com grandes volumes de código, por exemplo.
Então, naturalmente, se a gente for pegar um git-rub da vida, se a gente for pegar um chat EPT da vida, o chat EPT recebeu muitos códigos em Python, Java, JavaScript, do que código em Elixir, do que código em Closure.
Então, possivelmente algo que um resultado que a gente obtive com uma pesquisa que se aplica a base de códigos orientado objeto, talvez não tem resultados tão bons em códigos aplicados em linguagens funcionais, então isso acaba convergindo as duas coisas.
Eu acho que tem espaço para a gente ter esse tipo de investigação também, aí há aplicada engenherida software.
em contextos específicos, porque eu tenho para mim que esses resultados com certeza vão
divergir bastante e a gente precisa de conhecer isso para poder aplicar.
Então as fronteiras no meu ponto de vista são esses.
É, estou aproveito já que você falou isso.
Dormente, eu não falo nada depois da resposta, mas dessa vez eu vou ter que falar porque
é uma coisa que surgiu bem recente, um call for papers da empíria que eu softo em
engenheiro em quando você publicou os artigos, é um espécieuícho, a edição especial sobre
avançando a engenharia do software com largos de language models e um dos dos pessoas que
está coordenando esse espécieuícho é justamente um marcotulho valente.
Então, aqui a propaganda aqui do trabalho dele também em relação a isso aí, ele, estou
vendo aqui que o Deadline é 5 de setembro, então está tranquilo aqui para quando vai ser
publicado este episódio.
Ah, e uma, só uma observação assim de rede social, alguém falou assim que talvez ele
x seja muito boa, porque assim, algumas pessoas estão achando que com esses LLM, a gente
vai ficar só quem escreve só, quem trabalha com o software no caso, as 8 talvez possam
falar melhor que isso, porque ela é realmente que trabalha com engenheiro de software aqui.
Fica lá escrevendo pronto e o LLM já é o código, mas assim, uma coisa você tentar
entender um código em C, outra coisa você tentar entender é um código em LX, código
em LX não sei se existe em trabalho sobre isso, mas é mais fácil de entender, né, a gente
acha, pelo menos nós, da comunidade, achamos que mais faço a entender, então talvez
essa LX teja numa boa posição por causa disso, porque o código é mais fácil a entender,
mas enfim, quem gostou desse tema tem até onde submeter já que é essa edição especial.
Eu sofro.
É, a gente fica bem famoso, né, dera até o tema lá o Web Code, né, enfim, quando cada
vez mais famoso, assim, na minha experiência, uso sim, LLM, mas mais uma maneira de não
só de ficar reagindo ao que você está sendo gerado, mas mesmo de guia mesmo, ou então
mais para entender uma cor de base, tipo, só, bom, um projeto novo, você não sabe nada
da tilo, óbvio, tem a documentação, mas você precisa de um resumo geral do fluxo
da série de negócios, por exemplo, é bem interessante de usar que ele consegue catalogar
logo, fazer um resumo, você consegue já ter um contexto maior, né, do projeto, mas
a minha experiência, assim, com linguagens funcionais, LLM, e tendo a ser meu, a quem, sinceramente,
acaba que o treinamento é bem maior em cor de bases, de outros paradigmas, e enfim,
é bem mais fácil você acabar gerando um código de script, por exemplo, seja genuinamente
funcional, né, no sentido de realmente funcionar do que ele, tipo, exemplo.
Os vezes eu já tinha que ter, até o cloud tem uma experiência melhor, mas às vezes
ele acaba confundindo, acaba gerando o código rubidento de LX, e aí fica meio estranho,
mas ele tem que ir.
É, o José Valinho, não sei se isso faz parte da empresa dele, mas ele lançou agora o
Tide Wave, Beyond Code Intelligence, e o Cree, para quem é da comunidade, os José Valinho
teve aqui no fronteiro, estão não precisos explicar o criador de LX, né, e o Chris
Maccorder, que é o cara que criou Phoenix, que é o principal framework web para LX,
ele também lançou uma coisa agora na LX-Elexer Conf, e o 2025, esqueci o nome, mas acho
que tem Phoenix no nome, é também uma coisa para gerar aplicações in Phoenix, a partir
de prontos, né, com o LLMs, enfim, essas coisas estão acontecendo, qual vai ser o futuro,
a gente não sabe, mas antes de passar a palavra para o Lucas a agradecer, eu vou passar
a palavra para você, se despedir, desculpa, eu que agradeço, né, mais uma vez você, Lucas,
lembro aqui para o pessoal que a gente vai ter esse Congresso Brasileiro do Software,
Teoria Prática, de 22, de 27 de setembro de 2025, vai ter o SE4FP, a gente vai ter também
em abril, no Rio de Janeiro, a partir de vocês hoje, o principal é vento acadêmico de
Ingenia de Software, que é o XC, International Conference on Software Engineering, vai ser abril
no Rio de Janeiro, a primeira vez no Brasil, segunda vez na América Latina, eu acho, porque
já teve na Argentina, mas enfim, tem várias coisas acontecendo, e você falou bastante
loucos de qualidade de software, vai ter também o SBCS em novembro em São José dos Campos,
que é o Imposto Brasileiro de Quality Software, eu agradeço, mais uma vez, passo a palavra
para você se despedir das nossas e nossos ouvintes.
Eu também agradeço a Doofo, realmente assim, para mim, foi um prazer receber o convite
para participar aqui, como eu falei antes, a gente teve pessoas ilustres da área passando
por aqui, pessoas brilhantes, e hoje chegou a minha oportunidade, então, tanto no mesmo
rol desse pessoal, não deixa de ser uma honra muito grande, então, muito obrigado pelo
convite de dar esse espaço para compartilhar um pouco sobre a minha carreira acadêmica,
sobre a minha tese, e também sobre essa iniciativa no nosso do evento, e deixo aqui o convite
para todos os interessados, em participar do SE4FP, para, enfim, se engajarem, leirem
lá as informações no site, nos acompanharem nas redes sociais, e se tiverem uma dúvida,
fiquem à vontade para entrar em contato comigo.
Muito obrigada, Lucas, agradecemos a todos os nossos e nossas ouvintes e até o próximo
episódio do fronqueiros de engenharia, de software, e do LG Reinfoco.
Podcast Summary
Key Points:
A pesquisa de Lucas Vége foca na aplicação da engenharia de software à programação funcional, especialmente no Elixir, um tema pouco explorado na literatura científica.
O trabalho desenvolveu catálogos de "cold smells" (sinais de problemas de código) e refatorações, validados por mais de 180 desenvolvedores de diferentes experiências e origens.
Os catálogos foram construídos com revisão da literatura cinza, interação com comunidade e mineração de repositórios no GitHub, garantindo validação prática e ampla aceitação.
A pesquisa já gerou dois artigos publicados em revistas renomadas da área, como a *IEEE Software*, destacando o impacto acadêmico e relevância da contribuição.
O evento SE4FP (Software Engineering for Functional Programming) será organizado no CBSoft 2025, com foco em construir uma comunidade de pesquisadores e desenvolvedores no Brasil.
O evento aceita trabalhos em linguagens funcionais e multi-paradigma, reconhecendo a influência funcional em linguagens como JavaScript, Python e Rust.
Ferramentas automatizadas para detecção e refatoração de "cold smells" são prioridades futuras, com projetos em desenvolvimento para integração e uso prático.
A tese de doutorado foi bem definida, com escopo restrito para replicar o modelo do livro de Fáulé, deixando abertas áreas como correlações entre "cold smells" e estratégias de refatoração.
Summary:
A entrevista com Lucas Vége, professor da Universidade Federal de Viçosa, aborda a pesquisa sobre engenharia de software aplicada à programação funcional, com foco no Elixir. A equipe desenvolveu catálogos de "cold smells" (sinais de problemas de código) e refatorações, validados por mais de 180 desenvolvedores de diversas experiências e origens. Os dados foram coletados por meio de revisão da literatura cinza, interação com a comunidade e mineração de repositórios no GitHub.
A pesquisa resultou em dois artigos publicados em revistas de renome, como a *IEEE Software*, evidenciando seu impacto acadêmico. A equipe também promove o evento SE4FP, o primeiro workshop brasileiro de engenharia de software para programação funcional, que ocorrerá no CBSoft 2025 em Recife. O evento recebe trabalhos em linguagens funcionais e multi-paradigma, reconhecendo a influência funcional em diversas linguagens.
Os pesquisadores destacam que a criação de ferramentas automatizadas para detecção e refatoração de "cold smells" é uma direção futura central, com projetos em andamento. A tese foi bem definida, com escopo restrito ao modelo do livro de Fáulé, mas deixa abertas áreas como correlações entre sinais de problemas e estratégias de refatoração. A pesquisa reflete a necessidade de ampliar o conhecimento na área, promovendo uma comunidade de pesquisadores e desenvolvedores no Brasil.
FAQs
O catálogo de cold smells em Elixir identifica padrões de código que indicam problemas de qualidade. Foi desenvolvido por meio de revisão da literatura cinza, análise de repositórios no GitHub e questionários com desenvolvedores, resultando em um catálogo de 35 padrões validados pela comunidade.
Foram identificadas 82 refatorações, divididas em categorias como específicas para Elixir, genéricas e tradicionais. Essas refatorações foram validadas por desenvolvedores e incluem estratégias para melhorar a qualidade e manutenibilidade do código funcional.
A área é pouco explorada, enquanto a indústria adota mais linguagens funcionais como Elixir. Essa pesquisa preenche uma lacuna, oferecendo ferramentas e conhecimentos para melhorar a qualidade de software em contextos funcionais.
A comunidade de desenvolvedores participou ativamente com questionários, onde 181 e 150 respondentes foram selecionados com diferentes níveis de experiência e projetos, garantindo uma amostra representativa e diversa.
O SE4FP é um workshop que visa criar uma comunidade de pesquisadores e desenvolvedores para explorar engenharia de software aplicada à programação funcional, com foco em práticas, ferramentas e desafios reais no mercado.
Sim, além do Elixir, o estudo considera linguagens multiparadigma como JavaScript, Python, Java, Rust, Swift e Kotlin, pois essas têm forte influência funcional, e os resultados podem ser adaptados para diferentes contextos.
Chat with AI
Loading...
Pro features
Go deeper with this episode
Unlock creator-grade tools that turn any transcript into show notes and subtitle files.