Curl - der Nachfolger von HTML?

16.01.2001 von Klaus Manhart
Der 'Erfinder' des World Wide Web, Tim Berners-Lee, will das Internet noch einmal verändern. Die neue Websprache Curl soll alle existierenden Webtechnologien vereinen.

HTML - die Sprache, mit der Websites erstellt werden und die das Internet und die Wirtschaft weltweit revolutioniert hat - soll bald ausgedient haben. Geht es nach dem Willen seines Erfinders, dem ehemaligen Cern-Physiker Tim Berners-Lee, dann sind die Tage von HTML gezählt. Curl heißt die neue Entwicklung, die HTML ablösen und zur Websprache der ersten Wahl werden soll. In den USA widmet sich ein eigenes Startup-Unternehmen diesem neuen Projekt. Die Curl-Gründer haben sich das ehrgeizige Ziel gesetzt, einen völlig neuen Ansatz zu erarbeiten, in dem Internetinhalte wesentlich einfacher und kohärenter entwickelt und präsentiert werden können.

Die Idee von Curl ist eigentlich schon alt. Bereits 1995 begannen Professoren vom Bostoner Massachusetts Institute of Technology (MIT) neue Technologien für das WWW zu erforschen. Über 10 Millionen Mark Zuschuss erhielten sie dafür von der US-Regierung. Die Wissenschaftler kamen zu dem Ergebnis, dass bei der aktuellen Webtechnologie eine unglückliche Trennung zwischen Programmen und Dokumenten existiert - und zwar weil kein Werkzeug mit ausreichender Generalität vorhanden ist.

Venture-Kapital zum Start

Aufgrund dieser Erkenntnis gründeten vor zwei Jahren Mitglieder der MIT-Gruppe das Unternehmen Curl, mit Tim Berners-Lee und Michael Dertouzos, Chef des Instituts für Computerwissenschaft am MIT, als Beratern. Die Industrie setzt großes Vertrauen in das Projekt und das Unternehmen: So bekam die Curl-Mannschaft von den verschiedenen Venture Capitalists gleich die vierfache Summe des geplanten Startkapitals.

Und das, obwohl der Erfolg des Unternehmens noch in den Sternen steht. Denn Curl soll eine Art "eierlegende Wollmilchsau" werden, die für Website-Ersteller jeder Fertigkeitsstufe gedacht ist - von Autoren, die noch nie mit dem Web gearbeitet haben, bis hin zu erfahrenen Programmierern. Integration ist das große Ziel, das sich die Entwicklermannschaft auf die Fahne geschrieben hat: "Der Schlüssel zur Arbeit an Curl ist, dass wir alle existierenden Webtechnologien integrieren und eine einzige, neue Sprache kreieren wollen," sagte Curl-CEO Robert Young in einem Interview.

Nach Auffassung der ehemaligen MIT-Wissenschaftler ist für das Erstellen von Webdokumenten eine neue Sprache dringend erforderlich. Denn die Hypertext Markup Language (HTML) basiert eigentlich auf ganz anderen Grundlagen und ist erst im Nachhinein auf das World Wide Web zugeschnitten worden. Ursprünglich war HTML ausschließlich zur Formatierung und Darstellung miteinander verknüpfter Hypertext-Dokumente (Links) gedacht. Doch im Laufe der Zeit entwickelte es eine weit umfassendere Rolle: Es wird mehr und mehr zum Standard für Nutzeroberflächen, bei denen Techniken aufgesetzt werden, die mit dem ursprünglichen HTML nichts mehr zu tun haben.

Curl - die große Vereinigung

Die rasante Entwicklung im Web übersteigt die Fähigkeiten der einfachen Hypertext-Markup-Sprache HTML, auf der die meisten Webinhalte basieren. Um neue Interaktionselemente zu implementieren, müssen die simplen Formatierfunktionen von HTML um Tools und Programmiersprachen wie JavaScript, Java oder C++ ergänzt werden. Curl-CEO Robert Young: "Wenn man jetzt im Internet eine Funktion aufruft, muss man erst einmal ein paar andere durchlaufen. Außerdem passen die verschiedenen Funktionen nicht immer zusammen".

Curl wird so designed, dass es alle Eigenschaften von Markup-Languages wie HTML enthält. Dazu soll Curl Script-Sprachen und objektorientierte Programmiersprachen beinhalten, für die heute diverse externe Tools nötig sind. Curl soll damit also all das integrieren, wozu heute noch verschiedene Werkzeuge nötig sind. Der Curl-Nutzer soll verbesserte Multimedia- und 3D-Darstellungen mit weniger Softwarekonflikten erstellen können. Außerdem versprechen sich die Curl-Mitarbeiter durch die optimierte Technologie eine ganze Menge besserer Webinhalte.

Die Sprünge und Unstimmigkeiten, wie sie heute bei der Entwicklung von Websites auf Basis von HTML JavaScript, Java, Perl und anderen Werkzeugen alltäglich sind, soll dank einer einfachen und einheitlichen Sprachsyntax der Vergangenheit angehören. Die Entwickler hoffen, dass eine einzige, einheitliche Umgebung, wie sie Curl zur Verfügung stellen wird, eine attraktive Alternative für Webentwickler sein wird. Auf der Website von Curl demonstrieren verschiedene Anwendungen, was mit Curl machbar ist.

Die Grundzüge von Curl

Konzept und Elemente von Curl stehen in den Grundzügen fest. Curl sowohl eine Sprache als auch eine Entwicklungsumgebung sein. Sie soll als HTML-Ersatz für die Präsentation von formatiertem Text benutzt werden, hat aber zusätzlich die Fähigkeiten von Script-Sprachen und objektorientierten Programmiersprachen. Die Bandbreite der Fähigkeiten von Curl reicht von einfachem, formatiertem Text bis zu komplexen interaktiven Applets:

Stuktur duch Operatoren und Klammern

Curl-Code ist gewöhnlicher Text, der durch Ausdrücke in geschweiften Klammern eingeschlossen ist. Die geschweiften Klammern "{ }" (curly brackets) sind auch das typische Sprachelement, von dem Curl seinen Namen hat. Wie in HTML wird gewöhnlicher Text verwendet, anders als in HTML entsprechen die Erweiterungen aber einer echten Programmiersprache.

Curl arbeitet mit einer Reihe von Operatoren. Die Bedeutung der Operatoren wird durch eine Definition und den dazugehörigen Text festgelegt. Der Text kann dabei jede gewünschte Struktur haben. In dem Beispiel unten ist bold der Operator, der seine Argumente als eine Folge von Grafikobjekten behandelt - im Beispiel sind es einfache Zeichen, die mit der Bold-Eigenschaft angezeigt werden. So wird der Curl-Code "Die folgenden Zeichen werden {bold fett dargestellt}" dem Anwender als "Die folgenden Zeichen werden fett dargestellt" präsentiert.

Curl-Dokumente können in kleinen Schritten wachsen. Ausgehend von einem einfachen Textfile lassen sich nach und nach durch den Einbau weiterer Elemente komplexere Dokumente aufbauen. Curl will für diesen Zweck eine breite Palette von Operatoren anbieten. Da nicht sämtliche Bedürfnisse vorherzusehen sind, ist eine einfache Möglichkeit geplant, neue Operatoren zu definieren.

Beispiel: Interaktive Objekte

Curl verfügt über ein großes und wachsendes Repertoire von vordefinierten Operatoren. Das folgende Beispiel zeigt, dass die einfache Anwendung solcher Operatoren ausreicht, um interaktive Objekte zu erstellen. Das kleine Programm fügt einige der Komponenten zu einem simplen Bestellformular zusammen.

{let color:Dynamic='red
count=0 |
"quantity" can't depend on itself
quantity:Dynamic=count

{vbox
{title Beach Balls}
{hbox "Color:"
{radiobuttons foo 'red 'white 'blue
action={color.set-value foo}}}

{hbox "Quantity:"
{button "Take another"
action={quantity.set-value
{set count {+ count 1}}}}

{button "Give one back"
action={when {> count 0}
{quantity.set-value
{set count {- count 1}}}}}

{paragraph You've ordered {value quantity}
{value color} beach balls!}}}

Das daraus resultierende Formular sieht folgendermaßen aus:

Definition neuer Operatoren

Das folgende Beispiel - ein einfaches Drag-and-Drop-Fenster - demonstriert, wie ein fortgeschrittener Programmierer weitere Funktionen zur Verfügung stellen kann. Die Beispielseite, von einem Neuling gestaltet, setzt ein Portfolio-Objekt von einer anderen Webseite ein, um den Wert eines Aktiendepots zu berechnen.

Curl-Code: Berechnung eines Depotwertes

{require portfolio "http://www.portfolios-galore.com/portfolio.curl"}

This is a simple demo of {bold Curl}, developed by the {anchor url="http://cag-www.lcs.mit.edu" MIT Laboratory for Computer Science}. It shows the graceful integration of programming with hypertext Web content. {anchor url="Documentation/overview.curl" Click here} for
documentation.

Our example concerns stocks, for example:
{portfolio.stock "NWIR" shares=500 cost=16.125}
{portfolio.stock "AAPL" shares=500 cost=23.5}
{portfolio.stock "HWP" shares=500 cost=48.25}

A small listing of popular stocks can be found {anchor url="topstocks.curl" here}.

Securities can be maintained in a {bold portfolio} using a drag-and-drop user interface.

{let p={new portfolio.PortfolioBox
{portfolio.stock "NSCP" units=100 cost=60.5}
{portfolio.stock "MSFT" units=100 cost=101}}

{vbox p.graphic
{paragraph The total value of my portfolio is ${value p.value}. As of this moment, I've made a net profit of ${- p.value p.cost}.}}}

Das folgende Bild zeigt den Screenshot des Dokuments, wenn des Programm via Curl-Browser betrachtet wird.

Ausblick

Um Curl-Content laufen zu lassen, brauchen Endanwender Curl Surge, ein Browser-Plug-in. Entwicklern steht das Curl Surge Lab zur Verfügung, eine integrierte Umgebung, in der Curl-Anwendungen programmiert werden können. Auf diese kann nach vorheriger Registrierung im Developers Net zugegriffen werden. Im Curl Developer Net stehen für Entwickler darüber hinaus Tools, Tutorials, Support und Diskussionsforen zur Verfügung. Beide Produkte - Curl Surge und Curl Surge Lab - sind noch im Betastadium, das Release Candidate 1 für beide Anwendungen steht seit Dezember 2000 zur Verfügung. Die Endversionen werden noch im 1. Quartal 2001 erwartet.

Ob das Konzept von Curl aufgeht, steht noch in den Sternen. Jedenfalls beobachtet die Programmiererszene in den USA gespannt, wie sich Curl entwickeln wird. Im Frühjahr 2001 findet die erste ernsthafte Prüfung für Curl statt, was Akzeptanz und Anwendungen betrifft: Vom 13. bis 15. Mai 2001 findet in Boston die CurlWorld statt, auf der Curl-Entwicklungen vorgestellt werden. Dann wird sich herausstellen, wie Curl von den Entwicklern angenommen wird und wie Curl im Vergleich zu anderen Sprachen dasteht. (ala)