Programação orientada a notificações: o paradigma BR

Поділитися
Вставка
  • Опубліковано 10 жов 2024
  • MATERIAIS SOBRE O PON (Programação orientada a notificações):
    Página oficial: pessoal.dainf....
    Vídeo do Fabro apresentando um trabalho de PON: • NOPL EPIA2021 Fabro - ...
    NOTIFICAÇÕES VS. EVENTOS: portaldeinform...
    Paradigmas de programação costumam ser assuntos de debate no meio dos devs. Qual o melhor? Orientação a objetos? Funcional? Por qual paradigma devo começar? Mas é importante lembrar que além dos mais famosos (procedural, orientação a objetos, declarativo e funcional), temos muitos outros paradigmas disponíveis também. E um deles é o paradigma orientado a notificações, desenvolvido aqui no Brasil.
    O PON (paradigma orientado a notificações) une o melhor do mundo dos paradigmas lógicos com a orientação a objetos, permitindo fazer sistemas complexos de regras de uma maneira simples e desacoplada, permitindo também algoritmos distribuídos e eficientes com base nele.
    LIVES: Toda terça e quinta às 21h
    SEJA MEMBRO: / @waine_jr
    Vídeos exclusivos, lives salvas e canal no Discord só para membros!
    REDES
    Site: www.wainejr.com/
    Instagram: / waine_jr
    TikTok: / waine_jr
    GitHub: github.com/wai...
    Discord: / discord
    LINKS
    Proposta inicial do PON pela tese de doutorado do Simão: riut.utfpr.edu...
    Programação orientada a notificações linguagem e compilador: ieeexplore.iee...
    Tese de mestrado Método para projeto de software usando o PON: repositorio.ut...
    Notification Oriented Paradigm to Digital Hardware - A benchmark evaluation with Random Forest algorithm: www.sciencedir...

КОМЕНТАРІ • 65

  • @PrinceOfAstoria
    @PrinceOfAstoria 2 місяці тому +2

    Só por curiosidade, como isso se compara a Event-Driven Programming?

    • @lucas_badico
      @lucas_badico 2 місяці тому

      Achei bem parecido heim

    • @yrds96
      @yrds96 Місяць тому +4

      event-driven = reage a eventos(métodos). A implementação básica é um event loop, onde o gatilho é uma mudança na pilha de "triggers"(que foram explicitamente adicionados a essa pilha), que executam ações para os "listeners" no início de cada loop.
      notificações/reactive = reage a mudanças do estado(dados). A implementação básica é um loop baseado observação dos estados, onde o gatilho é qualquer mudança num dado observado anteriormente.
      As motivações e diferenças entre as duas me lembrar muito POO com DOD

    • @waine_jr
      @waine_jr  Місяць тому +3

      Acho que o camarada respondeu bem ali, a questão principal é o gerenciamento de estado ao invés de eventos em si. Mas concordo que uma abordagem lembra bem a outra. Vale ressaltar tmb que essa questão de notificações não se restringe a programação, mas pode ir até a nível de modelagem de uma CPU ou modelo de programação, não vejo evento driven sendo tão genérico assim.

    • @fabioa8059
      @fabioa8059 Місяць тому

      @joaodascouves5400 penso que isso é muito parecido com micro serviços.
      Por isso não pegou

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      repositorio.utfpr.edu.br/jspui/handle/1/1006

  • @christian.c.s.mendes
    @christian.c.s.mendes Місяць тому +1

    Excelente, o PON tem grandes perspectivas e possibilidades.

  • @JEANMARCELOSIMAO
    @JEANMARCELOSIMAO Місяць тому +3

    Legal... obrigado

  • @eniebercunha
    @eniebercunha Місяць тому +4

    esse paradigma me parece muito com orientação de enventos mais estruturado

    • @waine_jr
      @waine_jr  Місяць тому +2

      Lembra bastante mesmo, mas tem o grande diferencial de estado e regras em cima disso, que por meio de eventos vc tem que definir programaticamente a consistência

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому +1

      Vide dissertação do Robson Duarte Xavier...

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      repositorio.utfpr.edu.br/jspui/handle/1/1006

  • @hugo-garcia
    @hugo-garcia Місяць тому +3

    Quem usa essa paradigma é o Nubank que me enche o saco com mais de 30 notificações por dia sobre o preço do bitcoin

  • @Alexandreofbh
    @Alexandreofbh Місяць тому +2

    Legal, Antigamente, antes do conceito de threads ser difundido, utilizávamos tarefas com spawn no Unix para criar programas onde cada tarefa era responsável por processar mensagens específicas de sensores e atuadores distribuídos. Colocaram um nome nisso... rs rs rs

    • @waine_jr
      @waine_jr  Місяць тому +2

      A ideia de notificações acho que é mais genérica pq se assemelha a um sistema baseado em regra, ao meu ver se aproxima mt de programação lógica a proposta, só que com um quê de orientação a objetos e responsividade

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому +1

      Isto pareceria mais orientação a eventos... Isto dito queira ver a dissertação do Robson Duarte Xavier (PPGCA / UTFPR)

    • @Alexandreofbh
      @Alexandreofbh Місяць тому +1

      @@waine_jr Estranho que eu tinha entendido é que queriam minimizar as regras e priorizar os micro serviços distribuídos. Mas eu não sou da área de computação, então estes conceitos as vezes me confunde bastante. Seus vídeos são muito bons, adoro filosofar sobre estes assuntos. Valeu Waine!

  • @rhu_zelchi
    @rhu_zelchi Місяць тому +2

    Uso muito o paradigma Pog, Programação orientada a gambiarra.

  • @fabioa8059
    @fabioa8059 2 місяці тому +2

    Achei interessante a ideia, na minha cabeça vejo muito da arquitetura de micro serviços, filas etc

    • @waine_jr
      @waine_jr  Місяць тому +2

      Pois é, lembra bem questão de distribuídos. Eu não cheguei a mostrar, mas tem trabalhos recentes usando a abordagem pra sistemas distribuídos, é bem interessante.

    • @fabioa8059
      @fabioa8059 Місяць тому

      @@waine_jr gostaria de ver a aplicação deles para baixo nível na real, não vejo muita diferença pra arquitetura se micro serviços atual

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      Tem sinergia mas é diferente...

    • @waine_jr
      @waine_jr  Місяць тому +2

      @@fabioa8059 tem uma dissertação só sobre isso do Robson Duarte Xavier
      portaldeinformacao.utfpr.edu.br/Record/riut-1-1006/Details

  • @JEANMARCELOSIMAO
    @JEANMARCELOSIMAO Місяць тому +1

    Grato pelo vídeo Waine, bem legal... Aqui segue uma explicação minha (em vídeo) sobre o PON:

    • @LucasAlfare
      @LucasAlfare Місяць тому

      😢

    • @waine_jr
      @waine_jr  Місяць тому +2

      Honra ver vc por aqui, professor! O UA-cam não deixa colocar alguns links nos comentários, me manda pelo Instagram ou coloca com a URL separada que eu fixo um comentário com os links aqui.

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      @@waine_jr Legal, acabei de colocar num comentário, só deixei um undercore antes e um depois do link ;-)

  • @oluap2028
    @oluap2028 Місяць тому +2

    Isso me lembra o pacote context do Go, q serve como uma forma de comunicação entre os métodos da aplicação

    • @waine_jr
      @waine_jr  Місяць тому +3

      A ideia seria algo até mais genérico, em que você define regras e o desencadeamento de ações e comunicação ocorrer automaticamente com base nessas regras (podendo utilizar ferramentas como os context em Golang ou similar)

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      @@waine_jr Eh isso ai...

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      Creio que dissertações como a do Robson Duarte Xavier ou do Fabio Negrini possam ajudar a entender melhor as diferenças...

  • @anquelmartho
    @anquelmartho Місяць тому

    Ô waine, tem as moral de falar sobre a Ceitec? E por que o sul do Brasil (rs sc pr) parecem ter uma tradição em computação e semicondutores?

    • @waine_jr
      @waine_jr  Місяць тому

      Eu fiz um reels já sobre a ceitec, mas acho que vale um vídeo aqui no UA-cam. Tenho que fazer mais pesquisa pra fazer esse vídeo, mas é um bom tema.

    • @anquelmartho
      @anquelmartho Місяць тому

      @@waine_jr Na verdade na verdade mesmo, nem precisa ser especificamente sobre a Ceitec, mas sobre o estado da tecnologia, no Brasil, em relação a semicondutores. Há uns meses vi um video no canal Asianometry, "Brazil Tried to Protect Its Computer Industry", achei simplesmente fabulosa a história, não fazia ideia de que o país tinha chegado tão longe e na pura força do ódio. :-D
      Talvez você aí, como sudestino, conheça mais dessa história pra contar.

  • @dtrabss
    @dtrabss Місяць тому

    Que cabelinho bonito o do Waine ...

    • @waine_jr
      @waine_jr  Місяць тому

      Tenho que aproveitar enquanto ainda tenho kkkkkkkk

  • @Triple_Kirk
    @Triple_Kirk Місяць тому

    Me parece muito com o padrão de projeto OBSERVER.

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому +2

      O PON usa Observer a fundo mas é diferente, queira ver as dissertações do Adriano Francisco Ronszcka (CPGEI/UTFPR) e do Robson Duarte Xavier (PPGCA/UTFPR)

  • @MateusDuarttee
    @MateusDuarttee Місяць тому

    Não sei se não entendi o vídeo ou se não entendi o padrão observer, me parecem ser a mesma coisa, alguém sabe a diferença?

    • @waine_jr
      @waine_jr  Місяць тому +1

      Ao meu ver é semelhante a diferença entre eventos e notificações essa questão do Observer. Notificação a gente não tá falando de pub/sub, mas sim de um sistema reativo baseado em regras bem definidas e com notificações e reações automáticas. Eventos a gente tem tmb tem essa reatividadde, mas ela não é automática e tem que ser feita programaticamente

    • @MateusDuarttee
      @MateusDuarttee Місяць тому +1

      @@waine_jr certo, vamos lá, eu modelei um sistema usando esse paradigma do vídeo, fiz toda a estruturação dos estados e das notificações, na hora de implementar não vai ser exatamente um padrão de observer? Acho que essa era minha dúvida, eu não estou enxergando como que na prática uma implementação desse paradigma não vai ser em cima de uma estrutura ja conhecida, eu cheguei a ver o video da explicação que esta na descrição e o pseudo codigo parecida muito semelhante com um pseudo codigo de um observador

    • @waine_jr
      @waine_jr  Місяць тому +1

      Não, definitivamente não vai ser igual. Assim como implementar um sistemas de regras é diferente num paradigma lógico e num paradigma imperativo. Pra notificações ou SBRs a reatividade é do sistema, você não precisa programar ela, diferente de eventos ou observer em que vc faz na mão as chamadas pra avisar que algo aconteceu.

    • @MateusDuarttee
      @MateusDuarttee Місяць тому +1

      @@waine_jr tem algum exemplo?

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      @@MateusDuarttee Queira ver a dissettação do Robso Duarte Xavier repositorio.utfpr.edu.br/jspui/handle/1/1006 e do Adriano Francisco Roszncka repositorio.utfpr.edu.br/jspui/handle/1/327 e mesmo a tese dele repositorio.utfpr.edu.br/jspui/handle/1/4234

  • @MichelLacerda
    @MichelLacerda Місяць тому

    smalltalk não fazia isso desde a década de 60? ou só é o mesmo conceito aplicado as novas tecnologias?

    • @waine_jr
      @waine_jr  Місяць тому +1

      O Simão (quem fez isso) já trabalhou e conhece Smalltalk (inclusive falava mt bem), eu creio que alguma diferença deva existir kkkkkkkkkkk vale checar o material do doutorado e artigos subsequentes pra entender o assunto e criticá-lo adequadamente

    • @MichelLacerda
      @MichelLacerda Місяць тому

      @@waine_jr Não é uma crítica, só uma dúvida, pois me pareceu o mesmo conceito aplicado a atualidade.

    • @MichelLacerda
      @MichelLacerda Місяць тому

      @@waine_jr Por exemplo, na Unreal Engine possuí três formas de se lidar com eventos:
      - Event, clássico, baseado em poll
      - Interfaces/Message provindo do C++, apenas contratos entre duas classes
      - ** Event Dispatchers que me parece com a ideia proposta no artigo e do Smalltalk, que atualmente é muito utilizado nos frameworks de frontend reativos, basicamente descrevemos o protótipo de um evento que será ouvido apenas pelos assinantes do mesmo. (até prefiro essa opção na maioria das vezes para justamente desacoplar instancias, já que uma porta não necessariamente precisa saber quem é o personagem, apenas que houve uma interação com a maçaneta)
      Pelo menos foi isso que entendi no artigo "MÉTODO PARA A CRIAÇÃO DE LINGUAGENS DE PROGRAMAÇÃO E COMPILADORES PARA O PARADIGMA ORIENTADO A NOTIFICAÇÕES EM PLATAFORMAS DISTINTAS" do Adriano de 2019.
      Talvez o ponto principal dessa tese/artigos seja descrever essa arquitetura já conhecida, mas que me parece um pouco difusa devido as diversas aplicações em que ela é empregada e não há muita documentação, apenas funciona.
      No mais, não é uma crítica, apenas uma dúvida sincera, todo conhecimento agregador é válido.

    • @waine_jr
      @waine_jr  Місяць тому +1

      @@MichelLacerda entendi kkkkk foi no costume da internet a resposta, perdão. Eu acho que vou pesquisar mais sobre SmallTalk, pq todo mundo que vejo ouvindo falar sobre POO fala mt bem de SmallTalk. Sobre essa dúvida, eu fiz o vídeo mais pra divulgação, tô bem longe de ser especialista ou até conhecedor do PON, vale checar os materiais do Simão sobre o tema pra se aprofundar

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому +1

      Smalltalk é puramente POO, já o PON até elementos de POO mas orientado a notificações no seu âmago... Queira ler os trabalhos do PON para melhor entender, grato.

  • @thelinuxlich
    @thelinuxlich Місяць тому

    parece apenas outro nome para functional reactive programming

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      Para entender a diferença, queira ver a dissertação do Fabio Negrini no CPGEI/UTFPR mais precisamente...

  • @vitordeoliveira6139
    @vitordeoliveira6139 Місяць тому

    Me parece a mesma coisa que event-driven.....
    Nao vi nada novo para ser sincero.

    • @waine_jr
      @waine_jr  Місяць тому +1

      Tem um outro comentário aqui sobre isso. Definitivamente não é a mesma coisa

    • @JEANMARCELOSIMAO
      @JEANMARCELOSIMAO Місяць тому

      Vide a dissertação do Robson Duarte Xavier em particular, ou alguns dos outros + ou - 25 trabalhos para entender melhor, obrigado