Tag 3
Programmierung stand heute auf der Agenda. Und weil dieses Thema bei uns einen recht hohen Stellenwert einnimmt, haben wir uns dazu entschieden, unsere Eindrücke getrennt aufzuschreiben. Jeder hat einen anderen Standpunkt und den möchte jeder natürlich auch bekanntgeben:
Adi64:
Auf den dritten Tag freute ich mich besonders, denn an diesem Tag sollte es endlich ans Programmieren in der SAP-eigenen Programmiersprache ABAP gehen. Je nach Einschätzung der eigenen Programmierkenntnisse konnte man in einen HTML-Grundkurs, einen Kurs in ABAP für Anfänger und einen Kurs in ABAP für Fortgeschrittene gehen. So kam es, dass wir uns beide im fortgeschrittenen ABAP-Kurs trafen
Nach einer Erwartungsabfrage (ja, die mag SAP sehr gerne
und einem kurzen Abriss der technischen Umsetzung von SAP-Produkten ging es endlich ran an die Bulletten.
Los ging es erstmal mit einer kleinen Enttäuschung für mich: ABAP ist an COBOL angelehnt und hat daher eine (meiner Meinung nach) eklige Syntax.
ABAP unterscheidet sich auch stark von anderen “normalen” Programmiersprachen im Funktionsumfang. Boolsche Typen sucht man hier vergeblich, dafür kann man direkt und ohne Umschweife verschiedene Datenbanken ansteuern und die Werte direkt in einer editierbaren Tabelle ausgeben.
Der Sinn und Zweck von ABAP ist aber auch einfach ein ganz anderer: Die eigentliche Applikation läuft auf einem externen Server, das System des Users rendert sozusagen nur die Ausgaben des Servers. Das System hat mich insgesamt also etwas an PHP / MySQL erinnert. Ziel der ABAP-Programme sind meistens BWL-orientierte Abläufe, von daher wurde bei der Entwicklung der Sprache z.B. nie an 3D-Engines gedacht
n0stradamus:
Die Enttäuschung traf mich ebenso, das hochgelobte ABAP sieht aus wie Script…
Header- und Sourcecode-Dateien suchte man vergeblicht, in der IDE war wirklich alles integriert.
Nachdem man sich daran und den eigenwilligen Klasseneditor gewöhnt hatte, kam folgender Programmiersprachenkulturschock:
ABAP kennt keine booleschen Werte
Dementsprechend umständlich ist auch das Abfragen von Zuständen in ABAP; den Workaround den wir gezeigt bekamen, war ein ‘X’ für true und ein Leerzeichen für false zurückzugeben.
Wie Adi64 oben schon betont hat, ist ABAP eben für die Simulation von Abläufen in der Wirtschaft und der Verwaltung von Datenbanken gedacht, in der Hinsicht ist die Sprache top!
Die IDE erschien mir besonders, also werde ich hier mal versuchen, sie so gut es geht zu beschreiben:
Da der ABAP-Code nicht lokal beim User auf der Maschine läuft, sondern auf den SAP-eigenen Servern, muss man nach jeder Änderung im Code diesen sozusagen aktualisieren. Ein einziger Knopfdruck und jeder, der im SAP-System ist, kann die veröffentlichte Anwendung starten oder weiterentwickeln. Erwähnenswert ist auch die Tatsache, dass eigene Datentypen ohne Probleme auf den Servern übernommen werden. Wenn man überlegt wie oft eigene Typen eine Fehlerquelle sind, ist das sehr beachtlich.
ABAP besitzt auch einen objektorientieren Teil, der wie ich finde, sehr ungewöhnlich zu benutzen ist. Anstelle einer weiteren Textdatei mit Sourcecode gibt es eine richtiges GUI in Tabellenform um Klassenmember zu definieren.
Von dem was ich an diesem einen Tag sehen konnte, kann ich sagen, das Entwickeln mit ABAP keinen Spaß macht. Ich hoffe jedoch stark, dass dies nur ein falscher Eindruck ist, die IDE und die Übersichtlichkeit von ABAP-Code passt gar nicht in das Bild der um Perfektion bemühten SAP, das man während der vier Tage auch abseits der Veranstaltungen so mitbekam.