Is ABAP Sexy?
- Although I have this little blue logo besides my name, this blog does not contain any official SAP statements. It contains just some of those thoughts that come into your mind when you are doing the weekly Saturday morning vacuum cleaning of your condo.
- I do not claim that anything that I’m writing here is true or does make any sense. I did neither study computer science nor do I have a deep knowledge of the foundations of programming languages (not to speak about the English language …). Maybe you guys with better background in such things can add something more profound.
- The aim of the blog is not to offend anybody but to start a little discussion about the pros and cons of ABAP and to get some feedback about your experiences with ABAP compared to other programming languages. Hey, we are all here to learn (and not to collect points, or?).
- Everyone offended by the word “sexy” might replace it in his or her mind with “attractive”, “geeky” or what else he or she assumes to be appropriate. I’ve only chosen the word “sexy” to get your valued attention.
Can a Language be Cool or Sexy?
Does it make any sense to ask if a programming language is cool or sexy? Can any language be sexy? OK, for most people of the western world French is sexier than English or German. Why? If we leave aside grammar and pronunciation, a provable fact is, that French has much less words (many French words are manifold overloaded). Is this the reason that Java – the other language used by SAP for its NetWeaver Application Server – is widely acclaimed to be cool or sexy? Java has approximately 50 keywords, while ABAP has more than 700! But joking aside we must accept the fact, that the impression that a language makes on the user (its “look and feel”) is clearly a factor that should not be underestimated in evaluating and selecting a programming language.
Comparing ABAP with Java
If you compare pieces of ABAP source code with Java source code – both of them fulfilling the same tasks –, the Java source code appears to be leaner and thus more modern because Java uses less text in favor of curly brackets. Although this makes very little difference to the programmer, because the ABAP Editor provides programming aids such as patterns and code completions, we can clearly see that ABAP is a 4GL language that evolved over time. Almost every important functionality that you have to specially load into Java in the form of a library is already contained in ABAP. Therefore, many ABAP statements resemble an interface to the underlying C kernel more than they do a language element. This applies in particular to important functions, such as database access and mass data processing. For these purposes, concepts such as Open SQL and internal tables are embedded in the language. Static checking of syntax and types ensures the robustness of the applications, while performance is optimized in the C kernel that is invisible to the ABAP developer.
As a drawback, the wide range of the language is often said to make ABAP difficult to learn. But doesn’t this ABAP-specific problem also occur in Java, except that in Java, it occurs in the libraries rather than directly in the language? Instead of a plethora of language elements and their documentation, in Java you have to deal with an even greater number of interfaces and classes and their interface descriptions. The complexity of application development in the business area, and the tools thus required, are determined by application requirements. This complexity is not usually reduced by using a simple language with only a few language elements. Or to say it even more bluntly: In no way does the easy availability of Java mean that everyone who learned Java is automatically a proficient business application programmer.
Of course is the availability of a programming language another factor in its enforceability. It is clear that Java, an elementary language with a compiler that can be downloaded from the Internet, has a major advantage in this regard. Programmers who want to learn to use ABAP, the programming interface of the AS ABAP, require a complete AS ABAP installation. As recently as 10 years ago, this kind of application server, in the form of the then SAP Basis, was usually available only as a component of a complete R/3 system. For that reason, it was possible to access ABAP only through companies or universities that ran an SAP system. But since then, there has been a fundamental change. Today the latest version of AS ABAP can be downloaded free of charge as a SAP NetWeaver 2004s ABAP Trial Version from the SAP Developer Network.
ABAP is neither Cool nor Sexy
So, in direct comparison, ABAP appears to be big, fat, and dirty, while languages like Java appear to be small, slim, and clean.
Especially, Java has a very cool image because of its origins as the programming language of the Internet. ABAP, a language that is oriented towards business applications, does not have this positive side effect, and so it is seen as being “uncool”.
In this respect, it doesn’t help ABAP’s appearance, that SAP guarantees its customers that their ABAP code will remain executable under new versions of the language (of course, it serves the customers!). Because of this, ABAP now contains a relatively large number of obsolete language elements. Unfortunately, this situation is often abused, and obsolete language constructs are still sometimes used in new development work.
Other languages like Java do not have this problem. Even for the libraries they’re using, downward compatibility is not such a major issue as it is with ABAP. This freedom stems from the fact that other languages usually are relatively independent of any applications that are based on them, while ABAP, as the programming language of the earlier R/3 and today’s AS ABAP, is an integral part of a greater whole.
Another reason for ABAP being neither cool nor sexy is that it seems to be a little over-the-top to have to install a complete application server in order to learn a programming language. Consequently, programmers who want to learn ABAP must also become somewhat familiar with administrating the server.
Must ABAP be Cool or Sexy?
No! ABAP is a working horse. Working horses are never sexy. Powerful, yes; cool or sexy, no! Would you send a pop star or a model that you regard as cool or sexy into a coal mine? Of course not! So why must a programming language be cool or sexy that is mostly used for data mining? It is easy for a language to appear cool and sexy if it has outsourced to its libraries the uncoolness that necessarily comes with being a framework for business applications. But does this really help the business application developer?
The clear response to the objection that it is awkward to have to install a complete application server in order to program ABAP is that ABAP programming is useful only on the AS ABAP! ABAP is the language of the AS ABAP and is not intended to be used for other programming tasks. It would be just as much of a mistake to try to program SQL without a database. (For more information about the connection between ABAP and the application server including the organization of development see Thomas’ Weiss ABAP Trial Version for Newbies: Part 3 – Why and How the Server Matters to You as a Developer: Server Architecture and Work Processes).
A common phrase is: “*** sells”. But another phrase is “nothing succeeds but success”. ABAP has made its name as the nearest thing to an industry standard for business application programming, and its proprietary nature has not proved to be a disadvantage in this regard. The standard for the ABAP programming language and its environment is controlled by SAP. This can have distinct advantages. SAP builds solutions for special technical tasks directly into the language, thus ensuring that SAP developers can react to current and future requirements of business application programming. In the Java camp, on the other hand, one or several solutions may emerge from a large pool of concepts. Unlike with ABAP, in theory, every member of the Java community can personally affect any development and provide his own solutions to a particular problem. An example of this is the handling of persistent data in a database. In ABAP, Open SQL is directly integrated into the language, providing a robust interface that is specifically designed for business applications on an application server. Java, on the other hand, offers several generic and competing persistence frameworks, and the individual developer has to select the most suitable for his purposes.
ABAP is a comprehensive, proprietary language that is tailored by SAP to meet the requirements of the business software that it provides, and is further developed in accordance with these requirements. Java, on the other hand, is a lean language that can be extended in any direction via libraries that are contributed by a large community. Creating business software is only one of the many possible uses of Java. With AS ABAP, SAP enables developers to access its well established business programming language, ABAP, whereas with AS Java, SAP has opened itself to the Java community. Both approaches are equal pillars of a unique product—the SAP NetWeaver Application Server. While there is usually no alternative to using ABAP for further developing existing applications, the decision about which programming environment to use for new development depends on a number of factors.
- Developers who have experience and knowledge of ABAP and already work with ABAP-based systems are likely to continue to work with the familiar tool. ABAP is developed on an ongoing basis to enable such developers to continue to work in the SAP NetWeaver environment. Web Dynpro and Web Services for ABAP are examples for the ongoing support of ABAP in the new environment.
- Developers who have no SAP or ABAP experience and who are used to working in the standardized J2EE world will most likely want to stay in this environment rather than switch over to ABAP.
- Developers and development teams who either have experience in both worlds, or are unfamiliar with both, have to decide which programming environment will suit them best.
With the SAP NetWeaver Application Server nobody is forced to work with a technology that he or she does not know or (for whatever reason) like; instead, both technologies are supported in equal measure.
This blog is a short form of the ABAP vs. Java discussion in Chapter 1 of the book “ABAP Objects – ABAP Programming in SAP NetWeaver”