Para quem não conhece, o Maker é uma ferramenta para criação de sistemas web de forma visual. O desenvolvedor não precisa ter conhecimentos avançados de programação para utilizá-lo, porque tudo é feito visualmente com a ajudas de assistentes e gráficos.
Durante essa semana participei de um treinamento dessa ferramenta, e analizando pessoalmente pude ver a capacidade desse sistema de desenvolvido pela empresa baiana Softwell. Abaixo seguem as minhas considerações sobre o Maker.
Como funciona?
O Maker foi desenvolvido em Delphi e (segundo seus representantes) não é um gerador de código fonte, mas se for necessário o mesmo também pode ser gerado.
Os sistemas desenvolvidos no Maker rodam, por padrão, num servidor de aplicações Java, como o Tomcat, por exemplo. Pode-ser gerar um arquivo .war e fazer o deploy num servidor que desejar.
As aplicações depedem do WEBRUN, que vem junto do Maker, e funciona como uma camada entre a aplicação desenvolvida e o servidor de aplicações.¬† Caso já possua um WEBRUN no servidor, também é possível exportar o sistema para um arquivo .jar e o incorporar a ela.
O Maker possui basicamente 3 funções para geração de sistemas, formulários, fluxos e relatórios.
Formulários
Atravéz de formulários acontecem as principais interações com o sistema. O Maker pode gerar automaticamente os formulários baseando-se nas tabelas e relacionamentos do banco de dados. Além de poder criar formulários, sem associação com fonte de dados e que execute uma tarefa em particular.
Fluxos
No Maker os fluxos substituem a codificação na hora de criar regras de negocio para a apliação. Tratam-se de fluxogramas que são associados a determinadas ações do sistema para realizar tomadas de decisão. Pode-se efetuar condições, loops, mensagens de error e retorno, além de um conjunto de funções já disponíveis como concatenação, obtenção de campos de tabelas, conversão de tipos primitivos, etc.
Relatórios
O Maker possui o Report Builder embutido, e o mesmo é utilizado para desenhar os relatórios necessários para a aplicação.
Na minha opinião!
Realmente, depois de presenciar o treinamento, posso dizer a utilização do Maker acelera sim o processo de criação de aplicações, principalmente no caso dos formulários, que podem ser gerados automaticamente a partir de uma fonte de dados.
Porém, é necessário tempo para se tornar um “expert” na utilização do Maker, o mesmo tempo que se levaria para aprender a utilizar um framework como Django, Ruby on Rails ou Grails, por exemplo. E o que, na minha opinião, seria a grande vantagem de uma ferramenta visual sobre os outros, a curva de aprendizagem, é parecida com a desses frameworks.
Eu devo concordar com esse post do guj, em que o usuário kicolobo diz:
Programação OO é ignorada. O código é gerado em Java e C#, porém o processo de desenvolvimento do Maker é procedural. Todos os diagramas são procedurais. Em momento algum (pelo menos na demonstração que vimos), foi criada uma classe de entidade (ou mesmo uma entidade qualquer). Tudo é relacionado diretamente com o banco de dados. Para quem já trabalha com OO, o Maker pode ser visto como retrocesso.
E realmente é verdade, hoje em dia fala-se muito mais em OO e MVC, voltar o desenvolvimento para as tabelas do banco de dados é praticamente um retrocesso. No django, por exemplo, só é necessário configurar o banco de dados, o desenvolvedor não precisa criar as tabelas, o django executa todo esse processo e também cria os formulários automaticamente.
Uma coisa que me incomodou bastante foi a quantidade de cliques necessários para fazer uma concatenação de texto com algumas variáveis. Algo que em python, por exemplo, poderia ficar assim:
texto = "O total da conta do cliente %s foi de %f reais" % (nome,total)
Outro fato importante é que por ser um sistema proprietário, a comunidade do maker praticamente não existe, se comparada com de outras tecnologias, sendo assim, sempre que precisarmos de ajuda temos que recorer ao suporte a softwell.
Conclusão
Analisando o esquema geral, eu não compraria uma licença do Maker para uso pessoal. Além dos fatos mencionados acima, um ambiente de Software Livre me agrada mais, sabendo que a existe uma comunidade por trás ajudando a manter e melhorar o sistema, diferente do modelo proprietário, onde estamos a mercê da empresa dona do sistema.