Bem vindos

Boa noite…

Relutei bastante para criar um Blog, porque sei que não vou ter tempo para dar a atenção que gostaria de dar: Atualizar com freqüência, ver o que as pessoas estão falando, etc… Mas resolvi tentar, não como uma maneira de entrar (ainda que tardia) na “modinha”, até porque não sou disso, mas sim como uma maneira de compartilhar os mais de dez anos de convivência que tenho com a ferramenta.

Ah sim, aqui falarei bastante sobre o GeneXus, que, para quem não conhece, foi designada originalmente para ser uma ferramenta CASE (Computer Aided Software Engineering, ou Engenharia de Software Auxiliada por Computador), mas é mais do que isso, ele pode ser considerado até como um seguro contra evolução tecnológica (frase que escutei muito do meu amigo e guru Daniel Strack).

O que ele  faz? Para que serve? Vou tentar fazer uma analogia, que ainda considero uma das melhores formas de se explicar algo:

Imagine que você tenha que construir uma casa, essa casa poderá ser para você ou não, como método mais próximo a realidade do mercado de softwares, vamos concordar que, em uma empresa no mercado, 90% das vezes você estará construindo casas para outras pessoas (seus clientes).
Você então terá que montar um projeto onde terá recursos (humanos, materiais), prazo, orçamento, e um escopo (a casa em si).

Agora imagine que, no desenvolvimento de software tradicional (analogamente falando), você construa a casa da maneira que todos conhecem: Encaixando tijolo por tijolo, onde, por exemplo, 4 pessoas se encarregarão de levantar quatro paredes. Para elas fazerem isso, cada uma delas terá que ler um documento dizendo exatamente o que elas devem fazer, vamos supor que elas deverão:

  • Montar os tijolos sob uma superfície, com massa entre o espaçamento de 2 cm entre cada tijolo;
  • Passar uma camada de massa sobre todos os tijolos; E assim por diante até que a parede esteja completa; Fazendo isso terão que:
  • Passar mais uma camada de salpique em toda a parede, e, para finalizar:
  • Uma camada de reboco, também em toda a parede.

Podemos afirmar então que cada uma dessas 4 pessoas utilizaram um método, ou tecnologia, na linguagem de software, para construir as paredes.

Agora, na mesma analogia, com o GeneXus, utilizando a mesma tecnologia, não sejam necessárias 4 pessoas, e sim uma somente e essa pessoa não montaria tijolo por tijolo, massa por massa, salpique, reboco, ela simplesmente declararia algo assim:

  • Parede de tijolos (Casa,10, 3, 4); onde Casa seria o objeto composto pelas 4 paredes conectadas, 10 seria a largura, 3 a altura e 4 a quantidade de paredes.
  • Salpicar paredes (Casa); e, finalmente,
  • Rebocar paredes (Casa);

Declarando isso ela usaria uma ferramenta que automaticamente montaria todos os tijolos, passaria a massa, conectaria as quatro paredes, aplicaria o salpique e o reboco;

Diante dessa analogia podemos contatar alguns fatos:

1) O intelecto necessário para realizar a tarefa de subir as paredes é diferente, na metodologia tradicional seriam necessários 4 pedreiros, com o Genexus é necessário um engenheiro.

2) O fator tempo é algo extremamente diferente, o tempo que as 4 pessoas demorariam para subir as 4 paredes, é aproximadamente o dobro que uma pessoa levaria utilizando o GeneXus.

3) o fator custo (tanto o custo final quanto o custo do projeto), por conseqüência também é severamente afetado pela suposição acima.

4) Agora supondo que surgiu uma nova maneira (tecnologia) para se construir paredes, onde torna-se necessário treinar toda a equipe novamente (isso é BEM comum no desenvolvimento tradicional) e essa equipe terá que esquecer tudo o que aprendeu e aprender novamente. Com o GeneXus não é necessário re-treinar a equipe, pois o engenheiro irá continuar declarando paredes da mesma maneira. O Genexus sim terá que ser atualizado para essa nova tecnologia, e, nesses 10 anos que venho acompanhando, ele sempre o fez, com maestria e as vezes antes mesmo da tecnologia ser disponibilizada publicamente (.NET Early Adoption é um exemplo, em outro post irei comentar sobre a demonstração dos engenheiros de software da ARTech em um evento da Microsoft). Atualizado o “motor” do GeneXus, tudo pronto…

5) Supondo agora que existe uma reforma a ser feita na casa, e será necessário destruir uma parede e construir duas novas…Bom… acho que já alcancei o ponto, não??? Somente para constar o GeneXus costuma ser 20 vezes mais rápido na manutenção do que no desenvolvimento comum…

Alguns pontos chaves que considero interessante da ferramenta:

  • Geração de código 100% automática;
  • Geração de scripts de criação e alteração da base de dados 100% automático;
  • Programação declarativa;
  • Multiplataforma;
  • Sem runtime (gera código 100% nativo da linguagem);
  • Baseado em desenvolvimento incremental;

Bom, aos leigos, sejam bem vindos ao mundo GeneXus, aos que já conhecem, em breve estarei “postando” algo interessante, e também estou aberto a sugestões, sempre, afinal, foi a comunidade GeneXus o maior coadjuvante para o crescimento da ferramenta…

Para mais detalhes:

http://www.genexus.com/portal/hgxpp001.aspx?2,61,1006,O,P,0,MNU;E;226;1;236;2;MNU;,

http://www.gxtechnical.com/

Um abraço e até a próxima…

Anúncios

7 comentários sobre “Bem vindos

  1. Muito bom seu blog! Sou iniciante em GeneXus e estou gostando muito de aprendê-lo! Você não poderia indicar um curso mais avançado, de preferência não presencial? Já fiz todos os do site oficial e preciso de algo um pouco mais avançado!
    Obrigado e parabéns pelo sucesso!

    1. Rodrigo,

      Obrigado.

      Podes encontrar mais informações em training.genexus.com, diretamente:
      Para o curso básico:
      http://training.genexus.com/basico-35/curso-basico-genexus?es,,MNU;E;1;13;18;5;16;7;MNU;
      Para o curso standard:
      http://training.genexus.com/estandar/curso-estandar-genexus-x-ev-1?es,,MNU;E;1;13;18;5;16;1;MNU;
      Para o curso avançado:
      http://training.genexus.com/cursos/curso-avanzado-genexus-x-ev1-aplicaciones-web?es,,MNU;E;1;13;18;5;16;10;MNU;

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s