Jetzt kann ich es beweisen: Klassen sind Funktionsbausteine!

Getting started ... Alles für einen gelungenen Start.
19 Beiträge • Seite 1 von 2 (current) Nächste
19 Beiträge Seite 1 von 2 (current) Nächste

Jetzt kann ich es beweisen: Klassen sind Funktionsbausteine!

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Hallo zusammen,

wer behauptet, was ich im Betreff geschrieben habe, der wird von OO-Apologeten schnell zurechtgewiesen. Durch einen Zufall habe ich heute aber feststellen können, dass Klassen für ABAP offenbar doch nichts anderes sind als Funktionsbausteine, was meine schon lange geäußerte Meinung, dass Klassen nichts anderes sind als weiterentwickelte Funktionsbausteine, nun auch technisch belegt.

Und zwar habe ich in einem Testprogramm eine (statische) Methode aufgerufen. Diese Methode war von mir selber und hat per RAISE-Befehl eine (in der SE24 ordentlich deklarierte) Exception geworfen. Diese Exception habe ich in meinem Testprogramm nicht behandelt. Daraufhin kam es zu einem Dump.

So weit, so erwartet. Jetzt habe ich mir den Text des Dumps aber mal genauer angeschaut:

Bild

Hier wird unmissverständlich deutlich gemacht, dass die Methode für ihn nichts anderes ist als ein Funktionsbaustein. Der hier gegebene Rat, in der SE37 nach einem Langtext zur Exception zu suchen, ist natürlich fruchtlos. Auch fehlt in obigem Screenshot der "Kurztext zur Ausnahmebedingung", obgleich ich diesen in der SE24 gewissenhaft gepflegt habe!

An dieser Stelle hat die SAP sich verraten, was Klassen und Methoden unter der Haube tatsächlich sind. :evil:

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag (Insgesamt 2):
black_adeptDaniel


gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
*Kopf -> Tisch*


Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
SaskuAc

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
*LangsamesInDieHändeKlatschen*
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Klassen sind doch keine "neue" Art von Programmen. :evil:
Wenn man z.B. in C++ etwas mit Klassen programmiert stehen am Ende auch nur prozedurale Anweisungen in Maschinencode/Asembler.
Es ist "nur" eine andere Art WIE man Programme schreiben kann. Das Ergebnis bei prozeduraler und/oder OO-Programmierung ist in beiden Fällen das Gleiche: Eine Abfolge von Funktionsaufrufen.
Wie du ja schon oft argumentiert hast, kann man das ganze "OO Gedöns" auch klassisch, prozedural lösen.
Meines Erachtens unterstreicht deine "Entdeckung" nur diese Erkenntnis.
Zuletzt geändert von a-dead-trousers am 03.12.2018 17:58, insgesamt 2-mal geändert.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Daniel

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Eines ist sicher: DAP bringt gestandene Männer zum Weinen - vor Verzweiflung.


Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
a-dead-trousers

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Du glaubst auch, dass wir in einer Hohlerde leben, weil sich deine Schuhe nur an der Aussenrändern ablaufen, oder? :D

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von 4byte (Specialist / 124 / 37 / 35 ) »
:D :D :D
Es gibt 10 Menschen die binär verstehen :)

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Sicher ist, dass die SE24 wesentlich liebloser implementiert ist als die SE37. Nicht nur, dass der Dump nicht den Text aus der SE24 bringt, nicht nur, dass die SE24 die Klassen- und Methodendokumentationen hinter schlecht handhabbaren Menüpunkten verbirgt, anstatt wie die SE37 plakative Schaltflächen dafür anzubieten: wenn man in der SE24 auf Springen -> Übersetzung geht, bekommt man stets eine "leere Objektliste". Den Menüpunkt haben sie eingebaut; ihn aber ordentlich mit Leben zu befüllen waren sie zu faul. Man muss also extra über die SE63 gehen und da wieder nacheinander die Kurztexte und die Langtexte für die Klasse aufrufen, anstatt über Springen -> Übersetzung alles an einem Ort zu haben.

Finde ich schon ziemlich schwach, vor allem wenn man sich überlegt, wie lange es die SE24 schon gibt und wieviel Zeit sie demnach gehabt haben, dieses als neu propagierte Tool ordentlich zu gestalten.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Daniel


Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Deine Probleme möchte ich haben. Um die Doku zu schreiben, drücke ich F9 und fertig. Übersetzungen interessieren mich nicht, die meisten Übersetzungen werden in meinen Projekten von Übersetzern geschrieben, nicht von Entwicklern ;)


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Um die Doku zu schreiben, drücke ich F9 und fertig.
Mit anderen Worten, Deine Klassen selbst dokumentierst Du nicht (denn mit F9 erreichst Du nur die Dokus der Methoden und sonstigen Unterkomponenten).
Übersetzungen interessieren mich nicht, die meisten Übersetzungen werden in meinen Projekten von Übersetzern geschrieben, nicht von Entwicklern ;)
Das mag bei Dir so sein, aber es arbeitet ja nicht jeder in Deinem Umfeld. Ich habe hier das Problem, dass ich mehrere Leute - darunter Entwickler - in meinem Team habe, die nicht deutschsprachig sind. Die sollen auch die Chance haben, meinen Code zu verstehen, aber dennoch habe ich keine Lust, alles nur auf englisch zu dokumentieren. Daher mache ich mir schon die Mühe, meine Texte selber zu übersetzen.

Was passiert, wenn ein "Übersetzer" Software-Texte übersetzen soll, kannst Du bei vielen Computerspielen sehen. Die deutschen Übersetzungen der allermeisten Spiele sind horrend schlecht, weil nämlich der Übersetzer das Spiel nicht kennt und daher inhaltlich nicht verstanden hat, was er da übersetzt. Das ist ganz was anderes, als wenn man ein Buch übersetzt, das ein in sich geschlossenes Werk darstellt, das der Übersetzer beim Lesen genauso versteht wie jeder andere Leser.

Und hier reden wir ja nicht nur von Spielen, sondern von fachspezifischen Themen, kombiniert mit meinen in Software gegossenen Ideen, wie ich die Probleme zu lösen gedenke. Das soll ein "Übersetzer", der sich damit nicht auskennt, inhaltlich stimmig übersetzen können? Kannste knicken.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
Daniel


Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von SaskuAc (Specialist / 321 / 37 / 43 ) »
DeathAndPain hat geschrieben:
Um die Doku zu schreiben, drücke ich F9 und fertig.
Mit anderen Worten, Deine Klassen selbst dokumentierst Du nicht (denn mit F9 erreichst Du nur die Dokus der Methoden und sonstigen Unterkomponenten).
Übersetzungen interessieren mich nicht, die meisten Übersetzungen werden in meinen Projekten von Übersetzern geschrieben, nicht von Entwicklern ;)
Das mag bei Dir so sein, aber es arbeitet ja nicht jeder in Deinem Umfeld. Ich habe hier das Problem, dass ich mehrere Leute - darunter Entwickler - in meinem Team habe, die nicht deutschsprachig sind. Die sollen auch die Chance haben, meinen Code zu verstehen, aber dennoch habe ich keine Lust, alles nur auf englisch zu dokumentieren. Daher mache ich mir schon die Mühe, meine Texte selber zu übersetzen.
Das ist aber dann dein Problem. Wenn du dir angewöhnst alles auf englisch zu schreiben macht es keinen Unterschied mehr, irgendwann willst du auch gar nicht mehr auf deutsch dokumentieren.. ^^
Persönlich mache ich das nämlich ähnlich wie Ralf. Nur dass wir keine Übersetzung brauchen, weil grundsätzlich alles auf englisch ist.


DeathAndPain hat geschrieben:Sicher ist, dass die SE24 wesentlich liebloser implementiert ist als die SE37. Nicht nur, dass der Dump nicht den Text aus der SE24 bringt, nicht nur, dass die SE24 die Klassen- und Methodendokumentationen hinter schlecht handhabbaren Menüpunkten verbirgt, anstatt wie die SE37 plakative Schaltflächen dafür anzubieten: wenn man in der SE24 auf Springen -> Übersetzung geht, bekommt man stets eine "leere Objektliste". Den Menüpunkt haben sie eingebaut; ihn aber ordentlich mit Leben zu befüllen waren sie zu faul. Man muss also extra über die SE63 gehen und da wieder nacheinander die Kurztexte und die Langtexte für die Klasse aufrufen, anstatt über Springen -> Übersetzung alles an einem Ort zu haben.

Finde ich schon ziemlich schwach, vor allem wenn man sich überlegt, wie lange es die SE24 schon gibt und wieviel Zeit sie demnach gehabt haben, dieses als neu propagierte Tool ordentlich zu gestalten.
Dass die SAP im R/3 Umfeld bei der kompletten implementierung von OO und deren Tools gepennt hat und danach lieblos und halbherzig "alles" umgesetzt hat, ist ja kein Geheimnis. Aber deswegen OO zu verteufeln und es zu verweigern ( soweit möglich ) ist keine Lösung.
DeathAndPain hat geschrieben: Was passiert, wenn ein "Übersetzer" Software-Texte übersetzen soll, kannst Du bei vielen Computerspielen sehen. Die deutschen Übersetzungen der allermeisten Spiele sind horrend schlecht, weil nämlich der Übersetzer das Spiel nicht kennt und daher inhaltlich nicht verstanden hat, was er da übersetzt. Das ist ganz was anderes, als wenn man ein Buch übersetzt, das ein in sich geschlossenes Werk darstellt, das der Übersetzer beim Lesen genauso versteht wie jeder andere Leser.

Und hier reden wir ja nicht nur von Spielen, sondern von fachspezifischen Themen, kombiniert mit meinen in Software gegossenen Ideen, wie ich die Probleme zu lösen gedenke. Das soll ein "Übersetzer", der sich damit nicht auskennt, inhaltlich stimmig übersetzen können? Kannste knicken.
sehe ich anders. Dass bei Spielen die Übersetzungen schelcht sind liegt vorallem daran, dass man diese nie beachtet und die dann keine Zeit haben eine ordentliche Übersetzung zu machen. Es ist schlichtweg die Zeit die so gut wie immer fehlt. Bei Büchern und bei anderer Software ist das anders, bzw. sollte es anders sein. In der Regel hat ein Autor einen Übersetzer ( für die jeweilige Sprache ) welcher dann immer weiß wie der jeweilige Autor das gemeint hat. Außerdem wird hier von Haus aus mehr Zeit eingeplant. ( Ein Übersetzer eines Buches hat im Schnitt sehr viel mehr Zeit als einer der ein Spiel übersetzt )
Und bei Software ist das in der Regel, bzw. sollte es die Regel sein, so, dass man Übersetzer-Firmen beauftragt, welche sich mit dem jeweiligen Thema auskennt. Bzw. dass man auch wieder einen Übersetzer anstellt, welcher für den Bereich zuständig ist und einen der für einen anderen Bereich zuständig ist.

Folgende Benutzer bedankten sich beim Autor SaskuAc für den Beitrag:
ralf.wenzel


Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
DeathAndPain hat geschrieben:
Um die Doku zu schreiben, drücke ich F9 und fertig.
Mit anderen Worten, Deine Klassen selbst dokumentierst Du nicht (denn mit F9 erreichst Du nur die Dokus der Methoden und sonstigen Unterkomponenten).
Nein, aber da gibt es wieder einen Button, auf die stehst du doch so. Hat dir mal wer gesagt, dass du anstrengend bist? Ich meine, so richtig anstrengend. Natürlich dokumentiere ich auch die Klassen selbst.


Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
a-dead-trousers

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
DeathAndPain hat geschrieben:Mit anderen Worten, Deine Klassen selbst dokumentierst Du nicht (denn mit F9 erreichst Du nur die Dokus der Methoden und sonstigen Unterkomponenten).
Unbenannt.png
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Danke für den Hinweis auf den Button.
Dass die SAP im R/3 Umfeld bei der kompletten implementierung von OO und deren Tools gepennt hat und danach lieblos und halbherzig "alles" umgesetzt hat, ist ja kein Geheimnis.
Wenn sie unter Zeitdruck gestanden hätten, könnte ich das ja nachvollziehen. Was ich nicht verstehe, ist, weshalb das jetzt, viele Jahre später, immer noch so ist. Wir reden hier ja nicht über Sachen, die zu implementieren einen großen Aufwand machen würde. Ich meine, z.B. den Menüpunkt Springen -> Übersetzung zum Laufen zu bekommen, how hard can it be?!? Eigentlich ist das ein knallharter Bug. (Und nun sagt mir nicht, dass ich eine Meldung aufmachen soll. Dieser Bug ist so offensichtlich, dass ich behaupte, die SAP kennt ihn längst und steht auf dem Standpunkt "won't fix".)
Dass bei Spielen die Übersetzungen schlecht sind liegt vorallem daran, dass man diese nie beachtet und die dann keine Zeit haben eine ordentliche Übersetzung zu machen.
Zeitdruck haste überall und bei allen Projekten, aber das führt nicht dazu, dass alle Projekte nichts taugen. Die großen Spielefirmen sind ja keine Amateure, die das zum ersten Mal machen und nicht wissen, dass sie das Spiel, in dessen Entwicklung sie viele tausend Mannstunden investiert haben, anschließend weltweit verkaufen wollen. Man merkt den Übersetzungen teilweise sogar an, welcher englische Ursprungstext ihm offenbar zugrundegelegen haben wird und welchen Interpretationsfehler der Übersetzer gemacht hat angesichts der Tatsache, dass er den Spielkontext nicht kannte. Es ist eben ein Unterschied, ob ich ein Buch lese und damit kenne oder ob ich - und das ist in Spielen gängige Praxis - eine Tabelle von Sätzen und Phrasen bekomme, die ich dann von oben nach unten übersetzen soll ohne zu wissen, in welchem inhaltlichen Zusammenhang sie stehen. An dieser Stelle wäre es hilfreich - um nicht zu sagen notwendig - dass der Übersetzer das Spiel im englischen Original gespielt hat, und zwar so eingehend wie möglich. Dann würde es ihm bei den allermeisten Formulierungen möglich sein zu beurteilen, wie sie gemeint sind und wie daher eine inhaltlich passende Übersetzung auszusehen hat.

Stattdessen habe ich den Eindruck, dass man sich an Anbieter wie http://www.lengoo.de wendet, und die machen das dann für einen. (Schau Dir die Homepage von Lengoo an: die führen explizit aus, dass sie auch Spieleübersetzungen machen!)
Und bei Software ist das in der Regel, bzw. sollte es die Regel sein, so, dass man Übersetzer-Firmen beauftragt, welche sich mit dem jeweiligen Thema auskennt.
Bei Office-Software dürfte das weitgehend gangbar sein. Wer LibreOffice kennt, wird auch ein Microsoft Office übersetzt bekommen, da die Begrifflichkeiten ähnlich und der Kontext klar ist. Bei Spielen ist das deutlich anders, da diese eine eigene, nur zu dem jeweiligen Spiel passende Welt mit ihren eigenen Regeln, Begrifflichkeiten und Zusammenhängen aufspannen. Wer Elite:Dangerous spielt, wird noch lange nicht Baldur's Gate übersetzen können. Das fängt schon mit der AD&D-Terminologie an, die man nur richtig wiedergeben kann, wenn man sich damit auskennt.

Re: Jetzt kann ich es beweisen: Klassen sind Funktionsbauste

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
DeathAndPain hat geschrieben:Wenn sie unter Zeitdruck gestanden hätten, könnte ich das ja nachvollziehen. Was ich nicht verstehe, ist, weshalb das jetzt, viele Jahre später, immer noch so ist.
Weil wenn das Thema vom Tisch ist, sich kein Mensch mehr darum kümmert. "Mache ich, wenn ich Zeit dafür habe" ist zumeist gleichbedeutend mit "das bleibt jetzt so bis in alle Ewigkeit".

Als ich in meine aktuelle Wohnung eingezogen bin, war das ERSTE, was ich gemacht habe, ein Regal in den Keller einzubauen (richtig verankert in der Wand und so, und auch ein richtig stabiles Teil). Meine Frau meinte, das wäre das Unwichtigste überhaupt. Heute ist sie mir dankbar, dass wir das haben, weil wenn du einmal eingezogen bist und sich Sachen im Keller sammeln, machst du das nie!
DeathAndPain hat geschrieben:Zeitdruck haste überall und bei allen Projekten
Du hast keine Ahnung, wie es in der Spieleindustrie aussieht, ne? Unter dem Druck, unter dem dort gearbeitet wird, möchte ich nie arbeiten. Und ja: Ich HATTE schon Druck in Projekten, bis hin zum Ausbruch von Schuppenflechten.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

3
Antw.
4831
Views
20
Antw.
973
Views
Globale Klassen oder Lokale Klassen
von ZF_SAPler » 29.11.2022 13:47 • Verfasst in ABAP® für Anfänger
8
Antw.
8179
Views
Architektur von Abap-Klassen (Klassen Attribute)
von snooze » 12.04.2005 12:56 • Verfasst in ABAP Objects®
9
Antw.
4619
Views
Lokale Klassen in globalen Klassen
von ralf.wenzel » 20.04.2020 22:55 • Verfasst in ABAP Objects®
0
Antw.
545
Views
Funktionsbausteine für HR
von gmsdd » 29.03.2007 15:32 • Verfasst in ABAP® Core

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.