Porque todo ABAPer deveria começar a aprender UI5 (SAPUI5/OpenUI5) já

Passou o carnaval! Feliz ano novo!

O ABAP101 é um site que mesmo quando um pouco parado, me surpreende. O site vai completar 8 anos em 2015. Isso mesmo, 8 anos. Uma das coisas que mais me impressiona é como até os posts mais antigos do site escritos pelo Furlan ainda tem uma quantidade imensa de acessos. Como os ensinamentos de como procurar e implementar BAdI e entendendo o For All Entries ainda são tão atuais, não é mesmo? Sem falar no vídeo de instalação do Minisap que faz com que praticamente a qualquer hora do dia alguém esteja vendo o ABAP101 mundo afora.

Hoje notei que uma das páginas que mais me deu trabalho e satisfação em escrever (a famosa “MATRIZ DE CONHECIMENTO – ABAP JÚNIOR, PLENO E SÊNIOR“) igualou-se em números de acessos de uma das páginas mais simples mas que o pessoal mais dá bola (uma pesquisa salarial). Quem sabe isso seja um indício que algumas pessoas estão se importando mais com o conhecimento do que o salário. Ou que pelo menos entendam que o salário é uma consequência do conhecimento.

Apesar de tantos posts serem úteis até hoje, a cada dia que passa os profissionais ABAP deveriam estar mais interessados (ou pelo menos mais preocupados) em aprender algo realmente novo e que cedo ou tarde pode vir a fazer parte do seu dia a dia. O típico conteúdo que o ABAP101 ainda não explora e que o pouco disponível está perdido em blogs na SCN ou repositórios pequenos do GitHub. Por exemplo: UI5. Atualmente na nossa matriz de conhecimento UI5 é marcado ainda como um conhecimento extra, que nem um sênior deveria obrigatoriamente ter. Ainda.

matriz de conhecimento

Matriz de Conhecimento – 26/02/2015

UI5

Se você atua com desenvolvimento ABAP hoje você certamente não precisa saber como criar aplicações em UI5. Todavia, certamente você já deveria saber o que o UI5 é. Caso você não saiba ainda o que é UI5 (um nome mais genérico para SAPUI5 ou OpenUI5) é sinal que você não abre a home page da SCN há mais de 1 ano.

UI5 é uma biblioteca javascript para criação de aplicações usando MVC criada pela SAP. Quando falamos em UI5 estamos falando de desenvolvimento front end. Grosseiramente falando, UI5 é um concorrente do Backbone.js, AngularJS, EmberJS, Dojo ou qualquer outra biblioteca elencada na Wikipedia ou no TodoMVC.com. Grande parte dos novos produtos da SAP não são mais feitos em reports, module pools, BSPs ou Web Dynpros (apesar do último ainda ser usado pela SAP em novos desenvolvimentos). Boa parte do que a SAP desenvolve hoje em dia é feito em UI5 na parte do front end. Se você já ouviu falar em alguns nomes como Gateway, SUP, Hana, Fiori ou HCP saiba que o UI5 está totalmente inserido nestes contextos.

Você está avistando, ainda mesmo que de longe, uma oportunidade para ser desenvolvedor Hana? Então aprenda UI5 pois faz parte do que você vai precisar na sua caixa de ferramentas.

SAPUI5 vs OpenUI5

Como dito anteriormente, UI5 é um termo genérico que quer dizer ou SAPUI5 ou OpenUI5. Quando a SAP introduziu a biblioteca ela não tinha o código aberto e uma licença de uso mais restritiva (SAPUI5). Depois de muita pressão e discussão da comunidade de desenvolvedores, a SAP resolveu abrir o fonte da biblioteca e mudar a licença. Foi necessário então criar um outro nome (OpenUI5). O SAPUI5 ainda existe e tecnicamente é diferente do OpenUI5. A principal diferença técnica entre ambos hoje é o fato do SAPUI5 incluir uma biblioteca gráfica enquanto o OpenUI5 não. Veja exemplos de construção de gráficos no SAPUI5 no Hana Brasil. Felizmente para quem conhece Javascript fica fácil aprender a usar bibliotecas gráficas externas como D3 ou Raphael.

Web Dynpro vs UI5

Um argumento para não aprender UI5 é o seguinte:

“O Web Dynpro fez 10 anos recentemente, eu ainda não aprendi, nunca usei nem precisei. Por que deveria aprender outra maneira de criar aplicações web?”

Se você se encaixa no perfil acima, boa pergunta. O Web Dynpro não vingou como deveria. Outras tecnologias web da SAP não vingaram como deveriam. Mas pela primeira vez na história a SAP está deixando claro como a neve o que ela quer para usabilidade, experiência do usuário e ergonomia das duas aplicações. Tem até curso sobre o assunto na OpenSAP. E hoje o foco é claro: back end em Hana e front end em Fiori (que é HTML5, que por sua vez é criado em UI5).

O argumento do Web Dynpro é embasado, mas eu não apostaria que o mesmo vai acontecer. Em outras palavras, o UI5 vai vingar. Talvez nunca vire a melhor biblioteca de Javascript para MVC, mas com certeza vai vingar muito mais que o Web Dynpro pois para desenvolver muitas aplicações em Hana, telas em ABAP ou Web Dynpro não serão alternativas possíveis. Tirando o fato de HTML5 estar se tornando cada dia mais um padrão de facto.

O ABAP da próxima geração

O desenvolvedor ABAP da próxima geração, que começou com o advento do Hana, deve ter conhecimentos em desenvolvimento Web. Saber programar em Web Dynpro não requer profundos conhecimentos Web. Por exemplo: padrões, protocolos, arquiteturas ou detalhes de navegadores. No caso do UI5, é diferente. É preciso entender HTML, CSS, Javascript e ser familiar ao jQuery para então começar a engatinhar no UI5. E é para este caminho que o ABAPer da próxima geração deve seguir.

No livro “Next generation ABAP development / Rich Heilman, Thomas Jung. — 2nd ed.“, que foi escrito em 2011 (antes do UI5), dos 20 capítulos do livro 8 são de alguma forma relacionados a desenvolvimento Web (MVC, web services, Web Dynpro, BSP). Desde 2013 a SAP Press está pensando na terceira edição do livro, que sinceramente não sei o andamento atual. Porém, aposto que terá algo de UI5 além de falar da integração ABAP/Hana. Pelo menos o livro “ABAP to the Future / Paul Hardy” já aborda UI5. E se ainda não está convencido, já há um livro oficial da SAP Press exclusivo de UI5.

Então é agora que o ABAP vai morrer?

Esta pergunta surge de tempos em tempos mas a resposta continua sendo não. Por isso se você está começando com ABAP fique tranquilo no que tange a estar aprendendo uma linguagem nova. O ABAP ainda é e será usado. A tendência é apenas que não se use ABAP tanto como hoje para criação da interface com usuário pois o mundo moderno roda no navegador num padrão aberto. Mas que fique claro que a cada dia o ABAP que se aprende hoje se torna mais insuficiente para as futuras demandas.

E se eu não aprender UI5? Quais minhas chances no mercado?

Sou da opinião de que os ABAPers que ignorarem o UI5 e que irão tentar permanecer atualizados de alguma forma deverão se aprofundar na parte do back end. O que vai envolver bastante estudo também. Trocando em miúdos, você deverá aprender Hana, oData, Gateway, Core Data Services, integração ABAP/Hana e ainda sim… web services e javascript. Não dá para ficar 100% em um dos lados.

O desenvolvedor ABAP típico talvez nem conheça os termos back end e front end apesar de ter estes dois papéis no seu dia a dia. O ABAPer é um desenvolvedor full stack com bons conhecimentos de bancos de dados por natureza. Quem vai contratar desenvolvedores ABAP do futuro não irá esperar menos que isso.

Talvez haja a distinção desenvolvedor front end, back end nas contratações daqui um certo tempo… mas não ignore o fato da maior parte ofertas de trabalho serem de consultorias. Consultorias precisam de pessoas que além de outras coisas, entendam da arquitetura dos sistemas que atuam e construam soluções técnicas em cima das mesmas. Ignorar UI5 significará não ser um consultor-desenvolvedor SAP completo. Assim como ignorar o Hana terá a mesma consequência.

Por onde começo a aprender UI5?

Além da SCN, livros na SAP Press ditos anteriormente e o site oficial do OpenUI5.org, eu recomendo assistir apresentação que fiz no SAP Inside Track São Paulo, no final de 2014. Ela ensina como você hospedar sua aplicação UI5 no GitHub e torná-la pública.

Claro, você precisará de um ambiente de desenvolvimento. Felizmente para montar ele no mundo de desenvolvimento Web é necessário ter uma IDE qualquer (recomendo o Sublime Text ou Eclipse) e um servidor Web (Tomcat, MAMP, Node/Grunt, etc). Ou apenas você pode usar sites como o JSBin ou JSFiddle para começar a brincar com UI5.

Bons estudos! Não deixe de comentar!

  1. Fabio, parabéns pelo post.
    É excelente e dá uma visão do nosso futuro próximo como ABAPers.
    Gostei muito das dicas, irei participar e estudar mais ativamente essas novas tecnologias.

    Obrigado,

    Norberto Silva

    • Obrigado Norberto.

      Já que gostou, espero e sugiro que repasse este post para seus colegas ABAP da Agile. Pode abrir a cabeça deles também 😉

      Abraços!

  2. òtimo post Pagoti!
    Gostaria de uma opniao sua.
    Estou pensando em comprar um livro para me atualizar mais e servir de referencia.
    Abap to the Future é uma boa?

    • Olá Daniel!

      Eu sinceramente nunca li o ABAP to The Future.. ele é o livro mais novo de ABAP da SAP Press. Sei que ele tem alguma coisa de UI5.

      Não sei exatamente o que você gostaria de estudar para se atualizar (Hana, Gateway, etc)… mas já que você está comentando em um post de UI5 vou assumir que o que você quer estudar seja isso.

      var jaba = new sap.ui.core.Jabá({
      value: “Neste caso, a dica que dou é esperar mais uma ou duas semanas até eu lançar meu livro de UI5 (em português).”
      });
      jaba.placeAt(“comments”);

      Incrível como escrevendo e lendo comentários as pessoas acabam tendo notícias em primeira mão, não?

      Abraços!

  3. De alguma maneira perdi esse post, mas recuperei o tempo (como se isso fosse possivel) e li agora, muito bom!

    1 INFORMACAO e uma OPINIAO sobre os livros citados:
    Next Generation ABAP NAO VAI SAIR 3rd edicao. Isso foi me falado pelos proprios Rich e Tom. Ou, se acontecer uma reviravolta e sair , nao sera pela SAPPress (SAPPress eh muito legal como patrocinadora de SIT mas aparentemente nao trata/paga bem seus autores).

    ABAP to the Future: Eu gostava MUITO dos posts do Paul na SCN, mas fui ficando cansado da formula dele. Hoje em dia nao leio mais nada que ele escreve (na SCN). Mesmo assim eu aconselho o livro porque o conteudo parece bem interessante e pq aparentemente os editores deram uma podada nas viagens do Paul, deixando ele em foco.
    Nota: AINDA nao li o livro, a empresa que estou o comprou mas estou na fila.
    Note2: Antes do Paul comecar a escrever o livro, a Kelly Weaver da SAPPress mandou a sugestao de conteudo pra galera que eu trabalhava junto (John Moy, Alisdair Templeton, Sascha Wenninger) pra pedir a opiniao deles. Eles passaram pra eu dar uma olhada. Eu que sugeri o capitulo sobre BOPF 🙂

    Abraco,
    Custodio
    @zcust01

    • Oi Custódio!

      Obrigado por estas boas fontes de informação.

      Soube que o Next Generation edição 3 estava nos planos da SAP Press quando chegou até mim (justamente pela Kelly) que eles estavam procurando novos autores. Isso foi no começo de 2013 se não me engano.

      Os posts do Paul são longos demais e tão bons quanto longos. Mas eu dificilmente mantenho 100% da atenção pois sei que tem muito devaneio no meio do texto… mas ao mesmo tempo acho que vários são válidos e bons. Acho que isso é um grande diferencial dele se comparado a muitos outros posts 100% técnicos ou 100% enrolação.

      Mas a pauta do livro é ótima. Não terá o meu foco pois eu comprei o ABAP/HANA e ainda não o li.. estou focando em Hana nativo e UI5 hoje.

      BOPF, BRF+, FPM.. são coisas que estão no meu todo list mas que dificilmente chegaram a sua vez…

      Valeu o comentário! Abraços!

  4. Pingback: Livro UI5 para desenvolvedores SAP/ABAP - ABAP 101

  5. Pingback: Resultado do Quiz de ABAP - ABAP101

  6. Pingback: Porque todo ABAP deveria estudar Fiori (também) - ABAP101

  7. Olá, já vi HTML no passado, nem era o HTML5, vi um pouco de CSS, com um google e alguns codigos fontes eu me viro com o CSS, já o HTML está bem mais fixo na cabeça e abap já atuo há 8 anos. Falta alguma coisa antes de ir para o UI5?
    Baixei o Eclipse, mas nunca usei …

    Post, muito bom parabéns!!!!

  8. Estou comecando a programar em SApui5 (Eclipse neon). Minha fonte de dados e um arquivo json, que contem variar propriedades referentes a cada auto. Gostaria de fazer um grafico de barras contendo, por exemplo, o numero total de autos para cada status (uma das propriedades). Antes de fazer o grafico preciso manipular as informacoes que estao no arquivo json. Ai esta o meu problema. Nao consegui fazer isso. Preciso ler as informacoes do arquivo json e armazena-las em uma array? Depois entao poder selecionar as informacoes que preciso?

    Vc poderia, por favor, me ajudar com algum exemplo simples e pratico? Alguma dica?

    Desde ja muito obrigada

    Anna Oliveira