OrbTK — das Rust UI-Toolkit der Zukunft
Florian Blasius Sandra Engel

OrbTK — das Rust UI-Toolkit der Zukunft

Florian Blasius Senior UX Software Engineer

Sandra Engel Communication Manager, Lead Management Expert

28.03.2019 • 7 Minuten Lesezeit

Unser UX Software Engineer Florian Blasius begann, sich in seiner Freizeit mit der neuen Programmiersprache Rust auseinanderzusetzen und entwickelte, mit der Unterstützung einiger Ergosign-Kollegen, dafür das UI Framework OrbTK. Wie genau er das tat und wie die Focus Time bei Ergosign ihm dabei half, erfahren Sie in diesem Artikel.

"The Orbital Widget Toolkit is a multi platform (G)UI toolkit for building scalable user interfaces with the programming language Rust. It's based on the Entity Component System Pattern and provides a functional-reactive API. The main goals of OrbTK are „fast performance“, „easy to use“ and „cross platform."

Diese Definition findet sich im Netz, wenn man nach „OrbTK“ sucht. Sie stammt von Florian Blasius, einem unserer UX Software Developer, der sich intensiv mit der Programmiersprache beschäftigte und nach längerer Zeit merkte, dass Rust ein Manko hat: es fehlte ein ausgereiftes natives UI Framework.

Beginnen wir am Anfang: Florian, was ist Rust?

Florian: Rust ist eine junge und moderne Programmiersprache, die sich von anderen Sprachen durch einen gleichermaßen starken Fokus auf Sicherheit, Produktivität und Performance abhebt. Diese Vorteile werden auch von vielen Unternehmen wahrgenommen, welche mittlerweile Rust produktiv einsetzen. Beispiele dafür sind u. a. DropBox, Yelp und Firefox.

Und woher kommt Rust?

Florian: Rust wurde von Mozilla, den Entwicklern hinter dem Webbrowser Firefox initiiert und entwickelt. Die erste Stable-Version wurde im Mai 2015 released. Nach und nach entstand eine große, aktive Community: allein die zentrale Paketverwaltungsplattform crates.io zählt über 820.000.000 Downloads. Die Community unterstützt die Gründer bei der Weiterentwicklung und liefert wertvollen Input.

Was macht Rust für dich besonders interessant?

Florian: Die Tatsache, dass die Rust-Entwickler es geschafft haben, eine Sprache zu erschaffen, in denen die drei Kernziele Sicherheit, Performance und Produktivität so gut umgesetzt wurden. Außerdem hat mich der Einstieg in Rust begeistert, der mir durch eine gute Dokumentation, Beispiele und eine hilfsbereite Community erleichtert wurde. Ein weiterer Pluspunkt ist die gesamte Infrastruktur um Rust, auf die man als Entwickler zurückgreifen kann. Besonders hervorzuheben ist hier die Paketverwaltung Cargo, das Paket-Repository crates.io und die unterstützenden Entwicklertools wie z. B. der Rust Language Server (genannt RLS).

Das klingt vielversprechend… wie kamst du auf Rust?

Florian: Als Senior UX Software Engineer interessiere ich mich generell für neue Entwicklungen und Tools. Ich hatte auch einfach mal wieder Lust darauf, etwas Neues zu lernen und bin dann online auf Rust gestoßen. Ich habe schnell gemerkt, dass hinter Rust eine sehr interessante Programmiersprache steckt, die neue Wege geht und diese gut umsetzt. Dabei habe ich mich auch schnell in der Rust Community wohl gefühlt und das Lernen der Sprache hat mir, mit Ausnahme ein paar schwerer Kopfnüsse, viel Spaß gemacht.
Durch das Konzept der Focus Time bei Ergosign hatte ich außerdem die Gelegenheit, mich auch während meiner Arbeitszeit mit dem Thema zu beschäftigen, was mich zusätzlich motivierte.

Focus Time bei Ergosign: Einmal im Monat haben unsere Mitarbeiter die Möglichkeit, sich innerhalb der Focus Time mit einem Thema ihrer Wahl zu beschäftigen; das können neue Design-Tools, Programmiersprachen, Kreativmethoden oder eigene Projekte sein, die sie umsetzen möchten. Dazu steht ihnen beispielsweise unser IoT-Lab zur Verfügung. Mehr zum Lab und Projekten, die dort bereits umgesetzt wurden, erfahren Sie in diesem Artikel.

Wie passt OrbTK in dieses Bild?

Florian: Als UX Software Engineer bei Ergosign arbeite ich an der technischen Umsetzung von UX Designs. Ein UI Framework ist bei dieser Arbeit essentiell. Da ich auch gerne mit Rust User Interfaces umsetzen wollte, habe ich im Internet nach UI Frameworks recherchiert. Leider habe ich nur Projekte gefunden, die entweder bereits abgebrochen wurden, noch unausgereift waren oder einfach nicht meinen Anforderungen entsprachen. Bei meinen Recherchen stieß ich auch auf das Team hinter dem Redox OS Projekt, welches mit OrbTk an der Entwicklung eines UI Frameworks für Rust arbeitete. Ich begann damit, mich an der Entwicklung von OrbTK zu beteiligen.

Während der Focus Time bei Ergosign beschäftigte ich mich dann mit der Idee einer kompletten Neuentwicklung von OrbTK, um ein modernes, plattformunabhängiges und skalierbares UI Framework zu schaffen. Nach und nach unterstützten mich ein paar Kollegen von Ergosign dabei; mittlerweile arbeiten wir teilweise gemeinsam an OrbTK. Bei der Weiterentwicklung werden wir auch durch die Redox-Community, besonders durch die Bereitstellung ihrer Infrastruktur und wertvolles Feedback unterstützt.

Was ist die aktuelle Version von OrbTK genau?

Florian: OrbTK ist ein modernes, natives Open Source UI Framework für Rust. Einfach gesagt, ist ein UI Framework eine Art „Baukasten“ für Entwickler, den sie bei der Implementierung von Interfaces nutzen können. Vergleichbare Frameworks sind zum Beispiel Flutter, Angular, Qt oder WPF. Die vordefinierten Bausteine können sich Entwickler einfach kopieren und deren Eigenschaften entsprechend den Anforderungen ihres UI anpassen.

Wie ist denn euer aktueller Stand?

Florian: Aktuell arbeiten wir intensiv am Fundament und der API von OrbTK. Im Prinzip sind wird so weit, dass man mit kleineren Bausteinen, wie z. B. Buttons, Texten und Textfeldern kleinere Anwendungen umsetzen kann. So haben wir selbst z. B. bereits einen Taschenrechner mit OrbTK umgesetzt. Allerdings eignet er sich in seiner aktuellen Form noch nicht für den produktiven Einsatz. Das sollte sich aber im Laufe der nächsten Monate ändern.

Und was plant ihr für die Zukunft?

Florian: Die aktuelle Planung und Entwicklung für OrbTK kann man gut anhand des ersten Milestones nachvollziehen, zu finden im Redox Gitlab. Wir planen den nächsten Release für das zweite Quartal 2019. Dieser soll dann u. a. auf Redox OS, Linux, macOS, Windows und im Browser laufen.
Da Ergosign das Potential von Rust und OrbTK erkannt hat, hat unser Projekt zusätzliche „Focus Time“-Zeit erhalten, was mich natürlich sehr freut und und mehr Möglichkeiten zur Weiterentwicklung gibt.

Wo kann ich mich über OrbTK am besten informieren?

Florian: Im GitLab finden sich Infos zum aktuellen Stand und alle Ressourcen. Außerdem gibt es einen Releaseplan und ausführliche Erklärungen zu allen Releases.

Danke Florian!

Weitere Insights

XParking App

XParking App Artikel

IMEDALytics - Healthcare Machine Learning

IMEDALytics - Healthcare Machine Learning Research