There is an excellent blog written by
tuli0 <<
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:
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 1380654,
SAP 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: