Suche
Time is Space

Tisp – eine simple, kanonische und praktische Programmiersprache

Dominik Mohilo

© Tisp

Wie würde eine Programmiersprache aussehen, die sich aus Elementen von Haskell, Clojure, OCaml, Python und Go zusammensetzt? Wem diese Frage auf der Seele brennt, der kann sie sich nun beantworten. Mit Tisp (Time is Space) steht seit kurzem eine Programmiersprache unter der MIT-Lizenz zur Verfügung, die exakt dieses Muster abdeckt. Wir haben uns die neue Sprache angesehen.

Man nehme die Simplizität von Go und dessen Coroutinen-Laufzeit, vermische es mit Haskells Time-is-Space-Konzept und der Syntax von Clojure, fertig ist die Programmiersprache Tisp. Nun, ganz so einfach ist es natürlich nicht, aber letztlich vereint Tisp in sich tatsächlich Konzepte aus verschiedenen Sprachen. Was allerdings Voraussetzung für den Einsatz von Tisp ist, ist Go in Version 1.8 oder höher.

Das Konzept von Tisp

Tisp hat sich „einfach, kanonisch, praktisch“ auf die Fahnen geschrieben und ist puristisch-funktional. Die Sprache beinhaltet zudem implizierten Parallelismus und Gleichläufigkeit, was bedeutet, dass in den meisten Fällen keine manuelle Parallelisierung durchgeführt werden muss – das erledigt Tisp selbst. So kommt es auch, dass Programme, die in Tisp geschrieben sind, grundsätzlich gleichläufig ausgeführt werden mit der Option parallel zu laufen.

Tisp steht für „Time is Space“ und der Name ist hierbei Programm: Das Konzept der Sprache basiert auf der Prämisse, dass Zeit Raum ist und sich über einen gewissen Zeitraum nichts ändert, also konstant bleibt. So können Anwendungen geschrieben werden, die Inputs zu Outputs mappen.

Natürlich kann optional auch eine Kausalität in den Code eingebaut werden. Dies funktioniert über sogenannte Primitives, in dem Fall seq. Durch den Einsatz von seq werden Funktionen sequentiell ausgeführt. Programme bestehen in Tisp aus einer Reihe von Patches oder Diffs. Das folgende Programm etwa besteht aus zwei Patches:

(write "Hello, world!")
(write "Hello, John!")

Das Resultat könnte nun eine der folgenden Ausgaben sein:

Variante A:

Hello, world!
Hello, John!

Variante B:

Hello, John!
Hello, world!

Um Sequentialität zu injizieren muss der Code wie folgt aufgebaut werden:

(seq
  (write "Hello, world!")
  (write "Hello, John!"))

Das Konzept „Time is Space“ wird einigen aus Haskell bekannt sein. Auch die Lazy Evaluation ist aus dem Portfolio der funktionalen Programmiersprache entlehnt. Clojure-Entwickler werden die Syntax und das Makro-System wiedererkennen. Auch Clojure-basiert ist die Tatsache, dass alles ein Wert und nichts ein Objekt ist. Googles Programmiersprache Go ist Vorbild für die Simplizität von Tisp und Python liefert das Zen (python -c 'import this') und die Syntax der Function Calls.

Lesen Sie auch: Pirates of the JVM – die Infografik, die Serie, das Spiel!

Die noch junge Programmiersprache befindet sich derzeit in der Entwicklungsphase. Ob sich das Sprachdesign noch einmal ändert und in welcher Form ist derzeit nicht abzusehen. Interessierte Entwickler finden alle derzeit verfügbaren Informationen auf der Doku-Seite von Tisp und natürlich auf GitHub.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare
  1. Crempel Sepp2017-05-24 07:13:12

    Mann ist dieser Artikel unterirdisch schlecht. Entwicklerprofis benötigen schon etwas mehr Informationen. Eine Programmiersprache, die für die Industrie geeignet ist, muß eine Vielzahl von Bedingungen erfüllen. Aber dieser Artikel behandelt bis auf die Darstellung der Nebenläufigkeit gar nichts davon.

  2. Dominik Mohilo2017-05-24 11:51:19

    Hallo Crempel Sepp,

    danke für deine konstruktive Kritik. Allerdings muss ich hier etwas klarstellen: Dieser Artikel hat gar nicht den Anspruch als komplette Einführung und Analyse der Sprache zu dienen, sondern soll lediglich eine kurze Berichterstattung darstellen.

    Wir stehen allerdings mit dem Designer der Sprache in Kontakt und hoffen, dass wir bald einen ausführlicheren und detaillierteren Fachartikel zu Tisp bereitstellen können, der dann auch den Ansprüchen von Entwicklerprofis genügen sollte ;-)

    Liebe Grüße,
    Dominik Mohilo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.