#

Unbenutzbares OpenSource

Im Zusammenhang mit meiner Forecasting API habe ich mich mit einigen Open Source APIs auseinander gesetzt und dabei eine sehr traurige Entdeckung gemacht.

Im besonderen wollte ich mir die Arbeit ersparen eine GUI, mit der man Workflows darstellen kann, selbst zu erstellen. Daher hatte ich eine Liste von Opensource Projekten zusammen gestellt, die auf den ersten Blick meinen funktionalen Anforderungen zu genügen schienen. Dazu gehörten u.a. GEF, JGraph, OpenJGraph, JGraphT und GVF. Alles APIs, mit denen man Workflows in Form von Knoten und Kanten, also Graphen, darstellen kann, ähnlich wie in Visio. GEF (nicht das von Eclipse!) war der erste Kandidat, der mich durch eine riesige API anlockte. Doch nachdem ich die Beispiele ausführte und mir deren Quellcode anschaute, wurde mir klar: Die API ist so rigoros und komplex verschachtelt angelegt, dass man da lieber ein Handbuch oder Tutorial hinzuziehen sollte, um diese an die eigene Funktionalität anzupassen. Die Suche ergab jedoch, dass es keine Tutorials gab. In einigen Foren hie� es da, mansolle sich diese und jene Klassen anschauen. Was ich auch machte. Aber viel schlauer bin ich dabei nicht geworden. Letzten Endes, habe ich festgestellt, würde mir das Einarbeiten in den riesigen Code von anderen, die sich Dokumentation und Tutorials erspart haben, mehr Zeit kosten, als ein eigenes einfaches Framework zu erstellen. Bei den anderen APIs war dies nicht besser. Obwohl beispielsweise JGraph exzellente Screenshots und eine ellenlange Liste von Referenzen vorzuweisen hat und es anscheinend auch ein Handbuch gibt, ist dieses nur kommerziell erhältlich.
Gleiches passierte mir bei einer Mathematik Bibliothek, deren Entwickler in einem Forum schrieb, dass er nur Zeit für eines der beiden Dinge, API schreiben oder Kommentare und Tutorial schreiben, Zeit hatte.
Die Open Source Entwickler scheinen völlig zu übersehen, dass eine API ohne Dokumentation UND Tutorials nichts nutzt. Positive Gegenbeispiele bieten Spring oder Hybernate, bei denen man sich von einfachsten Tutorials über zu recht tiefgreifenden Themen Beispiele und Informationen einholen kann.
Mein Vorhaben, möglichst viele Teile der Forecasting API durch Open Source APIs abzudecken, ist gerade dabei, sich in Luft aufzulösen. Naja, war ja sowieso als Langzeitprojekt angelegt.

Tags:, ,

5 Responses to “Unbenutzbares OpenSource” »»

  1. Comment by andrej | 19:45 22.09.05|X

    natürlich hasst du recht. keine doku – geringer erfolg. aber eben nicht immer. cglib hat auch keine und trotzdem mögen die leute diese klassenbibliothek. 😉 die welt kann so gemein sein :))

  2. Comment by andrej | 19:46 22.09.05|X

    was ist eigentlich mit eclipse-gef? warum schaust du dir dass nicht genauer an? max hat damit ein wenig rumprogrammiert. ich habe dabei lediglich ein wenig über die schulter geschaut. und es sah einfach aus.

  3. Comment by Secco | 20:03 22.09.05|X

    Natürlich habe ich nicht genug Zeit alle APIs im Detail zu analysieren. Bei Eclipse-GEF hatte ich den Eindruck, dass es sich um eine API für Eclipse handelt. Man kann damit also Eclipse als den Editor benutzen. Ich wollte jedoch eine stand-alone Anwendung erstellen. Wenn du genaueres weisst, kannst du mir das gerne mitteilen.

  4. Comment by Toni | 0:31 23.09.05|X

    Doku? Ich höre immer Doku!? RTFB – Man! 😉 (RTFB = Read The Fuckin Binary)

  5. Comment by Secco | 9:21 23.09.05|X

    Es soll ja tatsächlich Geeks geben, die über’s Wochenende ihre Linux ISDN-Treiber disassemblieren und manuell nachoptimieren. Leider gehöre ich nicht zu diesen Leuten. Und bei 100 Klassen ohne Doku überlegt man’s sich zwei mal. Tatsächlich habe ich an einem Abend 30% einer einfachen Graph-GUI selber programmiert. Noch ein paar Abende und das Ding sollte fertig sein.
    By the way: Ein Vöglein hat mir da noch zu gezwitschert, wo man im Internet die Manuals evtl. doch noch findet.

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.