Histórico da Página
...
TLPP é um avanço da linguagem AdvPL. Elas não se excluem; pelo contrário, se complementam.
O objetivo em TLPP é oferecer novos recursos de programação conhecidos em diversas linguagens modernas.
A grande maioria dos recursos que já vinham sendo AdvPL é uma linguagem de negócios extremamente poderosa, reconhecida e premiada.
Através dela, muitas soluções e produtos foram desenvolvidos principalmente para o ERP Protheus.
TLPP é uma moderna linguagem de inovação projetada a partir de AdvPL.
Através de TLPP, aplicações e produtos contemporâneos serão e já estão sendo desenvolvidos.
Recursos tradicionais oferecidos em AdvPL estão igualmente propagados em TLPP.
Isso reflete o forte compromisso com o legado, de modo a permitir uma migração gradual e de baixo impacto para quem pretende, futuramente, portar de AdvPL para TLPP.
Contudo, não há dúvidas de que o avanço da tecnologia e consumo dos novos recursos da plataforma, passam a ser endereçados via TLPPRecursos mais novos, oferecidos em outras linguagens, também estão sendo concretizados em TLPP.
Produtos atuais confeccionados em AdvPL não requerem migração forçada para TLPP.
Aplicações ou fontes novos, estes sim, são orientados a serem feitos em TLPP.
AdvPL e TLPP não se excluem; pelo contrário, se complementam e conversam naturalmente entre si.
A fim de elucidar alguns recursos importantes de TLPP e AdvPL, vale a pena observar o seguinte quadro.
Muitos dos recursos estão em ambas linguagens, embora muitos novos só estejam disponíveis em TLPP.
O aprofundamento de cada recurso pode ser guiado na coluna "saiba mais".
recursos | TLPP | ADVPL AdvPL | saiba mais |
---|---|---|---|
escopo de variáveis: local, private, public e static | | | escopo de variáveis |
escopo de funções: function, static function, main function, user function | | | escopo de funções |
estruturas de controle: if, else, while, for e case | | | fluxo de controle |
blocos de código | | | codeblock |
macro-execução | | | macro execução |
acesso a base de dados | | | acesso a base de dados |
execução de jobs e processamento em threads | | | controle de processamento |
error blockcriação de jobs | | | error block |
identificadores com nomes longos | | | |
namespace | | | namespace |
annotation e reflection | | | annotation e reflection |
tipagem: variáveis, funções e parâmetros | | | tipagem |
try-catch | | | try-catch |
parâmetros nomeados | | | parâmetros nomeados |
json inline | | | json |
classes: propriedades públicas, privadas e protegidas | | | modificadores de acesso |
classes: métodos de objetos e métodos estáticos da classe | | | método estático |
classes: sobrecarga de operadores | | | sobrecarga de operadores |
classes: interfaces abstratas | | | interface abstrata |
StaticCall | | | static call |