Sie sind hier: HomeTelekommunikation

Internet der Dinge: Die Sprache der vernetzten Dinge

Fortsetzung des Artikels von Teil 1.

Die Wahl der Sprache

Programmiersprachen IoT Bildquelle: © IoT Developer Survey 2018, Eclipse Foundation

Nutzung der Programmiersprachen zur Erstellung von IoT-Lösungen

Die Wahl der Sprache im IoT hängt von zwei Faktoren ab: erstens den Spezifikationen des Gerätes, auf dem die Applikation laufen soll, und zweitens der Aufgabe, die sie ausführen soll. Für rechenschwache Systeme wie Microcontroller eignen sich die speichereffizienten, hardwarenahen Sprachen C oder C++. Sie sind sehr ressourcenschonend, aber schwieriger zu programmieren, was unter Umständen bedeutet, dass es länger dauern kann, eine Applikation aufzusetzen. Liegt wiederum viel Rechenpower vor, wie bei einem Smartphone, kann man auch Java nutzen. Ein Gerät, das beispielsweise nur wenige Events pro Stunde an einen Server oder die Cloud übermitteln soll, könnte so ziemlich jede Programmiersprache stemmen. Wenn wir aber von mehreren hundert Events pro Stunde sprechen, wie beispielsweise der Sensorik am Fertigungsband, dann braucht man eine schnelle Lösung wie C++ oder Elixir.

Populäre Programmiersprachen

  • C / C++: Im IoT sind C und die objektorientierte Variante C++  weit verbreitet. Im Bereich Maschinensteuerung und Robotik spielen sie eine wichtige Rolle. C ist die ressourcenschonendste Programmiersprache, aber schwerer zu schreiben.
  • Python: Python ist eine Trendsprache im Data-Bereich oder Web-Backend.
  • Java: Java ist weit verbreitet und wird für die verschiedensten Anwendungen verwendet. Darunter fallen Service-orientierte Applikationen oder Android Apps.
  • JavaScript: Insbesondere in Webanwendungen findet JavaScript Verwendung.
  • HTML/CSS: Diese Auszeichnungssprachen finden vor allem im Frontend von Websites Verwendung.
  • Elixir: Elixir ist eine funktionale Allzweckprogrammiersprache. Sie basiert auf BEAM, der virtuellen Maschine von Erlang. Sie wird im IoT in Zukunft aufgrund ihrer Performanz an Bedeutung gewinnen.

Objektorientiert oder eventbasiert
Prinzipiell sind die meisten Aufgaben im IoT mit allen gängigen Sprachen realisierbar. Nicht selten hängt eine entsprechende Entscheidung auch von den Kenntnissen und Vorlieben des jeweiligen Programmierers ab. Objektorientierte Sprachen wie Java sind für hochkomplexe Systeme geeignet. Mit ihnen lassen sich flexibel viele Prozesse abbilden und realisieren. Bei Applikationen in der Feldebene werden nicht viele Objekte benötigt. Es geht hauptsächlich um möglichst effizienten Informationsaustausch von Sensor oder Microcontroller zum Server. Daher bieten sich eventbasierte, funktionale Sprachen wie C an. Eine IoT-Anwendung benötigt also eine effiziente eventbasierte Sprache in der Feldebene für die Datensammlung und eine komplexe objektbasierte, die die Daten weiterverarbeitet

Sprache der Zukunft
Im IoT werden sich aufgrund der Eigenschaften von Edge-Devices Sprachen durchsetzen, die besonders ressourcenschonend und schnell sind. Ein vielversprechender Kandidat dafür ist Elixir. Die Sprache basiert auf der virtuellen Maschine Erlang, die in den 80ern vom schwedischen Telekommunikationsanbieter Ericsson entwickelt worden ist. Damals waren die Computer um ein Vielfaches schwächer als heutzutage, somit bietet diese Sprache die perfekten Voraussetzungen, um auf sehr rechenschwachen Geräten performant zu laufen. Ein Großteil des europäischen Telekommunikationsnetzes läuft heute sogar noch immer auf Erlang, was die Effizienz und Geschwindigkeit dieser Sprache verdeutlicht. Elixir hat die Effektivität von Erlang, bringt aber Funktionen moderner Sprachen wie Metaprogrammierung durch Macros und Polymorphismus mittels Protokollen mit.

Um die Interoperabilität und Kompatibilität unter den Herstellern zu gewährleisten, ist es insbesondere wichtig, dass man sich in Zukunft auf einheitliche Standards einigt. Nur so kann es irgendwann ein echtes Internet der Dinge geben, indem alles miteinander vernetzt ist.

Mykola Bugaiov, Gründer und Geschäftsführer von Elie