I recently had a Twitter exchange with SAP Mentor DJ Adams (@qmacro) about the “good old days” of Assembler programming on R/2 systems, and I remembered that I still had the original course notes from IT400 “Introduction to Assembler Programming”.
This course was first published in August 1989 (actually last Sunday was its 22nd birthday), and it was one of the first courses I attended when I started working with SAP software.
Many of the features that are still present in ABAP have their origins in IBM System 370 Assembler. To name but a few:
- Why you put an asterisk in column 1 to denote a full line comment
- Where the offest and length syntax came from E.G. lv_field+4(4)
- Why an ABAP return code of 0 means success, 4 means warning and 8 means error
This was a very enjoyable and interesting walk down memory lane for two old R/2 hacks like myself and DJ, and I thought that any other old-timers might enjoy the same nostaligic stroll. (In fact, reading the course notes will explain exactly what a Q-Macro is, and hence where DJ got his Twitter handle from).
When R/3 was developed in the early nineties, many of the architectural features and principles developed in R/2 were transferred into the client/server architecture used by R/3 (which is now the NetWeaver ABAP stack).
For those of you however, who have never heard of R/2 (or at least never went to that part of the IT museum), I highly recommend having a look at these course notes because they will show you that the modern versions of SAP software have a pedigree that stretches back to the very stable and solid foundation laid in the IBM Mainframe world of R/2.
For you newbies to programming (by that, I mean anyone with less than 20 years experience 🙂 ), I would highly recommend that you give good consideration to the principles of Assembler programming. Far from being “archaic” or “redundant”, the principles I learnt 25 years ago gave me the solid foundation I have today for being able to write efficient coding in high level languages.