Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AdvPL - As vantagens de se manter uma linguagem proprietária

AdvPL - As vantagens de se manter uma linguagem proprietária

Este post conta a trajetória de nossa linguagem, do Clipper ao TLPP, passando pelos desafios e conquistas que ocorrem até os dias de hoje.

TOTVS Developers

August 25, 2020
Tweet

More Decks by TOTVS Developers

Other Decks in Programming

Transcript

  1. TODOS OS DIREITOS RESERVADOS
    AdvPL
    As vantagens de
    uma linguagem
    proprietária
    /Ricardo Mansano
    Agosto /2020

    View full-size slide

  2. 2
    As vantagens de uma
    Linguagem proprietária

    View full-size slide

  3. 01
    The very
    beginning
    3

    View full-size slide

  4. 4
    E no princípio Deus (do latim DEVSupremus) criou o Clipper
    e viu Deus que era bom...
    Onde tudo começou...

    View full-size slide

  5. 5
    E no princípio Deus (do latim DEVSupremus) criou o Clipper
    e viu Deus que era bom...
    Onde tudo começou...
    brincadeira...

    View full-size slide

  6. 6
    Tudo começa da necessidade...
    A necessidade

    View full-size slide

  7. 7
    No final dos anos 90 todo software
    precisava rodar no Windows
    A necessidade

    View full-size slide

  8. 8
    A então Microsiga tinha milhões
    de linhas de código em Clipper
    E uma dúvida...
    A necessidade

    View full-size slide

  9. 9
    A primeira iniciativa foi o porte
    para o Fivewin.
    Clipper 5.3 => 5.Win
    A necessidade

    View full-size slide

  10. 10
    Por ser uma linguagem
    de 16 bits, as quedas eram
    constantes...
    A necessidade

    View full-size slide

  11. 11
    Tecnicamente o Delphi era a escolha lógica.
    Mas financeiramente isso seria muito caro.
    A necessidade

    View full-size slide

  12. 12
    Lembram que eu falei que eram MILHÕES DE LINHA DE CÓDIGO...
    A necessidade

    View full-size slide

  13. 02
    Thinking
    outside
    the box
    13
    13

    View full-size slide

  14. 14
    A resposta foi difícil mas incisiva
    Fora da caixa

    View full-size slide

  15. 15
    A resposta foi difícil mas incisiva
    Porque migrar para uma nova linguagem
    se posso simplesmente criar a minha própria ???
    Fora da caixa

    View full-size slide

  16. 16
    A resposta foi difícil mas incisiva
    Porque migrar para uma nova linguagem
    se posso simplesmente criar a minha pŕopria ???
    Economizando anos com a re-escrita de fontes
    e testes de toda uma nova engine...
    Fora da caixa

    View full-size slide

  17. 17
    ● Criar o ecossistema
    Desafios

    View full-size slide

  18. 18
    ● Criar o ecossistema
    Desafios
    Futuro

    View full-size slide

  19. 19
    ● Criar o ecossistema
    Desafios
    Evolução

    View full-size slide

  20. 20
    ● Criar o ecossistema
    ● Ambiente Client/Server
    Desafios

    View full-size slide

  21. 21
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    Desafios
    DbSkip() x Eof()

    View full-size slide

  22. 22
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?

    View full-size slide

  23. 23
    Desafios
    SB1->( DBAppend( .F. ) )
    SB1->B1_DESCR := "PRODUTO 001"
    SB1->B1_VALOR := 10.00
    SB1->( DBCommit() )
    X
    DBEnv [POSTGRES/PROTHEUS12] DBThread [(ID 23381)]
    [127.0.0.1:5027] IDLE [ ]
    InTransact [0 s.] Memory [1246288]
    Running [ROP_UPDATE] RCV [438092]SND [1711952]
    TCBuild [20181212-20181220]
    TCVersion [18.2.1.0_RC1] ARCH [64] OS [LINUX]
    UPDATE SB1990 SET B1_DESCR = ?,B1_VALOR = ?
    WHERE R_E_C_N_O_ = ?
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?

    View full-size slide

  24. 24
    Desafios
    SB1->( DBAppend( .F. ) )
    SB1->B1_DESCR := "PRODUTO 001"
    SB1->B1_VALOR := 10.00
    SB1->( DBCommit() )
    X
    DBEnv [POSTGRES/PROTHEUS12] DBThread [(ID 23381)]
    [127.0.0.1:5027] IDLE [ ]
    InTransact [0 s.] Memory [1246288]
    Running [ROP_UPDATE] RCV [438092]SND [1711952]
    TCBuild [20181212-20181220]
    TCVersion [18.2.1.0_RC1] ARCH [64] OS [LINUX]
    UPDATE SB1990 SET B1_DESCR = ?,B1_VALOR = ?
    WHERE R_E_C_N_O_ = ?
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?

    View full-size slide

  25. 25
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    ● Interface

    View full-size slide

  26. 26
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    ● Interface

    View full-size slide

  27. 27
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    ● Interface
    ● Ambiente de desenvolvimento

    View full-size slide

  28. 28
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    ● Interface
    ● Ambiente de desenvolvimento
    ● E misturando tudo isso...

    View full-size slide

  29. 29
    Desafios
    ● Criar o ecossistema
    ● Ambiente Client/Server
    ● Como me comunicar com um SGDB através do ISAM?
    ● Interface
    ● Ambiente de desenvolvimento
    ● E misturando tudo isso…
    ● Nascia em 1997 o Protheus 5.07

    View full-size slide

  30. 03
    Always
    looking
    forward
    30

    View full-size slide

  31. 31
    Evolução contínua
    Próximos passos...

    View full-size slide

  32. 32
    Estendendo o ecossistema para novos SO’s
    Evolução contínua

    View full-size slide

  33. 33
    Estendendo o ecossistema para novos SO’s
    ● Mantendo a compatibilidade
    ● Garantindo esforço zero aos nossos Dev’s
    ● e principalmente aos nossos clientes
    Evolução contínua

    View full-size slide

  34. 34
    Estendendo o ecossistema para novos SO’s
    ● Mantendo a compatibilidade
    ● Garantindo esforço zero aos nossos Dev’s
    ● e principalmente aos nossos clientes
    Evolução contínua

    View full-size slide

  35. 35
    Estendendo o ecossistema para novos SO’s
    ● Mantendo a compatibilidade
    ● Garantindo esforço zero aos nossos Dev’s
    ● e principalmente aos nossos clientes
    Evolução contínua

    View full-size slide

  36. 36
    Estendendo o ecossistema para novos SO’s
    ● Mantendo a compatibilidade
    ● Garantindo esforço zero aos nossos Dev’s
    ● e principalmente aos nossos clientes
    Evolução contínua
    nossos Dev’s desenvolvem para multiplataforma...

    View full-size slide

  37. 37
    Mobile
    Evolução contínua

    View full-size slide

  38. 38
    Mobile
    Evolução contínua
    nossos Dev’s desenvolvem para dispositivos móveis...

    View full-size slide

  39. 39
    Navegadores
    Evolução contínua

    View full-size slide

  40. 40
    Evolução contínua
    Navegadores

    View full-size slide

  41. 41
    Evolução contínua
    nossos Dev’s desenvolvem para o mundo Web...
    Navegadores

    View full-size slide

  42. 42
    Aplicação nativa
    Evolução contínua
    Armv7 / Armv8

    View full-size slide

  43. 43
    Evolução contínua
    Aplicação nativa

    View full-size slide

  44. 44
    Evolução contínua
    nossos Dev’s passarão a desenvolver para o ARM...
    Aplicação nativa

    View full-size slide

  45. 45
    Evolução contínua
    Navegadores

    View full-size slide

  46. 46
    Evolução contínua
    Navegadores

    View full-size slide

  47. 47
    Evolução contínua
    Arquitetura

    View full-size slide

  48. 48
    Evolução contínua
    Arquitetura

    View full-size slide

  49. 49
    Evolução contínua
    Integração
    ● Aplicativos

    View full-size slide

  50. 50
    Evolução contínua
    Integração
    ● Aplicativos
    ● Periféricos

    View full-size slide

  51. 51
    Evolução contínua
    Controlando as mudanças

    View full-size slide

  52. 52
    Evolução contínua
    Controlando as mudanças
    ● Estendendo novos protocolos
    ● Criando novas funções conforme a
    necessidade
    ● Agregando novas ferramentas
    ● Decidindo por novos a caminhos
    sem perder o foco no legado
    WebSocket
    SSL
    HTTPs

    View full-size slide

  53. 53
    Evolução contínua
    Controlando as mudanças
    ● Estendendo novos protocolos
    ● Criando novas funções conforme a
    necessidade
    ● Agregando novas ferramentas
    ● Decidindo por novos a caminhos
    sem perder o foco no legado

    View full-size slide

  54. 54
    Evolução contínua
    AdvPL x JS
    Controlando as mudanças
    ● Estendendo novos protocolos
    ● Criando novas funções conforme a
    necessidade
    ● Agregando novas ferramentas
    ● Decidindo por novos a caminhos
    sem perder o foco no legado

    View full-size slide

  55. 55
    Evolução contínua
    Controlando as mudanças
    ● Estendendo novos protocolos
    ● Criando novas funções conforme a
    necessidade
    ● Agregando novas ferramentas
    ● Decidindo por novos a caminhos
    sem perder o foco no legado

    View full-size slide

  56. 56
    Evolução contínua
    Controlando as mudanças
    ● Estendendo novos protocolos
    ● Criando novas funções conforme a
    necessidade
    ● Agregando novas ferramentas
    ● Decidindo por novos a caminhos
    sem perder o foco no legado

    View full-size slide

  57. totvs.com
    @totvs
    /totvs company/totvs
    totvs.store
    @totvs
    ● Tecnologia + Conhecimento são nosso DNA.
    ● O sucesso do cliente é o nosso sucesso.
    ● Valorizamos gente boa que é boa gente.
    OBRIGADO
    RICARDO MANSANO
    Tecnologia
    [email protected]
    #SOMOSTOTVERS

    View full-size slide