27. November 2007

Ruby WebDev Framework Overload

Wie viele Ruby-Webentwicklungs-Frameworks braucht man um eine Glühbirne auszutauschen? Aktuell sprießen sie wie Pilze aus dem Boden, hier mal ein aktueller Auszug:

  • Camping – der Klassiker, nicht neu, dafür umso interessanter: why the lucky stiff‘s Minimicroframework… für jeden Ruby-Enthusiasten der Metaprogrammierungsgral
  • Cerise – Vorbild für die Architektur war der J2EE Application Server
  • Merb – Mit Rails als Vorbild, allerdings mit bewusster Unabhängigkeit vom ORM-Layer (bspw. DataMapper als ActiveRecord Alternative), ohne integrierte JavaScript Library und auch keine Template Engine – man will da leichtgewichtig sein, wo sich des Entwicklers Geschmäcker unterscheiden
  • Nitro – bringt einige Libraries mit sich, zum Beispiel jQuery und Og als ORM. Außer der Dokumentation gibt es nicht viel zu erkunden.
  • Ramaze – auf der Projektsite lässt sich nichts dazu finden, was dieses Framework besonderes zu bieten hat, nur der Hinweis, dass es ähnlich sein soll, wie Rails, Merb und Nitro – Wahnsinn!
  • Sinatra – aktuell noch relativ bescheidene Doku, wenn man sich nicht durch den Source Code wühlen will.
  • Wisteria- auch hier gibt es kaum Informationen, nur dass der Fokus auf Anwendungen mit RESTful API und Datei-Upload liegt.
  • Wuby – alles inklusive (Webserver, Support für verschiedene Datenbanksysteme, Template-Engine) und bewusst unabhängig von jeglicher Vendor-Software… keine anderen Libraries, keine Gems. FürInteressierte gibt es auch einen 30-minütigen Screencast dazu.

Wer braucht die alle und sind das Rails Alternativen? Ich habe mir die meisten nur flüchtig angeschaut, am ehestenRichtung Rails-Alternative scheint dabei noch Merb zu gehen. Der Rest fokussiert eher einzelne Features und will möglichst leichtgewichtig sein, aber wozu sollte es auch aktuell eine Rails-Alternative brauchen? Selbst Rails findet erst langsam seinen Weg, wird mit Version 2.0 in festere Formen gegossen und hat den Hype (wenn man es so nennen will) ganz klar auf seiner Seite… die Entwicklungen in Rails geben derzeit den Ton für viele andere Frameworks an und inspirieren diese.

Die weiteren Frameworks hier sind wohl eher aus der Motivation entstanden, eine leichtgewichtige Möglichkeit zur Umsetzung kleinerer Projekte zu sein – vielleicht hört man ja in nächster Zeit mehr zu einem davon. Bisher war mir nur das kürzlich veröffentlichte Sinatra durch einige Blogartikel ein Begriff.

Wer sich für Ruby generell interessiert, dem sei ein Blick in Camping empfohlen, das macht wirklich Spaß und ist wie alle Projekte von why eine schöne Fundgrube für Ruby Fu!

Technorati Tags: ,

2. November 2007

OpenSocial – Das Netz der Netze

OpenSocialDa ist sie also – Googles Antwort auf Microsofts Deal mit Facebook, welcher letzte Woche erst für mächtig Furore gesorgt hatte. Getreu dem Motto „Wer zuletzt lacht…“ setzte Google gestern einen drauf und lässt nun plötzlich Microsoft (und Facebook) dumm da stehen. Google – bisher nicht grade für Openness bekannt – klebt sich damit genau diesen Badge an die Jacke, gibt den uneigennützigen Webverbesserer und hat schon gleich zum Start dicke Partner und die uneingeschränkte Aufmerksamkeit auf seiner Seite – great move!

Was ist OpenSocial?

Für die, die der Buzz noch nicht erreicht hat eine kurze Bestandsaufnahme: OpenSocial ist kein neues Social Network (das hat Google nämlich schon), sondern ein neuer API-Standard, um Interaktion zwischen sozialen Netzwerken abzubilden. Angesichts der Kraft, mit welcher Google so etwas vorantreiben kann und der Partner, welche jetzt schon an Bord sind (darunter MySpace, Ning und sogar direkte Konkurrenten wie LinkedIn und XING) dürfte es sich dabei schon jetzt um den de facto Standard handeln.

Mit Veröffentlichung der Facebook-API haben alle gemerkt wie super es doch ist, wenn man Anwendungen schreiben und dabei auf einen Pool von schon angemeldeten Benutzern zurückgreifen kann, welche die Anwendung dann auch noch meistens allen Freunden empfehlen. Das eignet sich nicht nur, um bereits bestehenden Plattformen in Facebook verfügbar zu machen und somit viral für sich zu werben, sondern auch um kleine Anwendungen extra zu Werbezwecken für die sozialen Plattformen zu schreiben. Auf Entwicklerseite hat man dabei jedoch ein großes Problem, wenn die verschiedenen Social Networks alle ihre eigene, proprietäre API zur Verfügung stellen: Es kostet Zeit und somit Geld, Anwendungen für verschiedene Netzwerke zu stricken, da man letztendlich zwar überall das gleiche machen will, es aber auf verschiedene Schnittstellen hin programmieren muss.

Genau das will OpenSocial ändern, in dem es die Schnittstelle des Datenaustausches spezifiziert und standardisiert – ein Kommunikationslayer für Social Software, bei dem jeder profitiert, der ihn unterstützt: Entwickler, weil sie mit einer Anwendung alle Plattformen bedienen können und die Netzwerke, weil sie ihren Nutzern Mehrwert bieten können, den sie selbst nicht programmieren müssen. Und natürlich das Web, weil das ja besser ist, wenn es sozial ist ;)

Wer das in noch ausführlicher haben möchte, der kann sich das Video vom Campfire One angucken, welches eine Präsentation von OpenSocial und einigen Beispielimplementierungen der Partner zeigt. Ist zwar eine ziemliche Werbetour, aber es verdeutlicht auch ganz gut, was damit möglich ist – die Partnerpräsentationen kann man getrost skippen.

Let’s dive right in…

Wie sieht diese Schnittstelle denn nun aus und was kann man alles mit ihr machen? Vorweg: Aktuell gibt es zwar schon eine Referenz zur API, welche jedoch nur eine Vorschau darstellt – die API selbst ist aktuell (außer für die Partner) noch nicht verfügbar.

Basieren tut das alles auf good old HTML und JavaScript, so dass man eigentlich nichts neues lernen muss, außer wie man jetzt genau mit OpenSocial interagiert, was vorzugsweise über AJAX und REST stattfindet. Auf Anwendungsseite braucht man Daten über die Leute und ihre Beziehungen und Interaktionen, genau das gibt OpenSocial uns:

Die Daten der Personen und ihrer Aktivitäten sind jeweils im AtomPub Format mit Googles angepasstem Datenschema verfügbar, worüber auch das Senden von Daten an die API läuft. Im Grunde genommen nichts neues, denn das wurde einfach von Google Gadgets übernommen.

Mehr kann ich leider auch noch gar nicht dazu sagen, da es wie gesagt noch nicht öffentlich verfügbar ist, was sich aber die Tage ändern dürfte. Zunächst soll es auf Orkut eine Sandbox geben, in der sich Entwickler mit OpenSocial vertraut machen und sich mit den Daten der Orkut-Benutzer austoben können. Wie es der Zufall will, mache ich hier an der FH grade ein Projekt bezüglich Google Gadgets, so dass ich mich da sowieso mit beschäftigen muss und somit auch mal das ein oder andere dazu von mir hören lassen werde :)

Warum macht Google das?

Um das alles nicht einfach nur unreflektiert und toll da stehen zu lassen, ein paar Worte dazu, warum Google diesen Schritt macht: Klar ist Openness eine tolle Sache, jedoch war Google wie gesagt vorher nicht unbedingt bekannt dafür. Diesen Schritt zu gehen war ein perfekter Schachzug zum perfekten Zeitpunkt: Google stellt sich mit starken Partnern und dem Sympathiebonus der Offenheit gegen Microsoft, die erst kürzlich wieder eine Wahnsinnssumme in proprietäre Technik investiert haben. Dabei ging es aber wohl weniger um Facebook an sich, sondern um das Geld, welches sich durch die Werbung darauf verdienen lassen könnte. Social Networks sind toll und attraktiv, weil sie meistens themenspezifisch sind, eine gut definierbare Zielgruppe und somit die perfekte Werbeplattform darstellen.

Google kann nicht zusehen, wie Microsoft über Facebook wieder einen Fuß in die Tür des Onlinewerbemarkts bekommt und musste sich überlegen, wie man sich selbst am besten bewegt. OpenSocial wird eine ziemlich gute Sache, ich denke aber, dass Openness eher das vorgeschobene Verkaufsargument sein dürfte. Die Pläne wie Entwickler grade in Verbindung mit AdSense ihre Anwendungsentwicklung refinanzieren können, liegen mit Sicherheit schon in der Schublade.