Como muitos analistas me perguntam, hoje vim trazer um overview sobre a linguagem TL++, a evolução da AdvPL.
É galerinha, quando eu fazia parte da Engenharia de Software da TOTVS há uns 6 anos atrás (via antigo ByYou / Fluig), o projeto ainda era um esboço chamado de AdvPL++, hoje ele já está no mercado, e essa linguagem é chamada TL++ (TOTVS Language Plus Plus ou “Tê – Élé – Mais – Mais”).
Entre as novidades, algumas limitações que vinham do antigo Clipper foram quebradas, porém ainda existem muitos mistérios entre a comunidade, e aqui vim falar alguns deles (dos que sei pelo menos rs). Abaixo alguns recursos e características sobre a TL++:
- Extensão de arquivo é .tlpp
- Modelo padrão MVC em AdvPL não funcionará em TL++ (por causa da ModelDef e ViewDef serem estáticas)
- Melhorias em orientação a objetos (como encapsulamento, métodos estáticos e annotations)
- Utilização de namespaces
- Suporte nativo a JSON
- Nomes longos em funções, variáveis, etc (antes o limite era de 10 caracteres)
- Disponibilização de Tipagem Forte de dados (esse é possível usar em AdvPL)
Sabendo de algumas dessas características, vamos ver um pequeno exemplo abaixo, onde eu montei uma User Function simples apenas para testar o nome de variáveis (o nome do arquivo que eu fiz foi zTst.tlpp):
/*/{Protheus.doc} zFuncaoTesteTLPP Funcao de teste do TL++ @author Atilio @since 20/06/2020 @version 1.0 @type function @obs Se fosse em AdvPL, o nome da User Function iria ate zFuncaoT (por causa do u_) /*/ User Function zFuncaoTesteTLPP() Local nVariavelComNomeGrande AS NUMERIC Local nVariavelComNomeGrande2 AS NUMERIC //Antes em AdvPL, nesse momento ele iria considerar apenas os 10 primeiros caracteres, logo as duas variaveis seriam nVariavelC nVariavelComNomeGrande := 10 Alert(nVariavelComNomeGrande2) Return
E agora o print, demonstrando que ambas as variaveis, existem e possuem valor distinto na memória.
A intenção da linguagem é ser o back-end, enquanto o PO-UI (antigo Portinari) ficaria encarregado do front-end. Porém, todavia, no entanto, entretanto… Não é apenas renomear um arquivo de .prw para .tlpp, e achar que já está programando em TL++.
Se você fizer isso, é o mesmo que criar um arquivo em .cpp (C++) e utilizar comandos e recursos da Linguagem C pura. Acontece que existem bibliotecas específicas da TL++, que não foram ainda liberadas para desenvolvedores externos utilizar.
Eu conversei com um amigo meu da TOTVS Matriz, e ele me disse que a posição de liberação da linguagem, é esperar a garantia estendida de algumas releases do Protheus finalizar, para daí sim liberar ao público, talvez por isso vemos pouquíssimos exemplos de TL++ na internet.
Então jovem, não precisa ficar afobado, no tempo certo as bibliotecas estarão disponíveis para nós. Enquanto isso, aproveite a boa e velha programação em AdvPL.
Caso você queira ir dando uma aprofundada na linguagem, segue documentação oficial do TDN: https://tdninterno.totvs.com/pages/viewpage.action?pageId=334340072
Bom pessoal, por hoje é só.
Abraços e até a próxima.
muito boa explicação Grande Daniel San……como sempre dando uma aula…..
Opa, obrigado pelo feedback Patini san. Grande abraço.
Professor, excelente artigo.
Considerando o tempo decorrido desde a publicação do seu artigo, pode nos dizer se a TOTVS já liberou as bibliotecas específicas do TL++?
Eu vi algumas referências em dois artigos do TDN, mas não tenho ideia de como obter essas bibliotecas. São estes dois artigos aqui:
https://tdn.totvs.com/display/tec/Downloads
https://tdn.totvs.com/pages/viewpage.action?pageId=555860439
Pode nos ajudar de alguma forma?
Obrigado pelo constante apoio.
Grande Maicon, tudo joia?
Então, na verdade as bibliotecas internas ainda não.
Mas a partir da lib nova (disponível na 12.1.27), você consegue embarcar aplicações usando o front-end PO-UI com FWCallApp (inclusive já tem uma parametrização para ativar, caso queira conhecer – https://terminaldeinformacao.com/2020/11/30/confira-o-novo-visual-do-protheus/ ).
Porém, a expectativa é a TOTVS liberar futuramente essa biblioteca específica.
Perfeito, grande mestre.
Eu já havia lido a sua publicação, mas não havia testado. Vou colocar isso na minha lista de atividades.
Muito obrigado pelo retorno.
Eu que agradeço pelo comentário Maicon.
Grande abraço.