Recentemente encontrei um artigo que falava sobre as cinco razões para usar um determinado produto no desenvolvimento cross-platform. Entretanto, quando eu terminei de ler todo o texto, percebi que ele abordava o desenvolvimento para dispositivos móveis. Sei que é comum o uso da expressão cross-platform, mas eu costumo dizer que tecnologia para esses dispositivos é apenas mais uma plataforma. Aplicativos para desktop e aplicativos web são outras duas plataformas que precisam ser adicionadas a esse mix.
Então, eu pensei em escrever um post, do meu próprio ponto de vista e listar as razões pelas quais qualquer pessoa que queira desenvolver aplicativos cross-platform, deveria se atentar a ferramenta GeneXus.
Aviso: Trabalho atualmente para a GeneXus, mas mesmo antes de integrar esse time, eu usava o conjunto de ferramentas deles no meu trabalho. E apesar da dificuldade de ser objetivo, vou tentar ser fiel aos fatos e deixar minhas opiniões subjetivas de lado. Esses pontos refletem minhas próprias ideias.
Se GeneXus não é familiar para você, vou te dar um panorama básico. GeneXus é uma ferramenta 4GL de desenvolvimento que representa suas entidades (ou classes) em uma estrutura chamada Transação. Você define suas estruturas (Transações) e não tem que se preocupar com a representação física da informação porque GeneXus é inteligente o suficiente para criar uma normalização 3NF da sua informação no database de sua escolha.
Sabendo disso, GeneXus criará os programas necessários para acessar a informação, mas é preciso sempre ter controle completo do programa. Você pode definir regras e controle de acesso. Basicamente, é tudo o que você está acostumado a fazer, porém, mais fácil.
Com essa introdução, segue minha lista de motivos pelos quais GeneXus é A FERRAMENTA para se começar a prestar a atenção.
1. Uma linguagem para criar regras de tudo
Se você é um desenvolvedor GeneXus, pode pular essa. Se não é, eu sei que você está provavelmente pensando: “eu tenho que aprender outra linguagem de programação?”.
Serei honesto com você: sim, você tem! Mas há dois benefícios básicos de se aprender a linguagem de programação GeneXus.
1.Se você sabe inglês está 50% mais perto. A linguagem GeneXus é realmente simples. Claro que você tem que controlar o fluxo de declarações, atribuições variáveis e as funções nativas básicas para desempenhar todas as suas tarefas, assim como nas outras linguagens de programação.
2.A linguagem de programação GeneXus é utilizada há mais de 25 anos. Ela evoluiu e melhorou com o tempo. Você pode se imaginar usando uma única linguagem de programação por mais de 25 anos? Não é preciso dar os próximos passos, GeneXus já faz isso para você.
2. Cross-platform real
Como eu mencionei anteriormente, GeneXus é utilizado há mais de 25 anos. Nós não geramos aplicativos iOS nativos em 1989, quando tínhamos COBOL e XBase. Então apareceu o RPG. Em seguida veio o FoxPro para Windows, Visual Basic e Visual FoxPro, então Java, C# e Ruby para a web, mais HTML e Javascript, e recentemente Objective-C, Java (para Android e BlackBerry) e Javascript para WinJS e o novo conjunto Microsoft. Então, nós sabemos do que se trata o cross-platform.
3. Native apps
Nós sempre pensamos em GeneXus como uma plataforma agnóstica, então não importa qual é o seu objetivo, seus programas GeneXus vão ser executados em qualquer plataforma. Mas isso não significa “ignorante de plataforma”. Nós sabemos onde você quer usar seus programas. E nós sabemos que as melhores práticas, ou caminhos para executar seus programas, dependem da plataforma alvo. Por esse motivo, geramos códigos nativos na plataforma. Pegue nossos aplicativos gerados em Android como exemplo:
Você pode abrir os recursos gerados com Eclipse, ou usar XCode para nosso código gerado em Objective-C iOS.
Deixe-me ser claro: você não precisa, de fato, fazê-lo. Eu estou só dizendo que você poderia se quisesse.
4. Desenvolvimento mais rápido
Bem, claro que é mais rápido. Mas não vou te dar argumentos de marketing e vendas, já que posso compartilhar minhas experiências pessoais com vocês. Eu criei o aplicativo “Encontre Meu Avião” para Android, iOS (Phone) e Windows 8 (Modern UI) em um mês usando o conjunto de ferramentas GeneXus.
Você acha que pode fazer melhor que isso? Deixe-me lembrá-lo que todo aplicativo tem layouts específicos para sua plataforma. Eu reutilizei alguns deles, mas alguns são exclusivos para as suas plataformas alvo. LINK: http://goo.gl/Wt2jYf.
5. Praticamente sem bugs
Claro que temos bugs. Mas quando você produz seu código, a maior parte do tempo você gerará mais e mais bugs então é mais fácil encontrar. Você poderia escrever um evento e, se houver um bug, dependerá do nosso mecanismo event-firing ou da nossa versão gerada do seu código. O que estou dizendo é que, nosso mecanismo event-firing é o mesmo para todo evento, não importa o que o desenvolvedor escreveu. Ele é realmente testado (e usado).
6. Baseado em modelo
Já que comecei a falar de arquitetura, deixe-me contar que GeneXus é baseado em modelo, o que é uma ótima característica. Não vou tomar muito espaço aqui para explicar porque isso é uma grande coisa. Gaston criou uma lista de oito motivos para apoiar a superioridade do desenvolvimento conduzido por modelo e você pode encontrá-lo aqui: http://goo.gl/lxojcJ.
7. Cenários do mundo real
Todos nós já vimos demonstrações sobre uma nova ferramenta de desenvolvimento, linguagem ou tecnologia no qual com apenas algumas teclas-chaves você consegue um “Oi, Mundo!” como exemplo de instalação e funcionamento. GeneXus é mais robusto do que isso. Claro, eu poderia te mostrar um texto “Oi, Mundo!” em um iPhone em menos de cinco minutos, mas não é o que GeneXus é. GeneXus trata de coisas do mundo real: de um aplicativo buscador de voos a um enorme ERP mundial, e, acredite em mim, há milhares de bons exemplos entre um e outro.
8. À prova do futuro
Não há muito o que dizer aqui. Contamos aos nossos usuários RPG/Cobol que éramos à prova do futuro; nós também contamos aos nossos usuários VB/Visual FoxPro, e agora estamos lhe dizendo que somos à prova do futuro. Mas o que isso significa? Significa que não importa para onde os grandes players estejam indo e não importa o que eles estejam fazendo, nós os levaremos para lá. E se novos players aparecerem? Estaremos lá também. De fato, agora mesmo estamos trabalhando no nosso gerador Windows Phone e adicionando suporte iBeacon para nossos aplicativos.
9. Reorganizações DB gratuitas
Este item merecia um post inteiro. Se você conhece Entity Framework, pense em Genexus como Entity Framework em esteróides. O que acontece quando você precisa mover um atributo de uma tabela para outra ou remover uma tabela inteira, porque você tentou juntar os seus dados em outras tabelas? Genexus cuida disso. Eu sei que parece magia negra, mas não é. Experimente.
Eu não quis escrever um post de marketing, mas sei que falhei. A questão é que realmente acredito que GeneXus é uma ótima ferramenta para o desenvolvimento ágil de software. Sei o que as pessoas estão pensando, porque também já estive nessa posição: “Eu gosto de programar meu próprio código”, “Eu não quero um gerador” (e ainda assim você usa um compilador). Eu já pensei da mesma forma. É um mundo novo e um jeito totalmente novo de se aproximar do problema de desenvolvimento de software. Isso exige que você saia da sua zona de conforto para aprender alguma coisa nova. Mas eu garanto, você nunca vai olhar para trás depois de criar seu primeiro aplicativo na metade do tempo do que faria usando ferramentas tradicionais.
*Sebastian Gomez – Engenheiro de software e consultor GeneXus – a ferramenta de desenvolvimento de sistemas que permite criar aplicativos para as linguagens e plataformas mais populares do mercado, sem necessidade de programar.