Was wäre, wenn man C-, C++- oder Rust-Code im Browser ausführen könnte? Unheimlich schnell. Aber auch unheimlich sinnvoll? Genau dieser Frage nehmen wir uns in dieser Episode des Super Duper Developers Club an.
Jakob Westhoff, unser Gast, beschäftigt sich seit Jahren mit WebAssembly, der Möglichkeit genau dieses zu tun. Wir diskutieren, wo der Anwendungsfall für diese 2017 erschiene Byte-Code-Sprache liegen und wann man vielleicht nicht damit glücklich wird.
Was ist WebAssembly?
Eigentlich ganz einfach. WebAssembly ist die Möglichkeit, andere Sprachen zu nutzen, um Code im Browser auszuführen. Dafür muss die Ausgangssprache “lediglich” WebAssembly-Bytecode produzieren. Der große Vorteil hier ist es, dass man mit WebAssembly sehr viel näher an die Hardware des Rechners rankommt, sodass Code um einiges performanter ausgeführt werden kann. Da man hier eine strikte Typisierung hat, eignen sich nicht alle Sprachen, aber über “Tricks” werden sicher immer mehr folgen.
Wofür wird es genutzt?
Alles. Prinzipiell kann man WebAssembly für alles nutzen. Macht nur keinen Sinn. Wo es aber Sinn macht, sind Programmieraufgaben, die sehr performant sein müssen oder sehr rechenintensiv sind. Damit fallen schon mal alle Webseiten, die wir “normalen” Menschen machen, aus dem Raster. Aber es gibt diese Seiten. Die wohl bekannteste (die wir kennen) ist Figma. Bildbearbeitung kann sehr rechenintensiv sein, deswegen macht es Sinn hier die volle Power des Computers anzuzapfen. Im Falle von Figma ist es C++-Code, der kompiliert wurde.
Auch ein schöner Anwendungsfall ist die Entlastung der Server. Dinge, die früher aufgrund der Browser-Rechenleistung auf dem Server gemacht werden mussten, können jetzt im User-Land passieren. Dies kann eine sehr große Kostenersparnis bringen. Browser skalieren einfach besser über den Nutzer, als Server.
Wer ist Jakob Westhoff?
Jakob ist die Person, die einem als Erstes in den Sinn kommt, wenn man die Worte “Was weiß der eigentlich nicht” hört. Er begleitet uns jetzt schon eine ganze Weile. Wahrscheinlich sogar mehr als 10 Jahre, denn Jakob ist einer der ersten PHP-Entwickler, die man auf fast allen Konferenzen gesehen hat und dies sogar mit Freude.
Irgendwann wurde dann die PHP-Welt zu klein für ihn, bzw. die JavaScript-Welt spannend genug, sodass er ab da zweigleisig gefahren ist. Nach dem sehr tiefen Abtauchen in diese neuen Paradigmen ging es dann noch mal weiter. Zwar nur als Hobby, aber trotzdem wie immer sehr tief. WebAssembly und Rust und Ray Tracer. Dass er hier aber trotzdem Experte ist, zeigt er in diesem Podcast.