Login
Newsletter
Werbung

So, 17. Februar 2008, 00:00

Interview mit den Entwicklern von Tine 2.0

Pro-Linux: Ist Tine 2.0 weiterhin in PHP geschrieben? Stand ein Wechsel der Sprache zur Debatte?

Cornelius: Die kritischen Anfragen zu PHP hören wir natürlich oft. Aufgrund der Geschichte und Verbreitung von PHP gibt es in der Tat auch viel Schrott in der Szene. Allerdings kann man das nicht der Programmiersprache anlasten. In meinen Augen ist PHP seit der 5er-Version eine der modernsten Skriptsprachen. Der Einsatz einer weit verbreiteten Skriptsprache hat für den Benutzer große Vorteile, da Anpassungen und individuelle Erweiterungen mit wesentlich geringerem Aufwand verbunden sind.

Lars: Da kommt noch hinzu, dass Metaways halt eine PHP-Firma ist. Wir haben über 20 PHP-Programmierer und viel Erfahrung beim Skalieren von PHP-Anwendungen. Das kommt letztendlich auch den Tine-Benutzern zugute.

Pro-Linux: Kann man eurer Ansicht nach mit PHP die gleiche Geschwindigkeit erreichen wie mit Java? Oder hängt letztlich alles nur von der Datenbank und deren Optimierung ab?

Lars: Performance-Analysen und Skalierbarkeit hängen immer ganz stark vom Benutzungs-Szenario ab. Optimierungen für große Installationen machen kleine oft langsamer. Unserer Erfahrung nach spielt da die verwendete Programmiersprache nur eine sehr untergeordnete Rolle. Dank der großen Verbreitung von PHP gibt es sehr gute Lösungen, um Web-Anwendungen zu skalieren. Ein Beispiel dafür ist Mediawiki. Das kann sich jeder auf seiner kleinen einzelnen Maschine bei jedem Provider installieren. Auf der anderen Seite wird damit aber auch Wikipedia mit Dutzenden von Servern betrieben.

Pro-Linux: Soweit wir feststellen konnten, ist die Benutzeroberfläche von Tine 2.0 komplett in JavaScript realisiert. Für einen Außenseiter ist es schwer vorstellbar, dass man damit eine professionelle Anwendung erreichen kann.

Cornelius: Ein weit verbreiteter Irrglaube ist, dass es sich bei JavaScript um eine Art Esoterik oder Voodoo-Zauber handelt, daher wird sie oft als unprofessionelle oder Eye Candy-Sprache abgetan. Letztendlich ist es eine ganz normale Programmiersprache, gut dokumentiert und größtenteils auch standardisiert. Da sie sich aber konzeptionell stark von den anderen Skriptsprachen unterscheidet, lernt man sie nur schwer nebenbei. Letztendlich passiert nichts anderes, als dass der HTML-Code nicht mehr serverseitig erzeugt wird, sondern clientseitig. Durch den Einsatz eines guten JavaScript-Frameworks kann man große Teile der Browser-Inkompatibilitäten kompensieren. Mit solchen Inkompatibilitäten hat man immer zu tun. Verschiedene Webserver, unterschiedliche PHP-Versionen, unterschiedliche Datenbanken und da auch unterschiedliche Versionen. Das ist bei JavaScript also auch nichts Besonders, nur redet in diesem Fall jeder darüber.

Lars: Der Trend geht ja auch ganz eindeutig in diese Richtung. Alle Browser feilen kräftig an ihren JavaScript-Parsern und auch sonst hält die Sprache Einzug in immer mehr Produkte. Der Benutzer will es so. Die Zeiten von statischen HTML-Seiten-Anwendungen sind für den durchschnittlichen Anwender vorbei.

Pro-Linux: Aber es gibt immer noch gerade große Firmen und auch Behörden, in denen JavaScript in den Browsern deaktiviert ist.

Lars: Für solche Fälle gibt es Lösungen wie Prism. Das sind JavaScript-Runtimes, denen man seine eigene Anwendung hinzufügt. Somit erhält man ein ganz normales Binärprogramm, das man auf die Rechner verteilen kann. Außerdem sind wir ja nicht allein auf den JavaScript-Client festgelegt. Da Client und Server über eine definierte API kommunizieren, ist es auch problemlos möglich, native Clients auf den jeweiligen Plattformen zu schreiben.

Pro-Linux: Welche Datenbanken kann Tine verwenden? Welche MySQL-Engine ist für Tine die beste?

Cornelius: Momentan konzentrieren wir uns auf MySQL. Da wir auf PHP-PDO aufsetzen, ist es nicht unwahrscheinlich, dass auch andere Datenbanken funktionieren. Dank der klaren Backend-Separation ist es aber auch möglich, kleine spezialisierte Backends optimiert auf die eine oder andere Datenbank zu implementieren. Unserer Meinung nach ist es besser, eine Datenbank richtig zu unterstützen, als viele nur halbherzig.

Lars: Als MySQL-Engine verwenden wir ausschließlich InnoDB. Es funktioniert zwar auch mit MyISAM, aber dieses Backend unterstützt keine Transaktionen. Richtige Benutzerdaten müssen daher in Tabellen des InnoDB-Backends. Nur mit diesem Backend können wir Datenintegrität sicherstellen.

Pro-Linux: In den Release-Notes vom 2. Meilenstein ist von Daten-Integritäts-Problemen von eGroupWare zu lesen. Welche Probleme gibt es da in eGW?

Cornelius: Am gravierendsten sind die Probleme bei gleichzeitigem Zugriff auf Datensätze. Da heißt es bei eGroupWare einfach: »Der letzte gewinnt.« Desweiteren gibt es aber auch an einigen Stellen kniffelige Probleme, denen nur schwer auf die Schliche zu kommen ist. Benutzer berichten beispielsweise immer wieder von verlorenen Verknüpfungen. Da sind dann zum Beispiel Notizen zu einem Telefonanruf in der Datenbank, und keiner weiß mehr, mit wem das Telefonat geführt wurde. Diese Fehler kann man kaum finden, da es in diesen Bereichen kein History-Logging gibt.

Lars: Im Zusammenhang mit Synchronisation mobiler Endgeräte treten die Probleme besonders hervor. Das geht von Doubletten über spontane Zeitverschiebung von Terminen bis hin zum Fehlen einzelner Felder in den Datensätzen. In den Release-Notes haben wir das Kategorien-Problem angesprochen. Wird von einem Gerät aus synchronisiert, das nur eine Kategorie pro Eintrag unterstützt, so verliert der Eintrag in eGroupWare seine anderen Kategorien.

Pro-Linux: Ihr habt bereits eine Roadmap für die nächsten Meilensteine. Gibt es auch einen Zeitplan, und sei er noch so grob?

Lars: Ja, bis zum Linuxtag in Berlin wollen wir kurz vor Milestone 4 stehen. Wir planen ein kleines Linuxtag-Release, das für interessierte Benutzer einfach zu installieren ist.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung