Existem diversos tipos de linguagens de programação. Umas atendem necessidades específicas, enquanto outras são mais abrangentes. Mas qual a importância de se ter uma linguagem própria, ou o que isso reflete e agrega para uma empresa de sistemas hoje em dia? Afinal, qual é a linguagem de programação TOTVS e quais outras linguagens de mercado usamos no desenvolvimento dos nossos produtos?
Nesse artigo convidamos você a saber um pouco mais sobre o ADVPL, a linguagem própria da TOTVS, e ficar sabendo sobre outras linguagens usadas pelos nossos developers no dia a dia.
O que é uma linguagem de programação?
Para desenvolver um software, é preciso que uma escrita especifique um conjunto de instruções e regras, o que chamamos de linguagem de programação.
Esse conjunto de regras sintáticas e semânticas de implementação de um sistema, é desenvolvido por especialistas, para servir aos mais diversos propósitos. E para cada um deles existem várias linguagens específicas, como a Marcação, Folha de Estilos, Simulação entre tantas outras.
Um desenvolvedor “coda” – termo muito usado para quem escreve esses códigos – em uma ou mais linguagens para programar e fazer a manutenção de um software.
Essa linguagem é essencial na criação de programas e ferramentas que usamos diariamente, seja para trabalhar, navegar na internet ou nos divertirmos em games eletrônicos, por exemplo, tanto em computadores como em smartphones.
A importância de se ter uma linguagem própria
Escrever a sua própria linguagem e ter o domínio total de sua tecnologia, traz inúmeros benefícios para uma desenvolvedora de software. Uma delas é a confiança de que a linguagem não “morrerá” de uma hora para outra. Os sistemas TOTVS possuem um desenvolvimento específico, programados para agirem direto na dor dos nossos clientes, o que nos coloca em uma situação muito positiva no mercado.
Ter a possibilidade de fazer em “casa” um módulo novo, simplifica a execução de algumas tarefas e a expedição da aplicação. Outro ponto importante é a proximidade com quem faz o compilador, que gera uma facilidade em implementar novos recursos e entrega boas soluções para os desenvolvedores.
Isso é essencial para atender casos em que há alguma necessidade muito específica, e ter o poder de trabalhar com uma linguagem sua, dá velocidade a todo o processo. Cria-se uma dinâmica para atender ao pedido do recurso com quem faz o compilador, o que traz muita facilidade para implementar novos recursos da melhor forma possível.
É mais liberdade e responsabilidade na hora de programar, desenvolvendo boas soluções de forma mais produtiva. Usando plataformas do mercado, dependendo de suas atualizações e mudanças, você pode se tornar “refém” de terceiros.
Uma vez que a plataforma é sua, é muito mais cômodo homologar algo. Mas ao mesmo tempo, inovações que surgem nas plataformas de mercado podem ser adaptadas para atender da melhor forma as necessidades dos clientes.
As nossas linguagens
Vamos então conhecer um pouco do nosso universo, começando pelas nossas linguagens próprias.
ADVPL
A Advanced Protheus Language foi lançada em 1999 e trouxe evolução para o mercado. Também conhecida pela sigla ADVPL, é a linguagem em que os módulos da linha Protheus, um dos ERPs da TOTVS, foram escritos. Seu objetivo é criar aplicações altamente flexíveis, o que tornou possível ao Protheus, ser um produto altamente personalizável, que se adapta ao contexto de cada cliente.
Para a TOTVS, como uma empresa desenvolvedora de software, possuir uma linguagem própria de programação permitiu implementar inovações sem deixar de respeitar o melhor momento, tanto interno como dos nossos clientes, frente às mudanças tecnológicas do mercado durante as últimas décadas.
Um bom exemplo são as integrações entre sistemas com web services, portais web e aplicativos mobile, como os já disponíveis na Google Play.
Atualmente na TOTVS existem mais de 30 milhões de linhas de código escritas em ADVPL para mais de 90 módulos já desenvolvidos para os produtos da linha Protheus. Um número expressivo para uma linguagem nacional. Confira a documentação técnica.
TL++
A ADVPL é uma linguagem dinâmica, que sempre recebeu atualizações em recursos e possibilidades. Em 2019, porém, ela conquistou mais uma evolução, que acabou ganhando um novo nome: TL++.
A TOTVS Language Plus Plus (TL++) tem uma nova extensão tlpp, mas não significa que os fontes prw, prg e prx deixarão de funcionar. Na verdade, um programa TL++ poderá chamar funções ADVPL e vice-versa.
O TL++ traz a tipagem de variáveis, que previne erros de conversão de tipos, que, no ADVPL, são gerados em tempo de execução e agora são avisados no momento da compilação do código fonte.
Entre outras novidades, o namespace permite uma melhor organização no código binário. Desenvolvemos um facilitador para criação de JSON, recurso de interface, de Reflection e Annotation.
Talvez a maior evolução se concentra no aspecto de que, no TL++, temos uma significativa expansão do limite de caracteres, aumentando de 10 para os atualmente 255. Entregando uma liberdade muito maior ao programador/desenvolvedor na hora de criar funções e variáveis.
O TL++ também possui uma camada para execução de testes unitários, chamado Unit Test Engine, sendo fácil escrever um código de teste, trazendo flexibilidade para funções ou classes e validação da porcentagem de cobertura de código.
Quer saber como utilizar essas novidades? Veja no Github da TOTVS.
4GL Logix
O 4GL (4th generation language) Logix, é uma linguagem de mercado que foi implementada a partir da primeira grande aquisição da TOTVS. Em 2005, a ainda Microsiga adquiriu da empresa Logocenter, e com isso a linguagem Informix-4GL que utilizava para o desenvolvimento de seu ERP, o Logix.
O grande motivador para a implementação foi a necessidade de atualização e evolução desta plataforma, que se encontrava muito depreciada na época, além dos custos de royalties para uso, já que o compilador era comercializado por uma empresa francesa.
Os desafios para implementação foram semelhantes ao da ADVPL em alguns pontos, pois tratava-se de uma linguagem antiga com arquitetura Fatclient, que rodava com interface gráfica somente em Windows.
Para se ter ideia deste tipo de dificuldade, é como você construir um prédio exatamente igual a outro, por dentro e por fora, sem ter acesso a nenhuma planta ou projeto. Um verdadeiro desafio que o nosso time conseguiu vencer.
Graças a essa vitória, é uma linguagem que não apenas está viva como a utilizamos até hoje nos produtos da linha Logix.
Linguagens de mercado que utilizamos
Na TOTVS não desenvolvemos somente com a nossa própria linguagem, também utilizamos várias outras de mercado. Isso por conta das diversas aquisições de empresas que ocorreram desde o início da TOTVS, que trouxerem uma grande variedade de produtos, cada um com suas especialidades e especificidades.
Como exemplos temos a 4GL do Logix, depois o C# vindo com o sistema RM e também a famosa linguagem Java, que veio com o Datasul. Empresas posteriores vieram com Visual Basic, PHP e outras tantas linguagens.
A necessidade de evolução das interfaces dos produtos para web, ainda nos anos 2000, trouxe para nossa casa o uso da linguagem Javascript e, posteriormente, a sua variedade de frameworks. Com certeza o Angular é o principal que usamos hoje em dia, inclusive em nossa primeira aplicação open source de componentes visuais. Mas não descartamos o React, pois é muito usado em alguns produtos.
Também utilizamos Javascript para a maioria dos aplicativos mobile, ou seja, aplicativos híbridos. Ainda dependendo muito da necessidade, utilizamos linguagens nativas do IOS e Android.
- Para nativos em IOS, começamos ainda na época do Objective-C, e atualizamos conforme a demanda para o mais recente Swift,
- Já no Android, estamos no caminho semelhante, com aplicativos em Java e os mais recentes com o Kotlin.
Para a própria ADVPL e TL++, utilizamos C++ para executar os códigos-fontes no AppServer, e também para mostrar a interface no SmartClient para os usuários.
Java e C# são as mais utilizadas pelas linhas de produtos de todos os segmentos que a TOTVS atua, e plataformas como o TOTVS Fluig, inclusive no novo lançamento de suas aplicações No-Code.
Procurando uma convergência na adoção de linguagens para os novos produtos e também na revitalização dos existentes, optamos por focar nessas 2 linguagens, além do TL++. Tudo já pensando no novo modelo de desenvolvimento para nuvem, baseado em microsserviços.
Dessa forma, para o C# utilizamos nas novas aplicações o .Net Core como framework, e para apoiar nossos desenvolvedores criamos o TOTVS .Net Core Framework, que facilita o desenvolvimento de APIs. Pensando no mesmo sentido, para auxiliar os desenvolvedores Java, criamos o TOTVS Java Framework.
E como escolhemos em qual linguagem vamos codar uma nova aplicação? Com quase 3 mil desenvolvedores em várias cidades do Brasil, atualmente escolhemos a linguagem mais aderente à região. Mas com a arquitetura descentralizada das novas aplicações em nuvem, existe a possibilidade de um produto ser criado em mais de uma linguagem, seguindo o conceito de microsserviços.
Conheça a comunidade TOTVS Developers
Para saber mais sobre outros assuntos da comunidade dev, conheça o TOTVS Developers. Trata-se de uma comunidade engajada, que discute tendências tecnológicas do mercado e compartilha muita informação.
Quer fazer parte desta comunidade? Acesse agora mesmo nosso portal: developers.totvs.com
Cesar Luis Silva diz:
ótimo conteúdo! parabéns!!!
30 de outubro de 2020 EM 20:05
Alan Amorim diz:
Olá, Cesar. Obrigado pelas palavras. Não deixe de acompanhar o nosso blog :)
6 de novembro de 2020 EM 12:07