ABAP on the SAP Cloud Platform – Some thoughts and a wish list
Yesterday during his SAP TechEd keynote Bjoern Goerke announced that an ABAP runtime will be available on the SAP Cloud platform. Currently, the available information is still quite sparse. There are two blog post by Florian Wahl that give a good overview over what is currently known
However, as there are some rather passionate ABAP folks in the SAP ecosystem there was immediately quite some noise regarding this announcement on social media. Some were not so sure what to think about the announcement:
— Gareth Ryan (@wizbongre) September 27, 2017
Others immediately came up with a which list for the new ABAP on the SAP Cloud Platform.
With ABAP in @sapcp, will there also REPL for ABAP?
— Tobias Hofmann (@tobiashofmann) September 27, 2017
After following these discussions and after reading Graham Robinson blog ABAP to the cloud I decided to also blog my thoughts about the announcement. This blog consist of two parts. The first part is what I think this announcement means for an ABAP developer with respect to what to learn. The second part is my wish list for the new cloud ABAP.
But first a disclaimer. Everything written below is only my speculation. So it is highly likely that everything ABAP on the SAP Cloud Platform will be different.
Resistance is futile
The most important result from this announcement is in my opinion that its now time for all the ABAP developers to learn a lot of new tools and technologies.
Its pretty clear form the announcement that SE80 will not be supported any more. Wether the future development environment will be ABAP in Eclipse or something like the SAP Web IDE doesn’t really matter. As SE80 will not be supported it is a good idea to start making yourself familiar with other IDEs right now. In addition ABAP developers should start to get used to more text based editors (like e.g. the text based DDIC structure editor in ABAP in eclipse). Form based editors like the ones in SE80 will become very rare.
The development model will be something very similar to the S/4HANA development model. Therefore, its time to learn about this programming model and the related technologies like BOPF and CDS. With respect to the UI it is time to start learning SAP Fiori and/or SAP UI5. There will be no SAP GUI UIs in ABAP on the Cloud Platform anymore. I’m pretty sure that SAP will provide some kind of AVL derivative to enable the simple generation of some tables based output. However, this will always be only usable for a few use cases. Everything more complex will most likely require the usage of Fiori or UI5.As the ABAP development on the SAP Cloud Platform will focus on smaller applications it is probably also useful for every ABAP developer to start to learn about Microservice architectures and how to build applications using microservices.
So in summary the announcement basically means that it is now time for ABAP developers to learn all these fancy “new” tools and technologies. Only developers that know these will be able to profit from the availability of ABAP on the SAP Cloud platform.
ABAP: Live long and prosper
So now to the second and fun part of the blog: My wish list for the future of ABAP. As ABAP will get rid of some of its burden (as now downward compatibility to before Star Trek II: The Wrath of Khan needs to be maintained) most of them should be easily to implement.
6. no CALL METHOD please
I would like to see that some of the old syntax elements like the verbose CALL METHOD. Instead ABAP should just support the class->method( ) style.
5. A Proper Package Concept
One thing that can really drive you nuts in ABAP is the missing of a proper package concept. And yes, I know there is a package concept and it has some nice features (cf. ABAP Package Concept Part 1). However, what I really want to have is a package concept were I need to explicitly import packages I want to use. Basically the way packages work in Java. This would, for example, allow to have different versions of a class with the same name and just use the one you want. Thereby we would get rid of the stupid cl*_1 cl*_2 or cl*_new naming of classes.
Oh and yes, we wouldn’t need to start all customer classes with a Z to distinguish them from SAP classes.
4. Class and Method Names
I hope that in the new ABAP there is no character limitation anymore for the naming of classes and method names.
3. Boolean please!
I really want to have a proper boolean data type in ABAP. I don’t want to write any abap_true or bap_false anymore.
If you have never used a REPL you should try and learn a language that provides one. Once you worked with a REPL you will miss it whenever it is not there. But as the new ABAP will not support writing small test report anymore (as reports will be not there at all) we desperately need a way to test small things out. There was already a ABAP console in the demo of ABAP on the Cloud Platform. So I guess it should be possible to extend it to a proper REPL. And the best thing would be to also integrate the REPL in the debugger.
1. Functional ABAP
And while the SAP is on it I’d really like to see some more functional features in ABAP. Why? Because I think it is in many cases a great way to implement certain functionality.
So that is my wish list. I would be interested to hear and discuss what you would like to see in the future ABAP on the Cloud Platform.