SAP fancies itself a database company these days, as much as a software application development company. So, programmers and coding engineers of all disciplines need not bother themselves with SAP’s back-end element of the computing universe? Well, obviously not. We know that databases form a part of every programmer’s world and we know that SAP regularly hosts hackathons and works on the command line with developer tools, languages, and interfaces.
Considering this database to programmer connection, which tools should the conscientious SAP data engineering developer put in their kit bag? Which languages and operating systems, which Software Development Kits (SDKs), which debugging, testing and release management functionalities and, at a more cerebral level—which collaboration and workflow methodologies should the SAP developer grasp hold of?
In truth, this is an impossibly broad question to answer. We might very well just say: All of them, go for it. The question is even tougher because of core programmer functionalities now found as automated functions inside platform-level SAP technologies including SAP HANA and SAP Leonardo. But it’s still a question worth asking, so let’s try to put some sense and color into this proposition.
A Zen-Like Approach to SAP Programming
Starting in logical Zen-like, one brick at a time, steps, SAP programmers will typically all have some awareness of ABAP (Advanced Business Application Programming). This high-level programming language was created by SAP itself and the original German (Allgemeiner Berichts-Aufbereitungs-Prozessor) means “general report creation processor.”
ABAP has been around since the 1980s if you can remember all the way back to SAP R/2, so it does carry a faint aroma of mainframe about it. That being said, ABAP is flexible enough to be used for modern transactional, analytical, and search applications, which can be built based on a common optimized and standardized data model with ABAP Core Data Services (CDS).
Not quite from a bygone era, but a developer tool that certainly enjoyed higher star billing at the turn of the millennium, PowerBuilder is an SAP-owned Integrated Development Environment (IDE) that the mothership acquired as part of its purchase of Sybase. Now supported by Appeon, this SAP partner has been responsible for providing PowerBuilder developers with a clearer route to getting their applications to cloud and mobile deployment status—a notion that may not have featured when some legacy PowerBuilder were first built. As with many SAP technologies (some acquired, some homegrown) deployed in public sector or big industry, long term legacy language and IDE support is important for what is often a large installed base of legacy users.
Just a note of clarification: legacy software is not a bad thing. Some might say legacy software is simply software that still works.
Linux, Everybody Loves Linux
Just as Microsoft CEO Satya Nadella famously broke the mold and proclaimed that Redmond loves Linux, SAP for its part—although still a predominantly proprietary technology firm—has also made commitments to open platforms, particularly over the last decade. Looking at a couple of the major Linux distributions, this last year has seen SUSE Linux Enterprise now become certified for hot patching while running SAP HANA. As many readers will already know, hot patching practices allow system administrators to apply patches to a Linux kernel without rebooting the system and keep applications running. Red Hat is equally aligned to the cause and so produces a dedicated Red Hat Enterprise Linux for SAP distribution of its operating system.
When it comes to specific programming languages, SAP doesn’t bet its chips on any one single software stream, community or code base as such. Preferring instead to offer a route to Internet of Things (IoT) programming (for want of a popular example) through automated layers of pre-engineered components and functions through offerings like (in this example) the SAP Cloud Platform IoT branded tool set.
Looking more broadly at SAP developer tools suitable for any (but essentially still cloud-centric) deployment scenario, the SAP S/4HANA Cloud Software Development Toolkit (SDK) exists as key programmer creation platform. But, rather than pulling developers down to a fully bare bones command line, this product is supposed to reduces programmer’s efforts when developing an application extending SAP S/4HANA by providing all the necessary libraries and project templates to get going.
There’s an SAP Cloud Platform SDK for iOS. But for Android, its more a case of SAP offering a route to compile and run a native Android app on SAP Cloud Platform, which, is perhaps not quite the same thing in native programming terms.
Abstraction, Automation, Modelling, and Management
Overall, when it comes to languages, programming, developer tools, and code-level functions, we can probably safely make the following statements about how it all plays out in the SAP world. A large chunk of what is on offer is designed to provide abstraction layers that compartmentalize and package specific code libraries and features that a developer might in some scenarios have to consider building from scratch. This means that programmers can (in theory) concentrate more heavily on extensions to SAP’s core front-end brands, including SAP HANA and SAP Leonardo—not to mention SAP Ariba, SAP SuccessFactors, and so on.
This approach to automation and modelling at a lower level is (again, in theory) always done to help build applications that roll out with higher quality, improved latency, better fault tolerance, and a higher level of integration. As SAP would put it, stopping cascading failure and enabling resilience in complex distributed systems is a really good idea. Well, they’d be slightly more corporate about it, but you get the point.
SAP developer hackathons might not quite be the down-and-dirty affairs found in subsections of the hobbyist or hard-core language-focused world, but they are still essentially down with the code. It’s just that some of it is served up (as SAP puts it) as a reusable layer of components with best-of-breed technologies. Right or wrong, that’s German engineering for you.