IDE, the ABAP way

Lately I have been musing (contemplating, meditating on) the term “IDE” or “Integrated Development Environment”. What is it that makes it integrated? Well, you have of course an editor, a compiler and a debugger (or any other combination of tools) integrated into one program. However, the program itself is still pretty much standalone. It is usually not integrated into anything else. So much for “integrated”. Tsk, tsk.

Enter the ABAP platform. I’ve been rambling on about it before, but one of the features that makes ABAP such a great environment to develop in, is that the development environment and the runtime environment are all one. Now that is what I call integrated, my friend. True integration, if you ever were looking for it. You need look no further.

Imagine if something similar could be done for, let’s say, a J2EE server. How do you currently develop J2EE apps? You create an offline environment, including (snicker) an Integrated Development Environment and tons and tons of libraries to make sure you’re not missing any dependiencies. Then you write something, compile it, package it, and deploy it to the server.

Instead, what if you could develop directly on the system? Imagine opening a browser and being presented with a window where you edit code. Maybe a browser is not suitable, so imagine it was a rich client app (to be able provide certain features more easily) where you edit the code. However, you’re not really developing locally; when you save your work, it’s on the server. The syntax check and compilation all happen on the server (and so does the version management). Moreover, all the libraries are there, so there are no dependency issues. When you compile, the program is already part of the server environment.

That sounds like a fantastic way to work. It certainly is. Of course, if you come from the good old mainframe days, the idea of development taking place directly on the server is nothing new to you. It’s only in the recent age of web development, where the use of “stiff” compiled languages for use in web applications have resulted in complex ways to be devised to package and deploy software to a server environment.

Using scripting languages for web development of course makes things a lot simpler. You can make a change to a text file, and provided the environment can be reloaded, the change is instantly visible. Nonetheless, you still don’t have that “integrated environment” that, to my mind, represents the “holy grail” of server development.

In ABAP, the base system is a complete ecosystem comprising not only of development tools, but a host of applications that support maintenance of the environment, including change management across the landscape, as well as the core functionality required to create really robust business applications.

Now imagine if the same could be built on top of a J2EE system. It would be a huge undertaking, considering that literally decades of development have brought the ABAP platform to where it is now. However, getting the basics of an integrated development environment (and I use the term in the sense of it being integrated into the system) to work might not be so difficult. Once you have that up and running, developing apps for such a system would become easy enough to create a really useful ecosystem or platform for further development.

(If you haven’t done so already, you might want to read my articles entitled Why I like ABAP and What makes a platform?)

Tags: , ,

  • With the ABAP platform, if you want to test a change before it gets “published”, how would you do that if everything is done “live” on the server? Is there a separate testing environment?

  • admin

    Yes, in fact the standard practice is to install and configure three environments: Development, Quality Assurance (for Testing and Training) and Production. The platform comes with a very sophisticated (built-in) system for managing changes through the landscape called the Transport Management System, with which changes can be moved from Development to QA and then to Production, by means of so-called transports, which can contain any manner of changes to the system (including data).

  • That is not bad at all. It has some definite advantages over the conventional way of software development. I does, however, also mean that you can’t do your work “offline”. Or does ABAP have a solution for that too? Despite that I am pretty impressed with the ABAP platform.

  • I want to comment on Helmuts’ question about working offline.
    Our office generator was defective and each time the power was cut, we lost network connectivity and some workstations were left without power.

    Although I was fortunate enough to have power on my workstation I could not work in ABAP because of the network being down. After this I thought about how SAP could make it possible to have you work offline – maybe to have a offline copy our the programs, tables, function modules, …
    … it didn’t take me long to realise that at this stage this won’t be possible. Besides, how will you be able to control 2 people editing the same program if you are offline?

  • Well if you had some sort of version control system in place like svn or git you could. Subversion (svn) could take care of the merging if two people were working on the same file.
    In the ABAP world this doesn’t work as the code is all on the server.

    To work offline you could download your code to your workstation and code there. Not ideal if you have a lot of methods and classes that you are working on.

    In my mind an IDE offers tools to the developer that includes but is not limited to code suggestion based on context, debug tools, testing tools and refactoring tools. SE80 is getting there but other ide’s have advantages in other areas.

    Just my 2p.

    cheers,
    Nigel

  • Manie

    I think it a very good thing in our day and age to be limited in terms of taking work home. I know there is always VPN and RASS and whatever that can enable you to work remotely, but they are not common practice. Off site = off the job.

  • I remember using some utility called SAPEdit, which allowed me to work on ABAP without connection, when I was working offshore, in poor connections. Only, I had to download the program before disconnecting (of course).

    But that was a hassle as I lost the click-and-navigate option to tables, functions, structure definitions, screens… or everything, that a true IDE like the SAP Environment provides. Also, I had to download all includes. The tool allowed me to syntax check.

    In ABAP once, you edit the code, it is automatically “locked” under a transport. So, another user cant use it, until I release the transport. Well, it is possible to have another user added to the transport, but that can be controlled via authorization, if you really need. And, in general, all ABAPpers know thats a “be-careful” situation.