Opnião sobre o Maker

A coisa que eu não entendo é: o que é novo no maker exatamente?

[quote=rafaelglauber]Trabalho em uma empresa que algumas pessoas assistiram a uma apresentacao do Maker ( eu nao fui uma delas ), porem tive alguns feedbacks a respeito…segundo essas pessoas a proposta passada pelo pessoal do Maker seria algo do tipo:

Tenho um sistema de automacao comercial p/ varejo, ele eh composto de:

20 manutencoes
30 listagens de conferencia
10 relatorios
10 processos do tipo: digitacao de pedidos, recepcao de mercadorias…

O maker faria minhas 20 manutencoes e minhas 30 listagens facilmente (algo que representa boa parte do sistema) e minha equipe so teria esforcos de desenvolvimento para os 10 processos e relatorios, pois ele nao teria “capacidade” de implentar processos um pouco mais sofisticados.

Observando o site da empresa fabricante pude perceber que realmente os produtos ja feitos com o Maker consistem em solucoes de baixa complexidade…minha pergunta eh: Como eh feita a extencao do aplicativo, apos o Maker ter feito as minhas 20 manutencoes simples e minhas 30 listagens?

[/quote]

Ufa !!! Valeu pelo post técnico cara, acho que consigo esclarecer !!!

Ele trabalha com eventos, igual a vb, delphi, access, etc. para cada evento dos componentes, tipo: “ao clicar, ao sair, ao navegar”, você cria o que eles chamaram de “fluxo de ações” - correspondente a um trecho de código, uma rotina. Uma classe em java por exemplo. Porém, não usa texto para criar a lógica, é tudo visual. E, cada nó do fluxo chama uma função específica que faz parte da API. Ao contrário do que divulgam (os que são contra e a favor) não tem mágica nenhuma.

Entendeu ???

Cara, sinceramente:

Não vi nada de novo. Todas as tecnologias que eles empregaram já existem há muito. Wysiwyg para forms, gerador de relatórios visual, orientação a eventos, etc… Eles só simplificaram a maneira de se criar as coisas.

Esqueci de um detalhe: a questão do fluxograma, também foi uma tirada legal. Você consegue usar sua lógica, faz com que as coisas sejam gfeitas do seu jeito, não é aquela coisa enlatada.

É o lance do fluxo que me permitiu deselvolver lógica em java sem que eu tenha que conheçer java.

mas o visual studio 2008 nao faz isso tb? se vc der uma olhada no wf, vai enteder como é fácil tb, mas nem por causa disso vou usar fluxogramas no lugar do código.

Programação por fluxorama exite à (literalmente) décadas. O motivo de você não ver muitos no mercado hoje em dia é porque eles não deram certo antes, exatamente porque a manutenção dessas coisas é horrível. Como se faz refactoring num fluxorama? Testes unitários? De integração?

Fora que representa um passo para trás no que já fizemos na indústria. Como se faz reutilização no maker? Como eu defino objetos? Como uso herança e polimorfismo? Como crio componentes reutilizáveis? uso de aloritmos não-estruturados faz o usuário do maker utilizar técnicas pré-Dijkstra, isso é vltar no tempo 30 anos. De maneira visual mas voltar no tempo.

Existem linhas de pesquisa e produtos muito menos ambiciosos que respondem à todas estas perguntas. Minha pergunta é: como o Maker responde à elas?

Eu acho que até urgirem os primeiro language workbenches de verdade existe mercado para esta ferramenta mas não para desenvolvedores profissionais. Eles podem ser um bom substituto para os Access da vida, usados por programadores não-profissionais que precisam de algo pronto. O problema e que por R$10.000,00 você consegue comprar um sistema pronto feito por encomenda para você por um freelancer competente.

[quote=pcalcado]Programação por fluxorama exite à (literalmente) décadas. O motivo de você não ver muitos no mercado hoje em dia é porque eles não deram certo antes, exatamente porque a manutenção dessas coisas é horrível. Como se faz refactoring num fluxorama? Testes unitários? De integração?

Fora que representa um passo para trás no que já fizemos na indústria. Como se faz reutilização no maker? Como eu defino objetos? Como uso herança e polimorfismo? Como crio componentes reutilizáveis? uso de aloritmos não-estruturados faz o usuário do maker utilizar técnicas pré-Dijkstra, isso é vltar no tempo 30 anos. De maneira visual mas voltar no tempo.

Existem linhas de pesquisa e produtos muito menos ambiciosos que respondem à todas estas perguntas. Minha pergunta é: como o Maker responde à elas?

Eu acho que até urgirem os primeiro language workbenches de verdade existe mercado para esta ferramenta mas não para desenvolvedores profissionais. Eles podem ser um bom substituto para os Access da vida, usados por programadores não-profissionais que precisam de algo pronto. O problema e que por R$10.000,00 você consegue comprar um sistema pronto feito por encomenda para você por um freelancer competente.[/quote]

Eu já usei fluxograma quando desenvolvia em COBOL. Mas era tudo no papel. Depois vc ia pra maquina e tinha que digitar.

Vc poderia citar algumas dessas ferramentas que transformavam fluxograma em código ???

Em contrapartida, até onde conheço, vou tentar fazer algumas colocações sobre seus questionamentos !!!

Qualquer ferramenta RAD UML possui fluxogramas, chamados diagramas de atividade. As ferramentas da Rational, TogetherSoft já fazem isso. Ferramentas de MDA também, e são mais recentes. Você não vai encontrar ferramentas que trabalham com fluxogramas ‘puros’ exatamente orque não é assim que se desenvolve software há uns bons vinte anos. Neste período a indústria se alinhou com a academia no sentido de que programação procedural não estava produzindo software com qualidade desejada.

Utilizar um maker da vida, cujo único apelo é utilizar uma tecnologia 20 anos atrasada, é regredir. Claro que para amadores não faz muita diferença, eles não possuem tempo e/ou interesse em aprender as boas práticas da indústria.

O que não dá é para considerar este tipo de ferramenta como alternativa séria para o desenvolvimento profissional. Mesmo as ferramentas de UML/MDA e etc. possuem tantos problemas que ainda não são uma alternativa viável para a maioria dos projetos. Fazer CRUD basico todas fazem, o problema é quando criamos sistemas de verdade.

Vamos desmitificar as coisas:

A primeira vez que vi a IDE do maker, fiquei decepcionado. É extremamente pobre. Estava acostumado com a paleta de componentes do delphi, e me perdi todo. Depois do treinamento, vi que ali estavam todos os componentes que realmente eram necessários para fazer meus sistemas.

E, acho, que é ai o diferencial do maker. Feito para aplicações transacionais, nisso acho que ele realmente dá um banho nas outras IDES que conheço.

  1. Parecendo com o access,delphi, vb, etc. tudo wisywyng. o desenvolvedor não precisa aprender nada de novo, ele já aprendeu antes.
  2. Criaram uma espécie de núcleo para garantir a performance, segurança, etc. Esse núcleo trabalha com 3 camadas, clustering (já testei inclusive), e um monte de coisas/conceitos que normalmente o desenvolvedor precisa se preocupar quando cria uma aplicação.
  3. Com o uso do fluxograma, vc desenvolve sua rotina, usando sua lógica e depois diz onde deve “rodar”: no banco: ele cria uma procedure, no servidor: ele transforma em java, no cliente: vai para javascript
  4. Aí, é só colocar o fluxo no evento e pimba, a coisa acontece.

Quanto aos conceitos que vc colocou, orientação a objetos, polimorfismo, etc.vc não os enxerga na IDE, vi que eles foram utilizados lá na camada 2 - no núcleo. Eles conseguiram separar completamente a especificação do sistema - forms, reports, rules, do código, e juntar durante o funcionamento.

E, sobre o poder da ferramenta:

Realmente não acho que ela sirva para alguma coisa diferente de telas de cadastro, relatórios e regras de negócio, mas, para isso, é bem legal.

Então temos um ponto que ambos concordamos: Maker serve para fazer telas de cadastro. Meus pontos aqui vão focar isso.

Qualquer aplicação Java pode ser clusterizada sem o menor problema. A maioria dos servidores faz isso no console de administração. O problema e que geralmente este cluster ‘de caixinha’ não vale nada. Quem já trabalhu em ambientes que realmente precisam de disponibilidade e performance sabe que o arquiteto pega as ferramentas (cluster, load-balancer, etc.) e as customiza de acordo com o tipo de aplicação. Se eu fizer um cadastro para o BBB com o maker o cluster dele vai aguentar? A empresa não disponibiliza informações que guiem para uma conclusão mas com minha experiência em RAD e em cenários de alta dsponibilidade acho que isso dificilmente seria verdade. De qualquer forma, imagina que eu tenha feito oc adastro no maker e agora descobri que o cluster não aguenta. Como eu faço para escalar a aplicações, usar outra técnica ou algo do tipo?

Como aplicações de cadastro que precisam de clustering (que, aliás, é apenas uma das formas de tornar uma aplicação escalável -hoje em dia possivelmente é a forma menos utilizada) são raras vamos focar em outro aspecto: reusabilidade. Eu não tenho objetos, pelo menos tenho subrotinas? Qual a unidade de reuso do maker? Como eu consigo não ter que reescrever código (ou redesenhar diagrama, o que for)?

Fazer CRUD básico é possível com dezenas de ferramenta, livres e ratuitas. Qual a vantagem do maker pro AndroMDA, por exemplo? Note que MDA (1)é uma padrão, não algo proprietário, (2) é baseado em orientação a objetos, e não fluxogramas, (3) gera modelos executáveis em java e .Net, (3) é livre e gratuito, (4) e baseado em UML, outro padrão, (5) é extensível com cartchos.

[quote=pcalcado]Então temos um ponto que ambos concordamos: Maker serve para fazer telas de cadastro. Meus pontos aqui vão focar isso.

Qualquer aplicação Java pode ser clusterizada sem o menor problema. A maioria dos servidores faz isso no console de administração. O problema e que geralmente este cluster ‘de caixinha’ não vale nada. Quem já trabalhu em ambientes que realmente precisam de disponibilidade e performance sabe que o arquiteto pega as ferramentas (cluster, load-balancer, etc.) e as customiza de acordo com o tipo de aplicação. Se eu fizer um cadastro para o BBB com o maker o cluster dele vai aguentar? A empresa não disponibiliza informações que guiem para uma conclusão mas com minha experiência em RAD e em cenários de alta dsponibilidade acho que isso dificilmente seria verdade. De qualquer forma, imagina que eu tenha feito oc adastro no maker e agora descobri que o cluster não aguenta. Como eu faço para escalar a aplicações, usar outra técnica ou algo do tipo?

Como aplicações de cadastro que precisam de clustering (que, aliás, é apenas uma das formas de tornar uma aplicação escalável -hoje em dia possivelmente é a forma menos utilizada) são raras vamos focar em outro aspecto: reusabilidade. Eu não tenho objetos, pelo menos tenho subrotinas? Qual a unidade de reuso do maker? Como eu consigo não ter que reescrever código (ou redesenhar diagrama, o que for)?

Fazer CRUD básico é possível com dezenas de ferramenta, livres e ratuitas. Qual a vantagem do maker pro AndroMDA, por exemplo? Note que MDA (1)é uma padrão, não algo proprietário, (2) é baseado em orientação a objetos, e não fluxogramas, (3) gera modelos executáveis em java e .Net, (3) é livre e gratuito, (4) e baseado em UML, outro padrão, (5) é extensível com cartchos.[/quote]

Cara, estamos é discordando completamente:

Dizer que ele serve apenas para fazer telas de cadastros seria uma tremenda injustiça. É uma IDE onde vc cria uma aplicação completa, com forms, reports e rules.

Ele tem toda uma preparação para vc poder “tunar” de acordo com o ambiente, necessidade e aplicação desenvolvida. Tem bastantes parâmetros. Os caras não são amadores. Vi uma aplicação feita para uma prefeitura que rodava “embaixo” de um portal com portlets, e estava instalada em 6 servidores com weblogic e + 4 para o banco SQLSERVER, tudo feito em maker. Obviamente, não colocaria o meu na reta dizendo que, no modo normal (default) de desenvolvimento, uma aplicação do maker funcionaria para o BBB. Acho que nem vc nem niguém pode afirmar que, feita seja lá com que metodologia ou ferramenta for, rodaria para o BBB. Acho que vc tá viajando…

Todos os códigos fontes do núcleo, que é em java, e também a documentação vem no dvd de instalação. Possivelmente, se vc vai usar o maker para fazer uma aplicação que vá processar todos os modelos, em 3D, das árvores da mata atlantica, acho que provavelmente, como não é o foco da ferramenta, alguém vai ter que dar uma futucada nos fontes, ou os caras da softwell, ou vc…

Todos os objetos forms, componentes, rules, reports são armazenandos automaticamente em um repositório, isso é bastante produtivo.

Cara, conforme já disse anteriormente, o maker não um framework (como o androMDA) e nem um gerador de código , onde vc faz uma parte nele, o CRUD, e depois vai concluir sua aplicação na mão… quer dizer no eclipse.

Com o maker eu abandonei completamente minha interação com o código. Tem um botão para gerar o codigo, mas, só aperto se eu quiser…isso me garante que não fico preso a ninguém…

Em suma, acho que não existe nenhuma feramenta que sirva para tudo. Porém, para desenvolver aplicações corporativas transacionais, acredito que vai demorar para existir uma ferramenta que consiga superá-lo.

bye,

Eu achei que o debate ia cair para um lado mais razoável mas me enganei.

Discordando? Você disse:

Afinal ele serve para algo diferente disso ou não?

Eu já vi aplicações em ASP+Access sustentarem um provedor de conteúdo com u número de pageviews bem alto. E daí? Eu não estou ‘viajando’ com o exemplo, eu estou falando especificamente sobre seu comentário infeliz sobre cluster Qualquer coisa em Java pode ser clusterizada sem o menor problema e clusters default são praticamente inúteis. Se o cluster não funciona para um cenario que precisa de cluester então… ele serve para que?

Afinal, qual o foco? E se eu sair deste foco misterioso e tiver que aterar a ferramenta, como é? Ela possui round-triping, eu posso incluir meu código sem nenhum problema e depois continuar usando a aplicação no modo WYSIWYG?

E as minhas perguntas anteriores sobre reusabilidade e extensibilidade? Aliás… ‘rules’? Então necessariamente se jogam décadas de pesquisa OO no ralo e volta-se com a técnica de programação procedural? Tem algum motivo para isso?

Antes de falar sobre o AndroMDA é melhor você entender um pouquinho sobre o que é MDA, transformação de modelos e o que é um framework. O AndroMDA é um framework de geração baseado em transformação de modelos pelo padrão MDA, não um ‘framework java’ como Struts e Spring.

Pra começar você está preso à uma empresinha desconhecida e seu produto que não faz nada de novo e nem sequer permite que seu produto seja avaliado. Isso é muito pior que ficar preso à uma especificação aprovada por um comitê internacional que reúne grandes empresas e organismos, à uma norma ISO ou a uma comunidade de desenvolvedores. Se o fornecedor morrer amanhã você não tem quem vá dar suporte.

Não sei o que você chama de ‘transacionais’, mas dado que o produto tem código fonte fechado, não segue nenhum padrão, não é extensível nem adaptável, não se preocupa com reusabilidade, é extremamente caro e regride trinta anos no tempo eu realmente não vejo como alguém pode superar.

Todos sabemos o que vai acontecer com o maker, vai ganhar dezenas de licitações, vai entrar em empresas que historicamente não se preocupam com o software que compram e vai morrer. Em dois anos a mesma empresa ou uma com os mesmos sócios lança oura coisa ‘revolucionária’(sic) qualquer e tudo se repete.

Não é novidade este tipo de coisa nem o fim que toma.

Vamos passo a passo, para ver se vc entende:

vc disse: só serve para criar CRUD
eu disse: IDE completa para criar forms (CRUD), reports, rules

logo: discordamos totalmente

vc disse: Tudo em java pode ser clusterizado
eu disse: é clusterizável

Logo: concordamos

vc disse: criar uma aplicação para o BBB
eu disse: aparentemente só serve para aplicações transacionais, para uma aplicações específica necessita configuração

logo: discordamos totalmente

vc disse: jogar OO no ralo
eu disse: Tem OO no núcleo, que é em java, ou seja, por baixo é uma aplicação como outra qualquer, a abordagem procedural é usada apenas na camada de interação.

logo: discordamos totalmente

vc disse: AndroMDA é um framework
vc também disse: AndroMDA não é um framework

logo: você discorda de você totalmente

vc disse: vc está preso ao código de uma empresinha desconhecida
eu disse: todos os códigos fontes estão comigo, posso inclusive mudá-lo completamente, até para uma aplicação específica, por exemplo: o BBB

logo: discordamos totalmente

vc disse: a empresa vai quebrar
eu digo: tô pouco me lixando, não sou sócio, não trabalho lá e não dependo dela

Logo: Bye

Eu ainda não entendi o que você quis dizer com ‘rules’ e principalmente onde isso não caracteriza CRUD. De qualquer forma o que você escreveu está ali embaixo, não dá para dizer que não foi você Pode ter se enganado ou algo do tipo mas foi isso que provocou a confusão. Pelo que você falou são CRUDs, qualquer coisa mais que essas coisinhas simples vai ser fora do escopo da ferramenta.

Então, voltando: é uma ferramenta (não sei s uma IDE,t em debugger? Runtime?) para gerar CRUDs.

E repetindo a pergunta pela segunda vez: de que serve um cluster que não atende quando necessário (como no exemplo citado)? Esse cluster é útil para quê então?

E onde você tira proveito de OO? Se a infra-estrutura é construída utilizando das melhores práticas (não estou dizendo que seja o caso) mas eu não posso usá-las no meu trabalho (afinal, o ‘revolucionário’ do maker é o fluxorama!) qual a vantagem? É como ter um interpretador Pascal foi escrito em Java: grande coisa. A linguagem utilizada não dispõe dos recursos.

Devagar, homem de pedra. Você falou que o maker não é framework nem gerador de código (depois se desmentiu dizendo que ele gera o código, mas vamos ignorar isso por enquanto) e eu disse que o AndroMDA é um framework de geração de código.

Em estrutura é diferente de algo monolítico e nao-extensível como o maker mas faz a mesma coisa. Então minha pergunta sobre vantagens persiste: AndromDA (e diversos outros) são livres, gratuitos, extensíveis, baseados em padrões e amplamente utilizados. A vantagem do maker é…?

  1. Código gerado por uma ferramenta que não segue padrões nem é aberta e além de tudo ficou sem suporte. Sim, muito bom.
  2. Você fez um investimento de 9 mil reais e baseou seu modelo de negócio numa empresa que sumiu, jogou o investimento pela janela, parabéns
  3. Se quiser continuar dando manutenção no seu sistema vai ter que usar programadores de verdade que vão ter que limpar a bagunça que é gerada neste código. Rezando ara que não tenha nenhum componente proprietário

A escolha é sua mas eu acho muito difícil que uma empresa séria invista dinheiro com licença, treinamento e suporte de uma ferramenta deste tipo. Claro que nem todas as empresas são sérias.

Por um acaso você leu esse link? Ele fala de transações ACID. Você está querendo dizer que o maker serve para qualquer sistema que tenha transações ACID? Você tem noção de que qualquer tipo de sistema, de um hover em marte até jogos em celulares, podem ter este tipo de transação? O maker e ideal para todos, então?

Na boa: acho que você escolheu o link errado. Eu até acho que entendi o que você quis dizer mas prefiro que d6e um conceito antes.

Que bom que você tem R$9.000,00 + gastos de suporte + treinamento + diversos pra jogar no lixo mas a maioria das empresas não têm. Você deveria escrever um livro ou algo assim.

Após três mensagens sem perguntas respondidas (extensibilidade, OO, escalablidade, foco do produto, comparação com MDA) eu ia escrever um sumário final aqui mas ficou meio grande:

http://blog.fragmental.com.br/2008/01/20/programacao-radioativa/

Então quando minhas perguntas forem respondidas eu volto. Enquanto elas não forem a opinião e a mesma p nos posts acima, não vou ficar me repetindo. Fica a mensagem para as pessoas que estão considerando o uso de tecnologias ultrapassadas e que já não deram certo bilhões de vezes. Do jeito que o GUJ tem um pagerank alto este tópico vai ser bem visível quando alguém procurar informações sobre esta ferramenta, quem sabe alguém que trabalhe no fornecedor resolva aparecer por aqui para esclarecer os pontos e abrir as mentes para o ‘futuro’, que até agora significa voltar 30 anos no passado.

A, então RAD é ruim por causa da manutenção / evolução?

[quote=pcalcado]Após três mensagens sem perguntas respondidas (extensibilidade, OO, escalablidade, foco do produto, comparação com MDA) eu ia escrever um sumário final aqui mas ficou meio grande:

http://blog.fragmental.com.br/2008/01/20/programacao-radioativa/

Então quando minhas perguntas forem respondidas eu volto. Enquanto elas não forem a opinião e a mesma p nos posts acima, não vou ficar me repetindo. Fica a mensagem para as pessoas que estão considerando o uso de tecnologias ultrapassadas e que já não deram certo bilhões de vezes. Do jeito que o GUJ tem um pagerank alto este tópico vai ser bem visível quando alguém procurar informações sobre esta ferramenta, quem sabe alguém que trabalhe no fornecedor resolva aparecer por aqui para esclarecer os pontos e abrir as mentes para o ‘futuro’, que até agora significa voltar 30 anos no passado.[/quote]

Cara, muito obrigado…de verdade…

Eu já estava aqui tentando morder meu cotovelo, meu cerebro já estava quase dando um nó e eu só estava tentando me comunicar com vc…

Mas, depois que li seu texto, que eu inclusive RECOMENDO A LEITURA, tudo ficou realmente claro para mim:

VOCÊ É COMPLETAMENTE CONFUSO !!!

Primeiro vc afirma
Em seguida vc nega
Depois vc reafirma
Logo depois nega tudo

Você fala do éden, de um paraiso sem RAD, de um mundo onde só exista OO… (já estava até querendo me mudar para lá)…

Mas, ai vc sem dó nem piedade diz: “a ciência da computação não tem uma resposta defitiva para você”. Cara, de verdade, eu quase chorei…
Acho que precisamos abrir uma tread do tipo: Ajude pcalcado a entender pcalcado !!!

No meu caso, a coisa foi mais simples do que todo esse engodo seu, veja só:

Passei 2 anos desevolvendo uma aplicação para entidades de ensino, em delphi, tudo na unha, quando ela estava completamente estável, de repente, vi que por necessidade mercado ela deveria funcionar na WEB, e ai lascou tudo. Fiz uma avaliação com alguns amigos meus e a conclusão: + 3, é isso mesmo 3 anos para fatorar tudo para java.

Fazendo algumas contas rápidas: custo mensal + - 3.000 x 36 (3 anos) = R$ 108.000,00 , isso contando que meus clientes iriam ficar 3 anos a minha espera.

O que fiz, gastei R$ 10.000,00. Em 15 dias estava com minha aplicação pronta e em java, já instalei em diversos clientes e já está estavel…

Cara, se daqui a 3 anos eu tivesse a certeza que a tecnologia atual não mudaria, eu até que faria na unha, mas…

Conseguiu captar ???

Eu nunca tive problemas entendendo o pcalcado - exceto talvez quando ele troca de teclado e a dislexia vem a tona. No seu caso, em compensacao, eu tou tendo problemas serios: eh impressao minha ou vc simplesmente ignorou todas as perguntas tecnicas sobre o Maker ate agora?

Perguntinha sobre uma atividadeque existe em todos os sistemas q utilizam BD.

Como sõa geradas as tabelas e procedures? É possível fazer um diagrama de negócio / classes / entidade relacionamento e ele converterá aquilo para o esquema do banco?

3 anos para refatorar tudo “para Web”? Provavelmente sua aplicação devia ter forte acoplamento entre regras de negócio e interface com o usuário, talvez por isso não “captou” o que o PCalcado está dizendo.

Eu também trabalhei muuuuuito com COBOL e digo: não é fácil “pensar OO” depois de anos e anos “procedural”.

No caso da ferramenta que está na moda no mercado que todos sabem o nome “JC???”, parece que o pai da criança vai vir pessoalmente (tá certo, redundante) aqui na empresa para tentar nos convencer em utiliza-la. Seus pupilos vieram recentemente e foram todos detonados :smiley: