"
Supported by

The rot is noble after all

For many years I’ve been complaining about how backward ABAP development ecosystem is and how long it takes to evolve. Every time he heard me saying it a good friend of mine would wisely advise me to never bite the hand that feeds you.

But how can a man not speak out?

It’s exasperating to work 8 hours per day on that archaic thing they call ABAP Workbench after having tried modern IDEs like XCode and Eclipse. And when SAP kindly decides to add a new functionality to it (like contextualized auto-complete) only someone who has never used XCode, Eclise or VisualStudio can, blissful ignorance, feel happy about it. Because all the others, who know damn well these things were already trivial in other IDEs when Kurt Kobain was still alive, those can only breath a small sigh of relief and carry on trying to ignore all the rest that’s still not there.

The first prize, though, goes to the total lack of control on has when using the current ABAP version control. How can it be that today, version control is still file-oriented? Knowing that a class is always comprised of multiple files, it’s almost impossible not to screw up things when trying to rollback to a previous version of the whole class, since the version of each individual file must be changed manually independently. Besides the fact that it takes forever. Outside SAP the versioning systems have evolved so much and so quickly that Subversion, a system which until recently everyone considered sophisticated, is now obsolete due to the appearance of decentralized versioning systems like GIT. I worship GIT. But I’d even smile with joy if SAP would make available something as outdated as Subversion. But they don’t seem to think it’s needed.

Whoever goes to the vineyard won’t be able to avoid noticing the rapes are starting to get rotten.

And suddenly…. in 2015… SAP surprised me. Because I undertood that, after all, these last years it has been doing a (late but careful) harvest of its (rotten but sweet) grapes and is now releasing a series of great late harvest wines. And instead of continuing to try (and fail) to evolve the dying ABAP IDE, it decided to start from scratch.

I had been hearing about HANA, Fiori and SAPUI5 for a while but I still hadn’t understood how they were going to be used. It was just in 2015, mostly thanks to OpenSAP courses, that I started seeing all the pieces connect.

In-Memory Data Management In a Nutshell give you a clear idea of the technological revolution that HANA is when compared to conventional relational databases.

Developing Mobile Apps with SAP HANA Cloud Platform allows you to get practical about the UI side of things and have a taste of what it will be to develop Fiori and SAPUI5 applications.

SAP S/4HANA in a Nutshell e SAP S/4HANA – Use Cases explain how HANA’s superpowers are already being used to implement the new applicational infrastructure which is about to replace R/3.

After so long complaining, a compliment is due:
What a great puzzle. I’m looking forward to start putting it together.

SAP has been absent-minded and slowly decaying for many years. But it finally noticed it, reinvented itself and is now accelerating madly towards the future. My friend, if you’ve also been absent-minded and slowly decaying, follow my advice and pay attention to what’s happening around you because tomorrow may be too late and you’ll miss the train (or should I say the space rocket).

Greetings from Abapinho.

8 comentários a “The rot is noble after all”

  1. Artur Moreira Diz:

    Viva,

    Gostei imenso da solução disponível no WEB IDE (pode ser utilizado a partir de uma conta trial para programar em HANA):

    http://scn.sap.com/community/developer-center/hana/blog/2014/12/02/sap-hana-sps-09-new-developer-features-sap-hana-web-based-development-workbench

    Cumprimentos
    Artur Moreira

  2. Rui Nunes Diz:

    Olá Nuno,

    É possível utilizar o Eclipse como IDE para ABAP:

    http://scn.sap.com/community/abap/eclipse

    Um abraço,
    Rui

  3. Nuno Godinho Diz:

    Olá Rui, sim eu sei. É também uma óptima evolução. E estou curioso para experimentar. Principalmente para ver se conseguia começar a usar GIT. Infelizmente no projecto onde estou não é possível. No entanto diz quem já tentou que ainda não funciona assim tão bem.

  4. Rui Nunes Diz:

    Olá Nuno, eu fiz algumas experiências com Eclipse ao desenvolver uma aplicação Android há uns 3 anos atrás e também notei que existiam vários problemas. Talvez por isso a Google tenha baseado depois o IDE oficial para desenvolvimento Android no Intellij IDEA.

    De qualquer forma, também estou curioso para experimentar ;)

  5. Carlos Constantino Diz:

    Viva Nuno,

    Gostei de uma forma geral deste artigo de opinião, que é diferente do que costumas colocar por aqui.

    Mas relativamente ao futuro, não tenho ainda certezas de que este tenha sido o caminho correto (pelo menos do que já conheço).

    1. UI5: é baseado em JQwery. Usa HTML5, CSS3 e Javascript. Tudo standards, BOA! No entanto, optaram por colocar toda a renderização no cliente. Um cenário tipico: uma app que recorre a um serviço OData e depois mostra a info. O que acontece? Os dados vêm do serviço e depois é o web client (browser) que corre uma série de scripts para renderizar toda a página. Eu achava preferível que fosse o applicarion server a enviar o máximo de dados já em HMTL (dependendo da máquina onde corre, pode demorar mais ou menos tempo a correr todos os scripts de construção de controlos e a os adicionar à árvore HTML que vai renderizar).

    2. Ambientes de desenvolvimento:
    2.1. Eclipse e seus plugins… Demonstra o desconhecimento dos vários IDEs que existem por aí. O webstorm (inteliJ), embora pago, é de longe superior, e mais leve. Alem de que tem integrado ferramentas de controlo de versões, sejam elas o SVS ou GIT
    2.2. web IDE: para mim tem um defeito enorme: corre no browser. Acabamos por ter um gui, mas que não necessita de instalação… Os scripts são carregados e mantidos em cache. O que por vezes obriga a eliminar essa cache e a reinicializar o web IDE.

    Admito que tudo isto é bastante novo para mim, e não fossem os cursos da Open SAP e algum investimento pessoal, nem esta opinião era capaz de formar…

    Concluindo: acho que o salto para o HTML/CSS/Javascript é a opção correta, mas até ver, parece-me que o paradigma foi o errado.

    Abraços,
    Carlos

  6. Nuno Godinho Diz:

    Oi Carlos, compreendo o teu ponto de vista. Só estou em desacordo com uma coisa: eu sempre acreditei em ser o cliente a fazer o render. Mas são opiniões, claro. Não conheço o webstorm, vou investigar. Também concordo que o webIDE é um bocado limitativo, pelas razões que apresentas e porque trabalhar no browser dá pouca agilidade. Ainda assim é notável que tenham disponibilizado algo grátis tão sofisticado. Além disso eles não obrigam a usares o webIDE, é só uma alternativa que te dão. E bastante conveniente para algumas situações.

    Obrigado e abraço,
    Nuno

  7. Carlos Constantino Diz:

    Nuno,

    Eu não defendo que o rendering não deva ser feito no cliente. DEVE, mas apenas isso. O que acontece neste momento com o UI5 é que o que o servidor envia são scripts e muito pouco HTML.

    Um exemplo do contrário: uma aplicação web desenvolvida em Node.js com o motor de template handlebars, o que acontece é que quando a resposta é enviada pelo aplication server, já vai todo o HTML pronto a ser renderizado (deve levar alguns scripts para que na interacção de inserção ou remoção de linhas de uma tabela por exemplo, não seja necessário recarregar a página toda).

    No Fiori/UI5, o servidor ao enviar scripts, estes são executados. Tipicamente, cria uma view que associa a uma DIV na página. Ao criar essa view (seja XML ou JS) o init da view faz um pedido ao serviço para carregar dados e começa a construir objectos que serão traduzidos em elementos HTML. Na chegada dos dados é executado um script que vai criar cada um dos elementos visuais e adiciona-os à página (tudo através de JQuery).

    Enquanto que no exemplo do Node que dei o browser apenas renderiza, no Fiori são executados vários scripts que criam em memória os elementos HTML que serão depois renderizados.

    “They choose to base it on jQuery and its functional DOM manipulation approach just when the Web was abandoning it” (https://maxfavilli.com/sapui5)

    Se colocares ambas as aplicações (imagina que é apenas uma tabela com linhas) a correr num smartphone com apenas 256Mb de RAM e com pouco poder de processamento, a experiência de utilização é muito pior no caso do UI5…

    Existe outra questão que me lembrei, mas que ainda não estudei: cache e alterações à aplicação. Não sei como se comporta uma app fiori cuja aplicação foi modificada e não se fez no lado do cliente um CTRL+F5… será que os scripts são sempre recarregados? Se não forem, corre-se o risco de não se estar a correr uma app actualizada… (tenho que investigar melhor este tema).

    É por isto que não estou de acordo com a abordagem da SAP. Mas posso estar enganado e mudar de opinião (não era a primeira vez que teria que admitir que estava errado).

    Quanto ao Web IDE: tens razão no que dizes, é realmente uma ferramenta sofisticada, que permite plugins, templates, wizards e ferramentas visuais para desenhar as telas. E aliado ao SAP Splash, ainda melhor. Mas corre num browser…

    Relativamente ao Webstorm… para o Fiori/UI5 existe muito pouco. Existem uns tutoriais que ajudam a ter as bibliotecas e alguns templates… mas só isso. Mas como IDE é muito interessante (uso para desenvolver em Node.js e controlar versões com o GIT).

    Nota:
    É só uma partilha de ideias e uma oportunidade de através de uma discussão vir a aprender coisas novas… Até porque acho que (como dizes no final do teu post) quem não começar a estudar este assunto agora corre o risco de ficar para trás.

    (desculpa os testamentos…)

    Abraços,
    Carlos

  8. Nuno Godinho Diz:

    Olá Carlos, entendi agora o que dizes e tendo a concordar. Não tinha noção destas diferenças. Obrigado.

Deixe um comentário


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).