Skip to Content
Author's profile photo Jerry Wang

What should an ABAPer continue to learn as an application developer

There is an excellent blog written by Marco Hernandez <<And now for something completely different>> which tells how an ABAP can avoid to be obsolete. The following five points are listed in the blog which I completely agree:

  • Object-oriented programming in general.
  • Test-Driven development and ABAP Unit.
  • Business Object Processing Framework (BOPF).
  • Floorplan Manager and other UI technologies (SAP UI5 perhaps).
  • ABAP for SAP HANA.

     Figure: a small gift got in SAP D-KOM 2017 in Shanghai,China

As another ABAP veteran who has been programming using ABAP in SAP for ten years, I have some additional points. I saw the term “SAP’s latest technology” within the communication of that blog, no doubt it could be quite good for an ABAPer to keep learning them, and IMHO it could be even better if an ABAPer has some basic awareness of the latest technique trends in open source community. Perhaps it is difficult for a traditional ABAPer to touch some of these trends in their daily work, however I do think that by knowing them, it can help you to become a better programmer, not just a better ABAPer.
Some of them come into my mind which are related to ABAPers’ life:

1. Functional Programming

In stackoverflow, there are already lots of discussion on it. See this one:
Per my experience, by mastering a kind of functional programming language, it gives you as a programmer a completely different way of problem-thinking-and resolving direction. You can never get such feelings when you use imperative and object oriented languages. After that you can look back into your current ABAP coding for example which will perform really time-consuming calculation on big internal table? Have you ever thought of the possibility that such big internal table could be splited into small pieces and handled in parallel just as a functional programming language does?

2. Spring

I personally would always like to compare BOPF with Spring. I
know it is unfair, since BOPF has only been developed by several scrum teams in
Waldorf, and for Spring, on the other hand, it is open source project and never stops evolution with the amazing work of contributors
under the hood. Just see the star number of Spring project in
GitHub.

In my opinion, BOPF has successfully achieved some cool features of Spring to some degree, for
example inversion of control and dependency injection. While BOPF fulfills them via countless
configuration tables ( I prefer to call TDD in ABAP as Table-Driven-Development ), Spring uses annotation as another elegant approach.
You can of course learn OO Design pattern via the toy program written in books, however actually most frequently used patterns already spread heavily in Spring source code, by studying those codes you can know how the patterns are applied to resolve real requirement by Spring gurus.
By knowing how Spring works under the hood, it helps you to understand BOPF more thoroughly in turn. When you are familiar with the mechanism of
those framework enough, you are now able to write some mini-framework in your application code, which helps you to avoid code duplication, break tight dependency among components, and make your future maintenance and
continuous development task easier
in that Open-Close-Principle is achieved.
For some other features like AOP, it could not be purely supported in ABAP from language perspective due to the fact that unfortunately ABAP Virtual Machine cannot support dynamic proxy as JVM does.
Nevertheless we still have Pre/Post exit which can be leveraged to simulate AOP, from which customer can still benefit a lot, to build their own extensions. Meanwhile, there is another blog talking about AOP in ABAP:
Venturous Logging Solution for ABAP OO: Vesna AOP Demo Case
And in Javascript, AOP could also be simulated somehow thanks to the prototype inheritance mechanism. For detail see this blog.
Last but not least, see these three SCN blogs:
3.My blog inspired by Spring AOP: Implement CGLIB in ABAP
5.My blog inspired by Java Mockito: Simulate Mockito in ABAP

3. JavaScript

I had been using CRM WebClient UI in the past to build UI, and I know it is not possible to build state-of-the-art responsive UI using this technology, and I have very limited knowledge on floor-plan manager so I am not sure whether it has the same problem. As far as I observe, UI5 plays a more and more important in SAP UX strategy, at least in my location, almost all customer facing UI are built by UI5. If you are an excellent ABAPer, you can develop high quality backend service which could be consumed by UI5 via OData, that’s fine. However if you would not like to limit yourself as just a backend developer, but instead, you wanna become a Full-Stack developer, then it is a must that you should learn Javascript. Three years ago ( in 2014 ) I once wrote a blog A list of Javascript interesting features compared with ABAP to compare ABAP with Javascript when I step into UI5 world. There are some new syntactical sugar over JavaScript’s existing prototype-based inheritance introduced in ECMAScript 2015. Check the following JavaScript source code:

I cannot help asking at the first sight of it: is this JavaScript at all?

4. A kind of NoSQL Database for example MongoDB


MongoDB is classified as a NoSQL database in Wikipedia.
Its source code could be found from github repository.
While HANA knowledge is quite important for an ABAPer, have you ever wondered that why NoSQL database will come out although there are many powerful relational database in the world?Again Google with keyword “why nosql”:

I will keep updating this list once new topic comes to my mind which is really related to ABAP. I believe you will tower over normal ABAPers once you get familiar with those stuffs.

5. Learn how to work on a kind of Cloud Platform – updated in 2018/01/02

How time flies! One year has passed again. Here is another point which I think should be added to ABAPer’s TO-LEARN list.
ABAP veterans might get confused that what could they do in current cloud world. Good news is, they are never abandoned by SAP at all.

See blogs from Florian Wahl:

and blogs from Graham Robinson:

In the meantime, besides SAP Cloud Platform, according to SAP note 1380654SAP Netweaver Application Server are supported for the following IaaS providers as well:
We have every reason to expect more blogs in this respect in year 2018.

Further reading

I have written a series of blogs which compare the language feature among ABAP, JavaScript and Java. You can find a list of them below:

Assigned Tags

      10 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Jerry Wang
      Jerry Wang
      Blog Post Author

      Dear readers,

      You may find that there are lots of formatting issues in the text of this blog, for example some words are truncated and displayed into different lines by mistake. I spent quite lots of time to check the source code in blog editor and they are correctly displayed there so I don't know how to fix those formatter issues.

      I post a question Blog editor - formatting does not work to ask for help from SAP community. If you know the solution as well, please kindly tell me and I really appreciate it. Thanks a lot!

      Best regards,
      Jerry

      Author's profile photo Zhanyang Zheng
      Zhanyang Zheng

      Hello Jerry,

      I think I should speak Chinese, then you could understand me clearly.

      我现在正在学习Fiori, 但是需要学习的知识点非常多,我之前只是做ABAPER。

      如果我想在SAP 的WEB IDE上完成开发任务,我都需要学习java, javascript, node.js等.

      你能介绍更具体一些吗,比如我需要学习java的哪些模块,有没有你推荐学习的网站等等

      Thanks very much.

      Tara

      Author's profile photo Joachim Rees
      Joachim Rees

      Hey Jerry,

      don't worry about the formatting, I think it's still very readable!

      And: Congratulations on getting your blog featured on the front page!

       

      best

      Joachim

      Author's profile photo Marco Hernandez
      Marco Hernandez

      Every time I read something about programming, the functional programming topic is either directly or indirectly mentioned. Maybe we will see lambda expressions in the upcoming updates for the ABAP language?

      Now the concepts of Backend and Frontend developers have arrived into the SAP world, so knowing your frontend tools (i.e Javascript + HTML5) will definitely be a plus, so you can be considered as a Fullstack developer.

      I get the impression that some old school ABAPers are terrified of learning new programming languages. I just find it exciting.

      Great post, thanks for the mention 🙂

       

      Author's profile photo Jelena Perfiljeva
      Jelena Perfiljeva

      I learned Java more than 15 years ago, even got some certificate. Never used it and now don't remember any of it.

      Out of curiosity, I've had a notification set up on Dice for any SAP jobs in the area. In the last 5 years none came up where any of this knowledge would give me any edge. There have been a spike of ads for HANA consultants with 10 years of HANA experience though. 🙂

      By the way, I liked your blog much better. It was more practical and resonated more with me personally. Better written as well.

      Author's profile photo Michelle Crapo
      Michelle Crapo

      Hi Jelena,

      I learned JAVA around the same time.   I’ve been programming in SAP since around 1997.   AH!  Amazing how long it’s been.   I’ve never used JAVA.  I have used ABAP Objects, and sadly did use ABAP Webdynpro.   <Smile>  Not using webdynpro anymore.

      However, in my most recent job:

      • HTML
      • JAVAScript
      • CSS

      have all been helpful.    I’m hoping to pick up .NET and VB.   It’s been a million years since I played with VB.

      I will say for me – the best thing to learn is the functional side, technical side, and a little bit of BASIS, a little bit of security.    I have just about the best job in the world as I get to play with it all.

      And yes – a little bit of the new SCN knowledge would be good.   I seem to be getting my answers either from archived content or other sites.

      Michelle

      Author's profile photo Simone Milesi
      Simone Milesi

      Hi Marco,

      After 12 years can i count as "old school ABAPer"? 🙂

      I'm not terrified by  new languages (last year i approached, quite successfully, both Python and JS/UI5). But i wonder if they last in the SAP-ecosystem or they'll be meteor like JAVA (PI....) and/or WebDynpro.

      ABAP, instead, it's still here, you see...

      i study a lot of new things for my amusement, just i'd like to focus on useful and lasting ones 😛

      Author's profile photo Florian Henninger
      Florian Henninger

      Ha.. funny thing I had a chat today about it at the MWC. Languages come and go away… there will be a time where ABAP will go away. But I do not see it the next years. So right now the ABAP transform itself to a modern language and my simple recommendation is to all the ABAP-Developers out there:

      Make use of the new features and transform your style of coding also to a modern set.

       

      Only sad thing is of course, you need to have a really new stack available to use it and the journey of transforming is still not over.

      ~Florian

      Author's profile photo Hao Deng
      Hao Deng

      Great blog! An open world begins with an open mind. And you did it!

      I just read another blog recently:

      https://blogs.sap.com/2017/12/07/be-prepared-for-the-new-abap-programming-model-in-sap-s4hana/

      There are some interesting points, and one of them is: Enhancement of the ABAP Language to provide a native support of the business object concepts (BO as first-class ABAP citizens)

      Just curious about how ABAP will evolve. Any comments?

       

       

       

       

      Author's profile photo Jerry Wang
      Jerry Wang
      Blog Post Author

      Hello Hao,

      Thanks a lot for your complement! I haven't read that blog yet. Will definitely read it and then comment 🙂

      Best regards,

      Jerry