Skip to Content
Author's profile photo Horst Keller

Is ABAP Sexy?

Disclaimer

 

  1. 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.
  2. 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.
  3. 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?).
  4. 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.

Conclusion

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.

Further Reading

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”

Assigned Tags

      15 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Dear Mr. Keller:

      Thanx for another great blog...Let me tell you about my programming experience...

      I start programming 9 years ago with C++ (Awesome) and VB 6 (Shame on me)...Then move through several languages including Euphoria, Pascal, Delphi, Java...Since the last 5 years I started on ABAP...I must admit...Those are the best 5 programming years ever...Maybe ABAP is not sexy, but I just couldn't resist to fall in love with it...Specially when I realized that Scripting Languages could be integrated with SAP...It was a dream come true...because...I really don't like Java...It's just a C++ without the fun (Pointers, References, Templates, Multiple Inheritance)...

      Having an OO ABAP made love it more...If someone ask me for my favorite language of all times (Just one)...It's would be definitely ABAP... -;)

      Greetings,

      Blag.

      Author's profile photo Former Member
      Former Member
      Very nice blog. Should have been written a few years back, when the confusion was in the making.
      Further, the idea for the discussion should be on technical efficiency/deficiency of a language.

      Also, a programmer should not feel ashamed of working with a particular language. Remember, someone must have achieved a lot more than what you’ve done using some sexy language.

      The satisfaction for a programmer should be derived from the ability to implement logic and provide solution for the business/technical issues rather than the fact that whether he works on a sexy language or from the perception that his language is considered more macho than others.

      There are a few technical differences between ABAP and Java and are well highlighted in this Blog.

      A few more deficiency from ABAP side:
      It is of course a less geeky language than C, C++ or Java. You can't write a network protocol or use network/socket programming using ABAP. Or may be I don't know how. You don't have to use the geeky vectors etc. instead you can use the itabs and you don't have to think about the inside stuff.
      Of course Java was projected as internet language. But how much of internet is really written in Java?

      I've also worked with Java/JSPs and I love ABAP for how easy and effective it is for business application and database interface programming.
      Added to it, the version management, programming on server plus the job-saver, debugger.

      Dynamic programming in ABAP using data references and field-symbols does satisfy the need of a geeky brain to an extent. But as I said it's again about the logic.

      Very well said that people who have been good with ABAP, will keep on using it. A statement from the original SAP technical consultant and well said. Though they might gain some knowledge/ experience on the other side but there SAP development skill is too valuable to be scraped. Rather they should develop in the new tools and utilities in the ABAP side.

      A lot of confusion was created as if you got to learn something other than ABAP/SAP tools to be relevant which was mostly out of excitement rather than anything else. I still see that most of the Business level programming being and will be done in ABAP. In excitement, some project managers are wrongly deciding to get a lot of Java professionals rather than a balanced team for SAP Netweaver implementation only to find out that there is a lot of business application programming required and that should rather be done in ABAP [ BAPIs, DDIC stuff etc. ]

      How many XI consultants will be required in a typical SAP implementation? And if ABAP is the better language for business application programming than how many Java programmers are required for developing the UI which is 30% auto-generated or is it 40%?

      There will be a need for a balanced team for implementations and if someone is good with ABAP my suggestion will be to learn the tools and utilities from the Netweaver ABAP side.

      As for as service or maintenance projects are concerned, what is the percentage of Java business applications provided by SAP? ABAP will be the main focus area here.

      Further, any programmer is a programmer first. Learning a language is not an issue. Having a programmer’s approach is the main thing. A few hours of read and then F1 /JavaDocs/SAPHelp will should be enough for the rest.

      Your inputs on my thoughts about an ABAP programmer’s progression path will be appreciated:

      http://careerless.blogspot.com/search/label/Evolution%20of%20ABAP%20Consultant

      Author's profile photo Former Member
      Former Member
      Hi Ram,

      Nice comments. I just wanted to highlight one point here. You said:

      "Further, any programmer is a programmer first. Learning a language is not an issue. Having a programmer’s approach is the main thing. A few hours of read and then F1 /JavaDocs/SAPHelp will should be enough for the rest".

      This is very true but there is a catch. In the absence of someone guiding a new ABAP learner, who lets say, used to be an excellent C developer, the learner may end up NOT USING the best of ABAP. People who are excellent at other programming languages tend to use constructs or structure the overall program in a way that really does not depict the best approach for ABAP development. I have seen cases whereby people develop programs just like they used to do in C. They only use ABAP constructs. This happens because they are too narrowly focused on what their previous experience with other programming languages taught them. They arent really aware of the strength of ABAP, and the options available to address business problems.

      A teacher of mine used to say, when solving a recursive problem, think recursive. Identify the nature of the problem and then address it the way it should be addressed. So yes, it is very true that a programmer's approach is necessary. But it is also necessary to be open-minded and developing business applications the way they should be.

      My two cents...

      Regards

      Author's profile photo Former Member
      Former Member
      some say programming is an art. artists do not necessarily need sexy tools but they definitely want to craft sexy artwork.
      and the tools they use have to support this and give the artist a feeling that they can achieve what they think of and not be limited by their tools.
      they should be supplied with a selection of patterns and templates but not be bound to those patterns when they desire to go beyond it.
      they should be able to craft artwork that pleases not only the sponsor but also the beholder(user).
      the completeness of the the toolset and its flexibility very much influences the general attitude of the artist.those with a limited toolset tend to contemplate first if their objective can be realized at all and their creativity becomes restricted by the toolset's capabilities. on the other hand the artist with a (more) complete and flexible toolset is obligated only to the requirements of the artwork itself and his own level of mastery of the toolset.
      to make it clear once more, latter does not exclude the usage of given patterns and templates where ever useful, it just doesn't confine creativity to it.

      in summary, a language doesn't have to be sexy per se but it should allow the applications created to be sexy.

      it's the toolset that makes the difference here, that separates those limited to using the IKEA Kitchen Planner
      from those creating The Tower of Babel.

      regards, anton

      btw, can anyone tell me why there are so many webdynpro applications out there containing tables within too narrow frames (scrollbars!) although there would be enough space to display the whole table?
      is this a WD limitation? or one of the WD developers?

      Author's profile photo Christian Loos
      Christian Loos
      Hi Anton,

      is a tool not also an application? One where the "artist" is the "user"?  If so then the same requirements should also apply to the development environment for a given language.

      Regards,

      Christian

      Author's profile photo Former Member
      Former Member
      Hi Horst

      Interesting blog, however in my opinion the thought you have put into bears little relationship to the general perception of Java as being sexy or cool.  It could also argue the reason for this is mass consumption of the language due to a great emphasis placed on Java in learning institutions.  Many people are introduced to Java and are therefore comfortable with it.

      To my mind however, the sexiness comes in the operation rather than the build.  And ABAP is an efficient operator when it comes to actually running the developments in question.  For all of its accessabaility, it can be argued that it is too easy to become familiar with Java without learning about programming efficiency and resouce utilisation.

      So for this reason I am a little cold on whether or not a particular language is "cool" or not.  We seem to forget the languages are tools to complete a job, not an end in themselves.

      For example, my son wnated to know whether arc welding, mig or gas welding was better.  On the face of it, they do the same job, with similar outcomes.  The answer is completely dependant on what (in detail) is being welded to what.

      From the SAP as a business tolls example therefore, ABAP is still the main game.  But WDJ certainly shakes the tree.

      Regards

      Gareth

      Author's profile photo Markus Kohler
      Markus Kohler
      Hi Horst,
      When I read that Abap has around 700 keywords, I would say that the problem is not that this makes the language less sexy, but rather that it makes the language very inelegant.
      Smalltalk for example does have 0 (or 5, depending on how you count) keywords.

      IMHO elegance has some value because it makes the language easier to learn, and allows the language to be more expressive and extensible.
      Some of the most important innovations within the last years, were pioneered by Smalltalk, such as refactoring, modern IDE's like Eclipse and unit testing.

      Regards,
      Markus(Is ABAP Sexy?)

      Regards,
      Markus

      Author's profile photo Peter Inotai
      Peter Inotai
      Hi Horst,
      Interesting weblog!
      I would make a difference between ABAP/4 and ABAP Objects. I didn't find ABAP/4 sexy, it's more like an old programming language for grandpas :D. However I found ABAP Objects very cool,sexy and elegant, especially in the BSP environment.
      Best regards,
      Peter
      Author's profile photo Former Member
      Former Member
      Hi,
      to compare ABAP with Java is like comparing the incomparable because ABAP just won't work outside SAP. It's not an independent programming language and therefore not that flexible. What hurts me most of the time is that simple things are not simple to express with ABAP. For instance string concatenation isn't simple at all. Perhaps it's due to my weak ABAP knowledge, but e.g. given details of a person the following ABAP code does't do what I would expect:

      concatenate title ' ' name ', ' vname ' (' tel ')' into text.

      The space between title and name and between the comma and vname are supressed for some reason. The supplement "separated by space" doesn't help here either. In general it seems difficult to concatenate with mixed arbitrarily padded space. I am forced to concatenate sequentially using "separated by space" where needed.

      Cheers, Frithjof

      Author's profile photo Horst Keller
      Horst Keller
      Blog Post Author
      Hi,

      there's light at the end of the tunnel!

      As of Release 7.1 CONCATENATE is not needed any more.

      Your statement will look as follows:

      text = title && ` ` && name && `, ` &&  vname &&  ` (` && tel && `)`.

      && is the new concatenation operator allowing string expressions. Besides &&, string expressions can also contain string templates (a string template creates a character string from literal text, embedded expressions, and control characters ).

      String expressions are a new kind of expressions besides the old arithmtic and byte expressions.

      As of 7.1, all expressions can be placed at almost all important operand positions, e.g.

      IF a + b<meth( c && d ).

      Besides string expressions, there will be large set of string functions to be used directly at operand positions (hence replacing the old and admittetly clumsy string staements).

      Last but not least: Since Release 6.10 you can use string literals `(backquotes) if you want to preserve trailing spaces. In textfield literals ' (single quotes) trailing spaces are deleted (comes from the old days, when memory and database space was an issue).

      Cheers!

      Horst

      PS: As soon as 7.1 will be announced officially by SAP, I plan to start a Weblog series the introduces the new features.

      Here is just a little example of the things to come:

      IF contains( val   = email
                   match = `\w+(\.\w+)*@(\w+\.)+(\w{2,4})` ).

      Author's profile photo Peter Inotai
      Peter Inotai
      Thanks for this info. It really reminds me to SAPscript.
      Looking forward for your weblog series about the new features.
      Peter
      Author's profile photo Former Member
      Former Member
      nice that they chose an operator which is known as logical AND elsewhere.

      anyway, better than nothing, isn't it?
      anton

      Author's profile photo Former Member
      Former Member
      I have been developing in so many languages that I spare you the pain of reading the list in order to prevent you from falling asleep.
      Yes ABAP is sexy, as a matter of fact is very sexy, but only when you need to do something quite specific, a quick and dirty report accessing a database, it's perfect for such a job.

      In general I would say a programming language is as much cool and sexy as much it allow you to produce software in previously unexpected ways; to  boldly go where no programmers have been before...

      Every programmer mouth start to water when someone else show a way, a tool, or a language which, once mastered, could allow him to do something new, exciting, and formerly not possible or just with a reduced effort.

      I would not say that elegant code make a language sexy, oterhwise the old lisp would be considered very sexy. But I admit that's arguable.

      Author's profile photo Former Member
      Former Member
      Hi Horst,

      What about ABAP grammar? Is it available?

      Regards, Stepan.

      Author's profile photo Xinjiang Li
      Xinjiang Li
      "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"

      Hi,it's full of philosophy!