#

Der wahre Unterschied

Mit einer riesigen Java API sollte ich arbeiten. Kein Problem, dachte ich mir, mit Hilfe der Autocomplete Funktion sowie der Methoden Hilfe über F2 von Eclipse und machte mich daran, die Javadocs und weitere Unterlagen durchzuarbeiten.

Doch was musste ich feststellen: Die kommerzielle API war nicht nur sehr sporadisch dokumentiert, zu großen Teilen der API gab es gar keine Javadoc, obwohl mehr als 10 mal soviele Klassen in den JAR Dateien waren als in der Javadoc. Wohl Firmenpolitik, um dem Benutzer nur Schnittstellen zu zeigen und die tatsächlichen Implementierungen im Hintergrund zu halten, dachte ich mir. Und F2? Nun, für diese Funktion benötigt Eclipse den kommentierten Sourcecode der Klassen, der bei kommerziellen APIs natürlich nicht mitgeliefert wird.
Erst an dieser Stelle merkte ich, was der wahre Unterschied zwischen Open Source und kommerziellen APIs war. Sicherlich waren die meisten kommerziellen Produkte ausgereifter oder stabiler und hatten Support, aber für einen Programmierer sind Open Source APIs meist geeigneter, weil diese eben den Sourcecode mitliefern.
Übrigens waren auch Beispiele für die kommerzielle API sehr rar. Also musste ich einige der Klassen Dekompilieren, um mir anzuschauen, wie die API sich intern selbst benutzte. Mit Kommentaren aus dem Sourcecode wäre dies wohl auch einfacher gewesen. Und nebenbei bemerkt: Durch das Dekompilieren der Klassen macht man sich ja nach den meisten EULAs bereits strafbar. Zum Glück arbeitete ich für den Hersteller der API 😉

Tags:, , ,

2 Responses to “Der wahre Unterschied” »»

  1. Comment by andrej | 12:28 03.11.05|X

    verstehe ich nicht! wenn du für den hersteller der api arbeitest, wozu dann dekompilieren? fehlt der source-code? oder musst du dekompilieren, damit du dich als entwickler beweist? 😉
    mal eine andere frage: womit hast du dekompiliert? der dj-decompiler ist ja seit neustem shareware. und das auf asm basierte plugin zur darstellung von asm noch nicht so toll. welches utility benutzt du? bin auf der suche nach einem geeigneten tool.

  2. Comment by Secco | 13:12 03.11.05|X

    Ich habe hier den DJ decompiler auf dem Rechner, den ich dann auch benutzt habe. Aber mehr weil’s schon da war und nicht weil er etwas besonderes könnte. Hab auch mal mit JAD gearbeitet. GroÃe Unterschiede konnte ich da nicht feststellen. Hab mich auch noch nicht auf die Bytecode Ebene rangewagt und bis jetzt nur einfache, nicht obfuskierte Klassen dekompiliert.
    Zur API: Tja so ist das mit grossen Firmen. Da ich als Externer für die Firma arbeite, krieg ich keinen Zugriff auf die Sourcen. Ich soll die API benutzen, nicht umschreiben oder analysieren. Leider ist sie halt unglaublich schlecht kommentiert und dokumentiert. Um vollen Zugriff zu haben müsste ich mich wohl als festangestellter Entwickler in diese Firma begeben. Dann hätten die zumindest bessere Dokumentationen, da ich da sehr viel Wert drauf lege 😉
    Zumindest, wenn es eine API sein soll und nicht einfach eine Anwendung.

Leave a Reply »»

Note: All comments are manually approved to avoid spam. So if your comment doesn't appear immediately, that's ok. Have patience, it can take some days until I have the time to approve my comments.