Herewith, I want to answer to the quite dedicated weblog from Horst Keller where he replied to my recent weblog The Future is OO – Travel Back to the Past? with the somewhat rhetorical question Did ABAP Objects Fail as a Whole?. First, I want to strongly agree with the comment from Sebastian Rehbach on Horst Keller’s weblog. Sebastian titled his comment with “Sometimes ABAP Objects acts like the Cobol OO extensions” which indicates the tonus of his opinions expressed as an agenda of ten points. With Sebastian’s statements I agree in general, so I won’t repeat them here.
To make it clear from the beginning: It’s completely understandable to me that Horst Keller wrote a weblog like he did. And I agree with almost any of his statements. And I am a friend of object-oriented development. Nevertheless matters are more complicated.
Weblogs and Print Media
If writing a weblog, it sometimes is a good idea being sort of provocative. Evidently, this stimulates other people responding more extensively. Consider the opinions expressed in my The Future is OO – Travel Back to the Past? as being my opinions. They may seem provocative to some people. But these were/are my opinions written without being too diplomatic. A weblog should be the right medium for doing so. Regard that a weblog allows a dynamic exchange of statements and opinions. This is not the case for articles published in print media like in the Objektspektrum. Articles in print media should be quite compact and in many cases not that lengthy (as the editorial staff tells you). As an author you don’t have the chance of replying to criticism, in contrast to a weblog. Furthermore, a printed magazine claims to be more formal than a weblog. It would not be a good idea using too many picturesque metapherns and sloppy terms in print media. For weblogs this should be totally alright and makes the article perhaps more refreshing. The Objektspektrum article concentrated on displaying some facts about ABAP/Objects. As it is a non-SAP-magazine with readers not familiar with SAP infrastructure at all, there was the need of outlining the subject and not going into detail as possible in my weblog.
Take this as an answer to the fact that Horst Keller “was completely puzzled” that my weblog article seemed to contradict my Objektspektrum publication. Respect that there are different perspectives one can write about a subject. One perspective is the evaluation of a technology for itself. Another one is the evaluation of a technology being embedded into a huge system and landscape.
Points of View
What did I mean with “ABAP/Objects failed as a whole”? Allow me to cut it short: One aspect is the technological beauty and capability of a language. Another point, being quite independent of the first one, is the place a language takes in in a specific system resp. system architecture. And the latter is the kasus knaxus with ABAP/Objects. There is for sure – no disagreement with what I wrote in my article in Objektspektrum 03/2004. In the article I explained the constraints which SAP had to take into account when implementing ABAP/Objects and embedding it into the traditional SAP infrastructure. You cannot embed a language as you want if there is a given architecture. SAP made no really big mistakes, I would say. Polishing up a legacy system containing an extremely huge internal and customer code base with a new paradigma often fails. As I expressed my opinion, almost none of our big SAP customers (big companies, millions of lines of legacy code of ABAP, mostly people being more specialists in their subject than developers) uses ABAP/Objects significantly. The reasons are numerous. One is given just above. Second, it is questionable whether an OO language is the right fit for a business logic oriented system already providing basic infrastructure, powerful-framework-like architecture and many tools available at the hands of the users and developers.
Another reason, IMHO, is the difficulty of REALLY learning what OO is all about. With this strong experience being evident to me, I wondered about the comment having made on the weblog of Horst Keller by Igor Barbaric. Please don’t misunderstand me: Igor’s comment is totally OK with me. I just wondered how he managed to do as he described (set up a project with ABAP/Objects and greatly exceed the success of prior ABAP projects, beginning from scratch with OO and ABAP/Objects). I don’t know about the basic conditions of Igor’s projects. It is good to know that there are companies allowing their employees to do freely what they want without being sure whether and when and with which costs the new paradigma chosen will lead to success. Additionally, I would be keen on knowing details about the project and the company: Is it a big project? How big was the legacy code base? It is a big company? IMHO, SAP systems were mostly designed for enterprises not for smaller companies. Nowadays this has changed somewhat.
Just a detail, but I promised to clarify a statement about ABAP/Objects repeated by Horst Keller that marks “symbols already occupied by ABAP” as a limitation of ABAP/Objects. Well, as the point character already is in use by ABAP as end of line marker, you cannot use it for ABAP/Objects. So there is the need to press the keys to produce the string -> for dereferencing. This is just a small detail (as the clumsy calling of a message), but in my eyes essential. Reasons: You have to use it frequently and in addition with concepts like function calls it makes ABAP/Objects dowdy, IMHO.
Being Provocative (Again)
Allow me some sarcasm but take it not too seriously (we all want to be friendly here): When the time has come for SAP users gotten used to ABAP/Objects, I see it most probable that Java will have displaced ABAP/Objects. As a realistic vision one could add that SAP then could have managed to allow the random integration of ABAP code into Java source. That meant one of the top points on the agenda of SAP would have been realized.
Today you can find statements like “Use ABAP or Java as you want, it’s your choice”. As we all know this is completely nonsense. But in the future, the age of the robots (greetings to Will Smith), the age of Genetic Engineering, this should become possible. As Moore’s Law concludes (for chip technology) technical development advances exponentially. Read Ray Kurzweil’s book “The Age of Spiritual Machines” to know that this applies for almost any aspect in computation (I’m sure Mark Finnern knows his books, because I found links to similar resources on one of the sites coping with future he is involved with).
As weblogs at SDN indicate there are several legitimate opinions about ABAP/Objects. Everyone has to find out for himself which place ABAP/Objects will have in his life. Let me remark that I find some statements of SAP somewhat distressed. In the online help (also for version 6.40) you can find an argument in favor of ABAP/Objects reading like “If you want to implement a counter needed several times, you now can easily do this with ABAP/Objects. With Function Modules it was a pain.”. Additionally, it is stated that ABAP/Objects embraces the extended categorization of business logic in contrast to function modules and groups.
SAP knows of the improvements necessary to make ABAP/Objects a language of preference. Let’s wait and see how development progresses. My assumption is that there are not enough developers available on behalf of SAP for improving the ABAP/Objects concept substantially as there is much work to do to advance NetWeaver.