6 pontos por eggplantiny 14 일 전 | 11 comentários | Compartilhar no WhatsApp

Olá, sou um desenvolvedor front-end com 8 anos de experiência.

Organizei em texto a experiência de ter projetado um compilador de DSL com a ajuda da IA e até publicado um artigo no arXiv.

  • Tudo começou da intuição, adquirida ao criar vários SaaS, de que “a mesma estrutura se repete em cada domínio”
  • Usei a IA não como assistente de programação, mas como uma ferramenta para tomar emprestado o modo de pensar de especialistas de cada área
  • Como o custo do fracasso diminuiu estruturalmente, consegui levar o projeto adiante mesmo depois de refazer a arquitetura quatro vezes
  • Ao mesmo tempo, também senti na prática a importância dos 20% restantes que a IA não consegue preencher — a intuição de que “você está fazendo a pergunta errada agora”

É um relato honesto de uma experiência em que senti, ao mesmo tempo, as possibilidades e os limites do uso de IA.

11 comentários

 
onetoday 14 일 전

Não sei exatamente o que é linguagem formal, mas state e computed parecem variáveis, e action parece função — qual é a diferença entre eles? Lendo o texto, às vezes parece que ele desenhou um diagrama de estados, mas também não entendo qual é a relação disso com a parte sobre o domínio se repetir. As palavras que aparecem no texto não são desconhecidas para mim, mas ainda assim ele não flui bem na leitura.

 
eggplantiny 14 일 전

Por exemplo, vamos imaginar que estamos criando um formulário de cadastro.

Digamos que, nesse formulário, recebemos nome, gênero, idade e se a pessoa já serviu ao exército, esses 4 itens.

E vamos supor que surja mais uma regra:

"se o gênero for masculino, mostrar uma caixa de seleção e perguntar se já serviu ao exército"

E, se houver um botão de envio, isso pode ser considerado o que normalmente chamamos de modelo de domínio para cadastro de usuário.

Então, nesse caso, nome, gênero, idade e serviço militar são os 4 state do domínio,

a visibility da caixa de seleção que pergunta sobre serviço militar é um computed derivado do gênero

E o botão de cadastro é onde uma action é mapeada.

Como eu não escrevo tão bem, acho que não consegui redigir isso de uma forma tão fácil de ler.

Mas podem entender que o conceito em si é parecido com o que expliquei acima.

 
onetoday 13 일 전

Não entendi exatamente, mas acho que mais ou menos consigo captar a sensação.

Obrigado.

 
ifmkl 13 일 전

Gostei muito da leitura. Também do que você escreveu no blog. Não sei se a analogia é adequada, mas fico pensando se isso não segue a mesma linha do motivo de Hello World! ser o primeiro tutorial de tantas linguagens e, no passado, do processo de aprender desenvolvimento web construindo fóruns e lojas virtuais. Antigamente eu pensava assim: se você tiver técnica suficiente para criar um fórum e uma loja virtual, consegue implementar a maior parte da web. E, no fim das contas, programação é, em última instância, apenas input e output.

 
eggplantiny 13 일 전

Acho que a analogia é adequada. Meu projeto também é, na prática, composto apenas por duas coisas: o intent da pessoa e o snapshot.

No fim das contas, eu já pensava que o caminho que meu projeto deve seguir é como calcular a intenção humana (por exemplo, pressionamentos de tecla e cliques do mouse) e fazer com que ela adquira algum significado.

 
snisper 14 일 전

Resumindo, isso quer dizer que foi criada uma mini linguagem que desenha diagramas de estado?

 
eggplantiny 14 일 전

Não, o que mostrei foi um state diagram, que é uma das formas de visualizar as transições de estado internas do Manifesto.

Criamos a máquina de estados determinística como um framework.

Os cálculos dentro do Manifesto Core foram projetados para sempre produzir o mesmo resultado para o mesmo estado e o mesmo comando.

 
snisper 14 일 전

Entendi que você criou uma DSL, mas não ficou muito claro para mim o que seria uma máquina de estados determinística. Fiquei até pensando se também existe máquina de estados não determinística... Enfim, gostei da leitura. Espero que você continue desenvolvendo isso muito bem.

 
eggplantiny 14 일 전

Ah, professor, sua observação está correta. A máquina de estados em si é, de fato, determinística. O que introduzi no manifesto é baseado em algo não Turing-completo, então não existem laços de repetição dentro da DSL. Graças a isso, é possível calcular como o programa vai funcionar antes mesmo de executá-lo, e explicar por que aquele resultado foi produzido.

Obrigado pela observação!

 
toida 14 일 전

Li com interesse. Há muitos pontos com os quais me identifico. Empolgante e, ao mesmo tempo, assustador.

 
eggplantiny 14 일 전

Obrigado por ler com interesse.

Ultimamente, tenho pensado muito sobre como devemos viver em meio ao ritmo desta era em rápida transformação.

São tempos que trazem muitas reflexões.