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
  2. 2 As vantagens de uma Linguagem proprietária

  3. 01 The very beginning 3

  4. 4 E no princípio Deus (do latim DEVSupremus) criou o

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

    Clipper e viu Deus que era bom... Onde tudo começou... brincadeira...
  6. 6 Tudo começa da necessidade... A necessidade

  7. 7 No final dos anos 90 todo software precisava rodar

    no Windows A necessidade
  8. 8 A então Microsiga tinha milhões de linhas de código

    em Clipper E uma dúvida... A necessidade
  9. 9 A primeira iniciativa foi o porte para o Fivewin.

    Clipper 5.3 => 5.Win A necessidade
  10. 10 Por ser uma linguagem de 16 bits, as quedas

    eram constantes... A necessidade
  11. 11 Tecnicamente o Delphi era a escolha lógica. Mas financeiramente

    isso seria muito caro. A necessidade
  12. 12 Lembram que eu falei que eram MILHÕES DE LINHA

    DE CÓDIGO... A necessidade
  13. 02 Thinking outside the box 13 13

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

  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
  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
  17. 17 • Criar o ecossistema Desafios

  18. 18 • Criar o ecossistema Desafios Futuro

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

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

  21. 21 • Criar o ecossistema • Ambiente Client/Server • Como

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

    Como me comunicar com um SGDB através do ISAM?
  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?
  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?
  25. 25 Desafios • Criar o ecossistema • Ambiente Client/Server •

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

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

    Como me comunicar com um SGDB através do ISAM? • Interface • Ambiente de desenvolvimento
  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...
  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
  30. 03 Always looking forward 30

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

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

  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
  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
  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
  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...
  37. 37 Mobile Evolução contínua

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

  39. 39 Navegadores Evolução contínua

  40. 40 Evolução contínua Navegadores

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

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

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

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

    ARM... Aplicação nativa
  45. 45 Evolução contínua Navegadores

  46. 46 Evolução contínua Navegadores

  47. 47 Evolução contínua Arquitetura

  48. 48 Evolução contínua Arquitetura

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

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

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

  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
  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
  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
  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
  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
  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 mansano@totvs.com.br #SOMOSTOTVERS