Io
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Ausbaufähige Anleitung
Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.
Anmerkung: Das Paketmanager eerie kann noch beschrieben werden.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Io 🇬🇧 ist eine strikt objektorientierte, prototypenbasierte Programmiersprache. Die Sprache hat eine klare Syntax mit minimalistischen Ansätzen, der eigentliche Parser der Sprache ist sehr kompakt und verbraucht wenig Speicher. Weiterhin ist Io dadurch, ähnlich wie Lua, einbettbar. Io ist durch Module erweiterbar.
Io besitzt Sprachkonstrukte, die den Umgang mit Nebenläufigkeit stark erleichtern und es somit recht einfach macht, entsprechende Programm zu schreiben.
Installation¶
einzelnes Paket¶
Io nicht in den Paketquellen enthalten, es wird auf der Projektseite aber ein DEB-Pakete bereit gestellt. Dazu geht man auf die Seite https://iolanguage.org/binaries.html 🇬🇧 und wählt das Paket der mit der passenden Architektur (also z.B. x64deb). Es wird ein Archiv heruntergeladen, das man entpackt[1], dann kann man das darin enthaltene DEB-Paket installieren[2].
Benutzung¶
Io besitzt einen interaktive Kommandozeile, welche durch den Aufruf von
io
gestartet wird.
Natürlich kann man auch Io-Programme mit einem beliebigem Editor erstellen, diese mit der Dateieindung .io abspeichern und dann per
io mein_programm.io
aufrufen.
Das obligatorische „Hallo Welt“ sieht am interaktiven Prompt eingegeben so aus:
Io> "Hallo Welt" println Hallo Welt ==> Hallo Welt
Hier wird auch eines der Grundkonzepte sichtbar: Im Io-Jargon ist println
kein Befehl, sondern eine „Message“ (auf Deutsch: „Nachricht“). Die Message steht rechts und wird an den links stehenden „Receiver“ (auf Deutsch: „Empfänger“) gesendet. In Io sind die allermeisten Befehle Messages.
Wie in der Einleitung bereits erwähnt, ist Io prototypenbasiert und objektorientiert. Alles ist ein Objekt, es gibt keine Klassen. Neue Objekte werden von bestehenden Objekten abgeleitet, wobei noch zu erwähnen ist, dass Objekte in Io per Konvention mit einem Großbuchstaben beginnen müssen. Jedes Objekt kann beliebige Schlüssel-Werte Paare beinhalten, welche in „Slots“ abgelegt werden. Der Wert kann dabei ein Objekt, eine Funktion usw. sein.
Im folgenden Beispiel wird am interaktiven Prompt ein neues Objekt „Ubuntu“ angelegt, der Schlüssel „Typ“ mit dem Wert „Linux Distribution“ hinzugefügt und eine Methode erstellt, welche die Länge des Werts des Schlüssels „Typ“ zurück gibt. Anschließend werden sowohl der Schlüssel als auch die Methode aufgerufen:
Io> Ubuntu := Object clone ==> Ubuntu_0x190d920: type = "Ubuntu" Io> Ubuntu Typ := "Linux Distribution" ==> Linux Distribution Io> Ubuntu Info := method(self Typ size) ==> method( self Typ size ) Io> Ubuntu Typ ==> Linux Distribution Io> Ubuntu Info ==> 18
Alle Slots eines Objekts kann man wie folgt anzeigen lassen:
Io> Ubuntu slotNames ==> list(type, Info, Typ)
Diese werden dann als Liste zurück gegeben.
Links¶
Guide 🇬🇧 - offizielle Einführung in Io
Github Seite vin Io
Wikipediaeintrag zu Io
Wikibook 🇬🇧 zu Io